एमडी5: Difference between revisions
From Vigyanwiki
No edit summary |
No edit summary |
||
| (8 intermediate revisions by 3 users not shown) | |||
| Line 24: | Line 24: | ||
'''एमडी5 संदेश-डाइजेस्ट एल्गोरिथम''' एक व्यापक रूप से उपयोग किया जाने वाला [[हैश फ़ंक्शन]] है जो 128-[[बिट]] हैश मान का उत्पादन करता है। एमडी5 को [[रोनाल्ड रिवेस्ट]] द्वारा 1991 में पहले के हैश फ़ंक्शन एमडी4, को बदलने के लिए डिज़ाइन किया गया था<ref name="Ron Barak">{{cite book|last=Ciampa|first=Mark|title=CompTIA Security+ 2008 in depth|year=2009|publisher=Course Technology/Cengage Learning|location=Australia; United States|page=[https://archive.org/details/comptiasecurity20000ciam/page/290 290]|url=https://archive.org/details/comptiasecurity20000ciam|url-access=registration|isbn=978-1-59863-913-1}}</ref> और 1992 में [[आरएफसी 1321]] के रूप में निर्दिष्ट किया गया था। | '''एमडी5 संदेश-डाइजेस्ट एल्गोरिथम''' एक व्यापक रूप से उपयोग किया जाने वाला [[हैश फ़ंक्शन]] है जो 128-[[बिट]] हैश मान का उत्पादन करता है। एमडी5 को [[रोनाल्ड रिवेस्ट]] द्वारा 1991 में पहले के हैश फ़ंक्शन एमडी4, को बदलने के लिए डिज़ाइन किया गया था<ref name="Ron Barak">{{cite book|last=Ciampa|first=Mark|title=CompTIA Security+ 2008 in depth|year=2009|publisher=Course Technology/Cengage Learning|location=Australia; United States|page=[https://archive.org/details/comptiasecurity20000ciam/page/290 290]|url=https://archive.org/details/comptiasecurity20000ciam|url-access=registration|isbn=978-1-59863-913-1}}</ref> और 1992 में [[आरएफसी 1321]] के रूप में निर्दिष्ट किया गया था। | ||
एमडी5 का उपयोग अनजाने में भ्रष्टाचार के | एमडी5 का उपयोग अनजाने में भ्रष्टाचार के विरुद्ध [[डेटा अखंडता]] को सत्यापित करने के लिए [[चेकसम]] के रूप में किया जा सकता है। ऐतिहासिक रूप से इसका व्यापक रूप से एक [[क्रिप्टोग्राफिक हैश फ़ंक्शन]] के रूप में उपयोग किया जाता था; यद्यपि, यह व्यापक कमजोरियों से पीड़ित पाया गया है। यह अन्य गैर-क्रिप्टोग्राफ़िक उद्देश्यों के लिए उपयुक्त रहता है, उदाहरण के लिए एक [[विभाजित डेटाबेस]] में एक विशेष कुंजी के लिए विभाजन निर्धारित करने के लिए, और हाल ही में [[सुरक्षित हैश एल्गोरिदम की]] तुलना में कम कम्प्यूटेशनल आवश्यकताओं के कारण पसंद किया जा सकता है।<ref>{{cite book |last1=Kleppmann |first1=Martin |title=Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems |date=April 2, 2017 |publisher=O'Reilly Media |isbn=978-1449373320 |page=203 |edition=1}}</ref> | ||
== इतिहास और क्रिप्टएनलिसिस == | == इतिहास और क्रिप्टएनलिसिस == | ||
एमडी5 [[एमआईटी]] के प्रोफेसर [[रोनाल्ड रिवेस्ट]] (रिवेस्ट, 1992) द्वारा डिज़ाइन किए गए संदेश डाइजेस्ट एल्गोरिदम की श्रृंखला में से एक है। जब विश्लेषणात्मक कार्य ने संकेत दिया कि एमडी5 के पूर्ववर्ती [[एमडी4]] के असुरक्षित होने की संभावना थी, तो रिवेस्ट ने 1991 में एमडी5 को एक सुरक्षित प्रतिस्थापन के रूप में डिजाइन किया। ([[हंस डोबबर्टिन]] ने वास्तव में बाद में एमडी4 में कमजोरियों का पता | एमडी5 [[एमआईटी]] के प्रोफेसर [[रोनाल्ड रिवेस्ट]] (रिवेस्ट, 1992) द्वारा डिज़ाइन किए गए संदेश डाइजेस्ट एल्गोरिदम की श्रृंखला में से एक है। जब विश्लेषणात्मक कार्य ने संकेत दिया कि एमडी5 के पूर्ववर्ती [[एमडी4]] के असुरक्षित होने की संभावना थी, तो रिवेस्ट ने 1991 में एमडी5 को एक सुरक्षित प्रतिस्थापन के रूप में डिजाइन किया। ([[हंस डोबबर्टिन]] ने वास्तव में बाद में एमडी4 में कमजोरियों का पता लगाया ) | ||
1993 में, डेन बोअर और बॉसेलर्स ने एमडी5 [[संपीड़न फ़ंक्शन]] के "[[छद्म-टकराव]]" को खोजने का एक प्रारंभिक, | 1993 में, डेन बोअर और बॉसेलर्स ने एमडी5 [[संपीड़न फ़ंक्शन]] के "[[छद्म-टकराव]]" को खोजने का एक प्रारंभिक, यद्यपि सीमित, परिणाम दिया; यानी, दो अलग-अलग [[इनिशियलाइज़ेशन वैक्टर]] जो एक समान डाइजेस्ट उत्पन्न करते हैं। | ||
1996 में, डोबबर्टिन ने एमडी5 (डॉबबर्टिन, 1996) के संपीड़न कार्य की टक्कर की घोषणा की। | 1996 में, डोबबर्टिन ने एमडी5 (डॉबबर्टिन, 1996) के संपीड़न कार्य की टक्कर की घोषणा की। यद्यपि यह पूर्ण एमडी5 हैश फ़ंक्शन पर हमला नहीं था, लेकिन यह क्रिप्टोग्राफरों के लिए प्रतिस्थापन पर स्विच करने की अनुशंसा करने के लिए पर्याप्त था,जैसे कि [[सहअ -1]] (इसके बाद से भी समझौता किया गया) या [[आरआईपीईएमडी-160]]। | ||
[[बर्थडे अटैक]] पर विचार करने के लिए हैश वैल्यू आकार (128 बिट्स) काफी छोटा है। [[एमडी5सीआरके]] मार्च 2004 में शुरू की गई एक [[वितरित परियोजना]] थी, ताकि यह प्रदर्शित किया जा सके कि जन्मदिन के हमले का उपयोग करके टकराव का पता लगाने के लिए एमडी5 व्यावहारिक रूप से असुरक्षित है। | [[बर्थडे अटैक]] पर विचार करने के लिए हैश वैल्यू आकार (128 बिट्स) काफी छोटा है। [[एमडी5सीआरके]] मार्च 2004 में शुरू की गई एक [[वितरित परियोजना]] थी, ताकि यह प्रदर्शित किया जा सके कि जन्मदिन के हमले का उपयोग करके टकराव का पता लगाने के लिए एमडी5 व्यावहारिक रूप से असुरक्षित है। | ||
| Line 59: | Line 59: | ||
</ref> | </ref> | ||
== सुरक्षा == | == सुरक्षा == | ||
किसी भी क्रिप्टोग्राफिक हैश फ़ंक्शन की एक बुनियादी आवश्यकता यह है कि एक ही मूल्य पर हैश करने वाले दो अलग-अलग संदेशों को ढूंढना कम्प्यूटेशनल रूप से अव्यवहार्य होना चाहिए। एमडी5 इस आवश्यकता को भयावह रूप से विफल करता है | किसी भी क्रिप्टोग्राफिक हैश फ़ंक्शन की एक बुनियादी आवश्यकता यह है कि एक ही मूल्य पर हैश करने वाले दो अलग-अलग संदेशों को ढूंढना कम्प्यूटेशनल रूप से अव्यवहार्य होना चाहिए। एमडी5 इस आवश्यकता को भयावह रूप से विफल करता है, इस तरह के [[टक्कर प्रतिरोध]] को एक साधारण घरेलू कंप्यूटर पर सेकंडों में पाया जा सकता है। 31 दिसंबर 2008 को, सीएमयू सॉफ्टवेयर इंजीनियरिंग संस्थान ने निष्कर्ष निकाला कि एमडी5 अनिवार्य रूप से क्रिप्टोग्राफिक रूप से टूटा हुआ था और आगे के उपयोग के लिए अनुपयुक्त था।<ref>{{cite web|last1=Chad R|first1=Dougherty|title=Vulnerability Note VU#836068 MD5 vulnerable to collision attacks|url=https://www.kb.cert.org/vuls/id/836068|website=Vulnerability notes database|publisher=CERT Carnegie Mellon University Software Engineering Institute|access-date=3 February 2017|date=31 Dec 2008}}</ref> एमडी5 की कमजोरियों का क्षेत्र में शोषण किया गया है, सबसे कुख्यात रूप से 2012 में [[फ्लेम मैलवेयर]] द्वारा। 2019 तक, सुरक्षा विशेषज्ञों द्वारा इसकी अच्छी तरह से प्रलेखित कमजोरियों और मूल्यह्रास के बावजूद, एमडी5 का व्यापक रूप से उपयोग किया जाना जारी है।<ref name=Cimpanu2019/> | ||
एमडी5 हैश फ़ंक्शन की सुरक्षा से गंभीर रूप से समझौता किया गया है। एक टकराव का हमला मौजूद है जो 2.6 GHz पेंटियम 4 प्रोसेसर (224.1 की जटिलता) वाले कंप्यूटर पर सेकंड के भीतर टकराव का पता लगा सकता है<sup>24.1</sup>)।<ref>{{Cite thesis |degree=Master's |author=M.M.J. Stevens |date = June 2007|title=On Collisions for MD5 |url=http://www.win.tue.nl/hashclash/On%20Collisions%20for%20MD5%20-%20M.M.J.%20Stevens.pdf }}</ref> इसके अलावा, एक [[चयनित-उपसर्ग टक्कर हमला]] भी है जो ऑफ-द-शेल्फ कंप्यूटिंग हार्डवेयर (जटिलता 239) का उपयोग करके सेकंड के भीतर निर्दिष्ट उपसर्गों के साथ दो इनपुट के लिए टक्कर उत्पन्न कर सकता है<sup>39</sup>).<ref>{{Cite web |author1=Marc Stevens |author2=Arjen Lenstra |author3=Benne de Weger |date=16 June 2009 |title=Chosen-prefix Collisions for MD5 and Applications |website=École Polytechnique Fédérale de Lausanne |url=https://documents.epfl.ch/users/l/le/lenstra/public/papers/lat.pdf |access-date=31 March 2010 |archive-url=https://web.archive.org/web/20111109092157/https://documents.epfl.ch/users/l/le/lenstra/public/papers/lat.pdf |archive-date=9 November 2011 }}</ref> ऑफ-द-शेल्फ [[ ग्राफ़िक्स प्रोसेसिंग युनिट ]] के उपयोग से टक्करों को खोजने की क्षमता में काफी मदद मिली है। एक एनवीडिया जीफोर्स 8800GS ग्राफ़िक्स प्रोसेसर पर, प्रति सेकंड 16-18 मिलियन हैश की गणना की जा सकती है। एक एनवीडिया जीफोर्स 8800 अल्ट्रा प्रति सेकंड 200 मिलियन से अधिक हैश की गणना कर सकता है।<ref>{{cite web | एमडी5 हैश फ़ंक्शन की सुरक्षा से गंभीर रूप से समझौता किया गया है। एक टकराव का हमला मौजूद है जो 2.6 GHz पेंटियम 4 प्रोसेसर (224.1 की जटिलता) वाले कंप्यूटर पर सेकंड के भीतर टकराव का पता लगा सकता है<sup>24.1</sup>)।<ref>{{Cite thesis |degree=Master's |author=M.M.J. Stevens |date = June 2007|title=On Collisions for MD5 |url=http://www.win.tue.nl/hashclash/On%20Collisions%20for%20MD5%20-%20M.M.J.%20Stevens.pdf }}</ref> इसके अलावा, एक [[चयनित-उपसर्ग टक्कर हमला]] भी है जो ऑफ-द-शेल्फ कंप्यूटिंग हार्डवेयर (जटिलता 239) का उपयोग करके सेकंड के भीतर निर्दिष्ट उपसर्गों के साथ दो इनपुट के लिए टक्कर उत्पन्न कर सकता है<sup>39</sup>).<ref>{{Cite web |author1=Marc Stevens |author2=Arjen Lenstra |author3=Benne de Weger |date=16 June 2009 |title=Chosen-prefix Collisions for MD5 and Applications |website=École Polytechnique Fédérale de Lausanne |url=https://documents.epfl.ch/users/l/le/lenstra/public/papers/lat.pdf |access-date=31 March 2010 |archive-url=https://web.archive.org/web/20111109092157/https://documents.epfl.ch/users/l/le/lenstra/public/papers/lat.pdf |archive-date=9 November 2011 }}</ref> ऑफ-द-शेल्फ [[ ग्राफ़िक्स प्रोसेसिंग युनिट ]] के उपयोग से टक्करों को खोजने की क्षमता में काफी मदद मिली है। एक एनवीडिया जीफोर्स 8800GS ग्राफ़िक्स प्रोसेसर पर, प्रति सेकंड 16-18 मिलियन हैश की गणना की जा सकती है। एक एनवीडिया जीफोर्स 8800 अल्ट्रा प्रति सेकंड 200 मिलियन से अधिक हैश की गणना कर सकता है।<ref>{{cite web | ||
| Line 70: | Line 70: | ||
2019 तक, व्यापक रूप से उपयोग की जाने वाली सामग्री प्रबंधन प्रणालियों में से एक चौथाई को अभी भी [[पासवर्ड हैशिंग]] के लिए एमडी5 का उपयोग करने की सूचना मिली थी।<ref name="Cimpanu2019">{{Cite web|url=https://www.zdnet.com/article/a-quarter-of-major-cmss-use-outdated-md5-as-the-default-password-hashing-scheme/|title=A quarter of major CMSs use outdated MD5 as the default password hashing scheme|last=Cimpanu|first=Catalin|website=ZDNet|language=en|access-date=2019-06-17}}</ref> | 2019 तक, व्यापक रूप से उपयोग की जाने वाली सामग्री प्रबंधन प्रणालियों में से एक चौथाई को अभी भी [[पासवर्ड हैशिंग]] के लिए एमडी5 का उपयोग करने की सूचना मिली थी।<ref name="Cimpanu2019">{{Cite web|url=https://www.zdnet.com/article/a-quarter-of-major-cmss-use-outdated-md5-as-the-default-password-hashing-scheme/|title=A quarter of major CMSs use outdated MD5 as the default password hashing scheme|last=Cimpanu|first=Catalin|website=ZDNet|language=en|access-date=2019-06-17}}</ref> | ||
=== सुरक्षा मुद्दों का अवलोकन === | === सुरक्षा मुद्दों का अवलोकन === | ||
1996 में, एमडी5 के डिज़ाइन में एक त्रुटि पाई गई थी । जबकि उस समय इसे एक घातक कमजोरी नहीं माना गया था, क्रिप्टोग्राफर्स ने अन्य एल्गोरिदम, जैसे कि SHA-1, के उपयोग की | 1996 में, एमडी5 के डिज़ाइन में एक त्रुटि पाई गई थी । जबकि उस समय इसे एक घातक कमजोरी नहीं माना गया था, क्रिप्टोग्राफर्स ने अन्य एल्गोरिदम, जैसे कि SHA-1, के उपयोग की अनुशंसा करना शुरू कर दिया था, जिसे तब से कमजोर भी पाया गया है।<ref>{{cite web|url=http://ftp.arnes.si/packages/crypto-tools/rsa.com/cryptobytes/crypto2n2.pdf.gz|title=The Status of MD5 After a Recent Attack|author=Hans Dobbertin|work=CryptoBytes|volume=2|issue=2|date=Summer 1996|access-date=22 October 2013}}</ref> 2004 में यह दिखाया गया था कि एमडी5 टकराव - प्रतिरोधी नहीं है।<ref>{{cite web|url=http://merlot.usc.edu/csac-f06/papers/Wang05a.pdf|title=How to Break MD5 and Other Hash Functions|author1=Xiaoyun Wang|author2=Hongbo Yu |work=Advances in Cryptology – Lecture Notes in Computer Science|volume=3494|pages=19–35|year=2005|access-date=21 December 2009|archive-url=https://web.archive.org/web/20090521024709/http://merlot.usc.edu/csac-f06/papers/Wang05a.pdf|archive-date=21 May 2009}}</ref> जैसे, एमडी5 [[परिवहन परत सुरक्षा]] [[सार्वजनिक कुंजी प्रमाणपत्र]] या डिजिटल हस्ताक्षर जैसे अनुप्रयोगों के लिए उपयुक्त नहीं है जो डिजिटल सुरक्षा के लिए इस संपत्ति पर भरोसा करते हैं। शोधकर्ताओं ने अतिरिक्त रूप से एमडी5 में अधिक गंभीर खामियों की खोज की, और एक संभावित टकराव के हमले का वर्णन किया - इनपुट की एक जोड़ी बनाने की एक विधि जिसके लिए एमडी5 समान चेकसम का उत्पादन करता है।<ref name="autogenerated2">J. Black, M. Cochran, T. Highland: [http://www.cs.colorado.edu/~jrblack/papers/md5e-full.pdf A Study of the MD5 Attacks: Insights and Improvements] {{Webarchive|url=https://web.archive.org/web/20150101093005/http://www.cs.colorado.edu/%7Ejrblack/papers/md5e-full.pdf |date=1 January 2015 }}, 3 March 2006. Retrieved 27 July 2008.</ref><ref name="autogenerated1">Xiaoyun Wang, Dengguo ,k.,m.,m, HAVAL-128 and [[RIPEMD]], Cryptology ePrint Archive Report 2004/199, 16 August 2004, revised 17 August 2004. Retrieved 27 July 2008.</ref> 2005, 2006 और 2007 में एमडी5 को तोड़ने में और प्रगति की गई।<ref>Marc Stevens, Arjen Lenstra, Benne de Weger: [http://www.win.tue.nl/hashclash/SoftIntCodeSign/ Vulnerability of software integrity and code signing applications to chosen-prefix collisions for MD5], 30 November 2007. Retrieved 27 July 2008.</ref> दिसंबर 2008 में, शोधकर्ताओं के एक समूह ने नकली [[एसएसएल प्रमाणपत्र]] वैधता के लिए इस तकनीक का इस्तेमाल किया।<ref name="sslHarmful">{{cite web|url=http://www.win.tue.nl/hashclash/rogue-ca/|title=MD5 considered harmful today|last=Sotirov|first=Alexander |author2=Marc Stevens |author3=Jacob Appelbaum |author4=Arjen Lenstra |author5=David Molnar |author6=Dag Arne Osvik |author7=Benne de Weger |date=30 December 2008|access-date=30 December 2008}} [https://events.ccc.de/congress/2008/Fahrplan/events/3023.en.html Announced] at the 25th [[Chaos Communication Congress]].</ref><ref name="browserflaw">{{cite web | ||
|url=http://news.cnet.com/8301-1009_3-10129693-83.html | |url=http://news.cnet.com/8301-1009_3-10129693-83.html | ||
|title=Web browser flaw could put e-commerce security at risk | |title=Web browser flaw could put e-commerce security at risk | ||
| Line 102: | Line 102: | ||
2005 में, शोधकर्ता एक ही हैश के साथ [[ परिशिष्ट भाग |परिशिष्ट भाग]] दस्तावेजों और X.509 प्रमाणपत्रों <ref>{{cite web|url=http://www.win.tue.nl/~bdeweger/CollidingCertificates/ |title=Colliding X.509 Certificates |publisher=Win.tue.nl |access-date=9 August 2010}}</ref> के जोड़े बनाने में सक्षम थे<ref>{{cite web|url=http://www.schneier.com/blog/archives/2005/06/more_md5_collis.html |title=Schneier on Security: More MD5 Collisions |publisher=Schneier.com |access-date=9 August 2010}}</ref> । उस वर्ष बाद में, एम. डी. 5 के डिजाइनर रॉन रिवेस्ट ने लिखा कि "एम. डी. 5 और sha1 दोनों स्पष्ट रूप से टूट गए हैं (टकराव-प्रतिरोध के संदर्भ में)।<ref>{{cite web|url=http://mail.python.org/pipermail/python-dev/2005-December/058850.html |title=[Python-Dev] hashlib — faster md5/sha, adds sha256/512 support |publisher=Mail.python.org |access-date=9 August 2010}}</ref> | 2005 में, शोधकर्ता एक ही हैश के साथ [[ परिशिष्ट भाग |परिशिष्ट भाग]] दस्तावेजों और X.509 प्रमाणपत्रों <ref>{{cite web|url=http://www.win.tue.nl/~bdeweger/CollidingCertificates/ |title=Colliding X.509 Certificates |publisher=Win.tue.nl |access-date=9 August 2010}}</ref> के जोड़े बनाने में सक्षम थे<ref>{{cite web|url=http://www.schneier.com/blog/archives/2005/06/more_md5_collis.html |title=Schneier on Security: More MD5 Collisions |publisher=Schneier.com |access-date=9 August 2010}}</ref> । उस वर्ष बाद में, एम. डी. 5 के डिजाइनर रॉन रिवेस्ट ने लिखा कि "एम. डी. 5 और sha1 दोनों स्पष्ट रूप से टूट गए हैं (टकराव-प्रतिरोध के संदर्भ में)।<ref>{{cite web|url=http://mail.python.org/pipermail/python-dev/2005-December/058850.html |title=[Python-Dev] hashlib — faster md5/sha, adds sha256/512 support |publisher=Mail.python.org |access-date=9 August 2010}}</ref> | ||
30 दिसंबर 2008 को, शोधकर्ताओं के एक समूह ने 25वीं कैओस कम्युनिकेशन कांग्रेस में घोषणा की कि कैसे उन्होंने एमडी5 टकराव का उपयोग एक मध्यवर्ती प्रमाणपत्र प्राधिकरण प्रमाणपत्र बनाने के लिए किया था जो इसके एमडी5 हैश द्वारा जाँच किए जाने पर वैध प्रतीत होता था। [24] शोधकर्ताओं ने स्विट्जरलैंड के लुसाने में ईपीएफएल में एक पीएस 3 क्लस्टर का उपयोग रैपिडएसएसएल द्वारा जारी एक सामान्य एसएसएल प्रमाणपत्र को उस जारीकर्ता के लिए एक कार्यशील सीए प्रमाणपत्र में बदलने के लिए किया, जिसका उपयोग अन्य प्रमाणपत्र बनाने के लिए किया जा सकता है जो वैध प्रतीत होते हैं और रैपिडएसएसएल द्वारा जारी किए जाते हैं। रैपिडएसएसएल प्रमाणपत्र जारी करने वाले [[वेरीसाइन]] ने कहा कि उन्होंने एक बार भेद्यता की घोषणा होने के बाद रैपिडएसएसएल के लिए अपने चेकसम एल्गोरिदम के रूप में एमडी5 का उपयोग करके नए प्रमाणपत्र जारी करना बंद कर दिया।<ref>{{cite web|url=https://blogs.verisign.com/ssl-blog/2008/12/on_md5_vulnerabilities_and_mit.php|title=This morning's MD5 attack — resolved|last=Callan|first=Tim|date=31 December 2008|publisher=Verisign|access-date=31 December 2008|archive-url=https://web.archive.org/web/20090116180944/http://blogs.verisign.com/ssl-blog/2008/12/on_md5_vulnerabilities_and_mit.php|archive-date=16 January 2009}}</ref> | 30 दिसंबर 2008 को, शोधकर्ताओं के एक समूह ने 25वीं कैओस कम्युनिकेशन कांग्रेस में घोषणा की कि कैसे उन्होंने एमडी5 टकराव का उपयोग एक मध्यवर्ती प्रमाणपत्र प्राधिकरण प्रमाणपत्र बनाने के लिए किया था जो इसके एमडी5 हैश द्वारा जाँच किए जाने पर वैध प्रतीत होता था। [24] शोधकर्ताओं ने स्विट्जरलैंड के लुसाने में ईपीएफएल में एक पीएस 3 क्लस्टर का उपयोग रैपिडएसएसएल द्वारा जारी एक सामान्य एसएसएल प्रमाणपत्र को उस जारीकर्ता के लिए एक कार्यशील सीए प्रमाणपत्र में बदलने के लिए किया, जिसका उपयोग अन्य प्रमाणपत्र बनाने के लिए किया जा सकता है जो वैध प्रतीत होते हैं और रैपिडएसएसएल द्वारा जारी किए जाते हैं। रैपिडएसएसएल प्रमाणपत्र जारी करने वाले [[वेरीसाइन]] ने कहा कि उन्होंने एक बार भेद्यता की घोषणा होने के बाद रैपिडएसएसएल के लिए अपने चेकसम एल्गोरिदम के रूप में एमडी5 का उपयोग करके नए प्रमाणपत्र जारी करना बंद कर दिया।<ref>{{cite web|url=https://blogs.verisign.com/ssl-blog/2008/12/on_md5_vulnerabilities_and_mit.php|title=This morning's MD5 attack — resolved|last=Callan|first=Tim|date=31 December 2008|publisher=Verisign|access-date=31 December 2008|archive-url=https://web.archive.org/web/20090116180944/http://blogs.verisign.com/ssl-blog/2008/12/on_md5_vulnerabilities_and_mit.php|archive-date=16 January 2009}}</ref> यद्यपि वेरिसाइन ने MD5 का उपयोग करके हस्ताक्षरित मौजूदा प्रमाणपत्रों को रद्द करने से इनकार कर दिया, लेकिन एक्सप्लॉइट के लेखकों ([[अलेक्जेंडर सोतिरोव, मार्क स्टीवंस, जैकब एपलबौम, आर्जेन लेन्स्ट्रा]], डेविड मोलनार, डैग अर्ने ओस्विक और बेन्ने डी वेगर) द्वारा उनकी प्रतिक्रिया को पर्याप्त माना गया था। <ref name="sslHarmful" /> ब्रूस श्नायर ने हमले के बारे में लिखा कि "हम पहले से ही जानते थे कि एमडी5 एक टूटा हुआ हैश फंक्शन है ,और किसी को भी अब MD5 का उपयोग नहीं करना चाहिए।<ref>{{cite web|author=Bruce Schneier |url=http://www.schneier.com/blog/archives/2008/12/forging_ssl_cer.html |title=फोर्जिंग एसएसएल प्रमाणपत्र|publisher=Schneier on Security |date=31 December 2008 |access-date=10 April 2014}}</ref> एसएसएल शोधकर्ताओं ने लिखा, हमारा वांछित प्रभाव यह है कि प्रमाणन अधिकारी नए प्रमाणपत्र जारी करने में एमडी5 का उपयोग करना बंद कर देंगे। हम यह भी आशा करते हैं कि अन्य अनुप्रयोगों में एमडी5 के उपयोग पर भी पुनर्विचार किया जाएगा। <ref name="sslHarmful" /> | ||
2012 में, [[Microsoft|माइक्रोसॉफ्ट]] के अनुसार, फ़्लेम (मैलवेयर) मैलवेयर के लेखकों ने विंडोज कोड-हस्ताक्षर प्रमाणपत्र बनाने के लिए एमडी5 टक्कर का उपयोग किया।<ref name="foo" /> | 2012 में, [[Microsoft|माइक्रोसॉफ्ट]] के अनुसार, फ़्लेम (मैलवेयर) मैलवेयर के लेखकों ने विंडोज कोड-हस्ताक्षर प्रमाणपत्र बनाने के लिए एमडी5 टक्कर का उपयोग किया।<ref name="foo" /> | ||
| Line 130: | Line 130: | ||
बाद में यह भी पाया गया कि अलग से चुने गए उपसर्गों के साथ दो फ़ाइलों के बीच टकराव का निर्माण करना संभव था। इस तकनीक का उपयोग 2008 में दुष्ट सीए प्रमाणपत्र के निर्माण में किया गया था। 2014 में एंटोन कुज़नेत्सोव द्वारा [[संदेश पासिंग इंटरफ़ेस]] का उपयोग करके समानांतर टकराव की खोज का एक नया संस्करण प्रस्तावित किया गया था, जिसने कंप्यूटिंग क्लस्टर पर 11 घंटे में टक्कर खोजने की अनुमति दी थी।<ref>{{cite web | url=http://eprint.iacr.org/2014/871.pdf | title=An algorithm for MD5 single-block collision attack using high performance computing cluster | publisher=IACR | access-date=2014-11-03 | author=Anton A. Kuznetsov}}</ref> | बाद में यह भी पाया गया कि अलग से चुने गए उपसर्गों के साथ दो फ़ाइलों के बीच टकराव का निर्माण करना संभव था। इस तकनीक का उपयोग 2008 में दुष्ट सीए प्रमाणपत्र के निर्माण में किया गया था। 2014 में एंटोन कुज़नेत्सोव द्वारा [[संदेश पासिंग इंटरफ़ेस]] का उपयोग करके समानांतर टकराव की खोज का एक नया संस्करण प्रस्तावित किया गया था, जिसने कंप्यूटिंग क्लस्टर पर 11 घंटे में टक्कर खोजने की अनुमति दी थी।<ref>{{cite web | url=http://eprint.iacr.org/2014/871.pdf | title=An algorithm for MD5 single-block collision attack using high performance computing cluster | publisher=IACR | access-date=2014-11-03 | author=Anton A. Kuznetsov}}</ref> | ||
=== प्रीइमेज भेद्यता === | === प्रीइमेज भेद्यता === | ||
अप्रैल 2009 में, एमडी5 के | अप्रैल 2009 में, एमडी5 के विरुद्ध एक हमला प्रकाशित किया गया था जो एमडी5 के [[प्रीइमेज प्रतिरोध]] को तोड़ता है। यह हमला केवल सैद्धांतिक है, 2 की कम्प्यूटेशनल जटिलता के साथ<sup>123.4</sup> पूर्ण प्रीइमेज के लिए।<ref>{{Cite book|author1=Yu Sasaki |title=Advances in Cryptology - EUROCRYPT 2009 |volume=5479 |pages=134–152 |author2=Kazumaro Aoki |date=16 April 2009 |chapter=Finding Preimages in Full MD5 Faster Than Exhaustive Search |publisher=[[Springer Berlin Heidelberg]] |doi=10.1007/978-3-642-01001-9_8 |series=Lecture Notes in Computer Science |isbn=978-3-642-01000-2 }}</ref><ref>{{cite book | ||
|chapter=Construction of the Initial Structure for Preimage Attack of MD5 | |chapter=Construction of the Initial Structure for Preimage Attack of MD5 | ||
|publisher=[[Institute of Electrical and Electronics Engineers|IEEE]] Computer Society | |publisher=[[Institute of Electrical and Electronics Engineers|IEEE]] Computer Society | ||
| Line 140: | Line 140: | ||
}}</ref> | }}</ref> | ||
== अनुप्रयोग == | == अनुप्रयोग == | ||
एमडी5 डाइजेस्ट का [[ सॉफ़्टवेयर ]] की दुनिया में व्यापक रूप से उपयोग किया गया है ताकि कुछ आश्वासन दिया जा सके कि स्थानांतरित फ़ाइल बरकरार है। उदाहरण के लिए, फ़ाइल सर्वर | एमडी5 डाइजेस्ट का [[ सॉफ़्टवेयर ]] की दुनिया में व्यापक रूप से उपयोग किया गया है ताकि कुछ आश्वासन दिया जा सके कि स्थानांतरित फ़ाइल बरकरार है। उदाहरण के लिए, फ़ाइल सर्वर प्रायः फ़ाइलों के लिए एक पूर्व-गणना किए गए एमडी5 ([[md5sum|एमडी5sum]] के रूप में जाना जाता है) चेकसम प्रदान करते हैं, ताकि उपयोगकर्ता डाउनलोड की गई फ़ाइल के चेकसम की तुलना इससे कर सके। अधिकांश यूनिक्स-आधारित ऑपरेटिंग सिस्टम में उनके वितरण पैकेज में एमडी5 योग उपयोगिताएँ सम्मिलित हैं; Windows उपयोगकर्ता सम्मिलित [[PowerShell]] फ़ंक्शन Get-FileHash का उपयोग कर सकते हैं, एक Microsoft उपयोगिता स्थापित कर सकते हैं,<ref>{{cite web|url=https://support.microsoft.com/kb/841290/en-us |title=फ़ाइल चेकसम इंटीग्रिटी वेरिफायर यूटिलिटी की उपलब्धता और विवरण|publisher=Microsoft Support |date=17 June 2013 |access-date=10 April 2014}}</ref><ref>{{cite web|url=https://support.microsoft.com/kb/889768/en-us |title=How to compute the MD5 or SHA-1 cryptographic hash values for a file |publisher=Microsoft Support |date=23 January 2007 |access-date=10 April 2014}}</ref> या तृतीय-पक्ष एप्लिकेशन का उपयोग सकते हैं। एंड्रॉइड रोम भी इस प्रकार के चेकसम का उपयोग करते हैं। | ||
[[File:CPT-Hashing-File-Transmission.svg|350px|center|फ़ाइल संचरण में एमडी5 हैशिंग का उपयोग दिखाने वाला आरेख]]चूंकि एमडी5 टकराव उत्पन्न करना आसान है, फ़ाइल बनाने वाले व्यक्ति के लिए उसी चेकसम के साथ दूसरी फ़ाइल बनाना संभव है, इसलिए यह तकनीक दुर्भावनापूर्ण छेड़छाड़ के कुछ रूपों से रक्षा नहीं कर सकती है। कुछ मामलों में, चेकसम पर भरोसा नहीं किया जा सकता है (उदाहरण के लिए, यदि इसे उसी चैनल पर डाउनलोड की गई फ़ाइल के रूप में प्राप्त किया गया था), उस स्थिति में एमडी5 केवल त्रुटि-जांच की कार्यक्षमता प्रदान कर सकता है: यह एक दूषित या अपूर्ण डाउनलोड को पहचान लेगा, जो बन जाता है बड़ी फ़ाइलों को डाउनलोड करते समय अधिक संभावना। | [[File:CPT-Hashing-File-Transmission.svg|350px|center|फ़ाइल संचरण में एमडी5 हैशिंग का उपयोग दिखाने वाला आरेख]]चूंकि एमडी5 टकराव उत्पन्न करना आसान है, फ़ाइल बनाने वाले व्यक्ति के लिए उसी चेकसम के साथ दूसरी फ़ाइल बनाना संभव है, इसलिए यह तकनीक दुर्भावनापूर्ण छेड़छाड़ के कुछ रूपों से रक्षा नहीं कर सकती है। कुछ मामलों में, चेकसम पर भरोसा नहीं किया जा सकता है (उदाहरण के लिए, यदि इसे उसी चैनल पर डाउनलोड की गई फ़ाइल के रूप में प्राप्त किया गया था), उस स्थिति में एमडी5 केवल त्रुटि-जांच की कार्यक्षमता प्रदान कर सकता है: यह एक दूषित या अपूर्ण डाउनलोड को पहचान लेगा, जो बन जाता है बड़ी फ़ाइलों को डाउनलोड करते समय अधिक संभावना। | ||
ऐतिहासिक रूप से, एमडी5 का उपयोग पासवर्ड के एक तरफ़ा हैश को संग्रहीत करने के लिए किया जाता रहा है , संग्रहीत पासवर्ड का फ़ॉर्म, | ऐतिहासिक रूप से, एमडी5 का उपयोग पासवर्ड के एक तरफ़ा हैश को संग्रहीत करने के लिए किया जाता रहा है, संग्रहीत पासवर्ड का फ़ॉर्म, प्रायः [[कुंजी खींचना]] के साथ।<ref>{{Cite web|url = https://www.freebsd.org/cgi/man.cgi?crypt(3)|title = FreeBSD Handbook, Security – DES, Blowfish, MD5, and Crypt|access-date = 2014-10-19}}</ref><ref>{{cite web|url=http://docs.oracle.com/cd/E26505_01/html/816-5174/policy.conf-4.html |title=Synopsis – man pages section 4: File Formats |publisher=Docs.oracle.com |date=1 January 2013 |access-date=10 April 2014}}</ref> पासवर्ड भंडारण के लिए अनुशंसित हैश की सूची में NIST एमडी5 को सम्मिलित नहीं करता है।<ref>[http://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-132.pdf NIST SP 800-132] Section 5.1</ref> | ||
एमडी5 का उपयोग [[इलेक्ट्रॉनिक खोज]] के क्षेत्र में भी किया जाता है, कानूनी खोज प्रक्रिया के दौरान आदान-प्रदान किए जाने वाले प्रत्येक दस्तावेज़ के लिए एक विशिष्ट पहचानकर्ता प्रदान किया जा सके। इस पद्धति का उपयोग [[बेट्स नंबरिंग]] नंबरिंग सिस्टम को बदलने के लिए किया जा सकता है जिसका उपयोग कागजी दस्तावेजों के आदान-प्रदान के दौरान दशकों से किया जाता रहा है। जैसा ऊपर बताया गया है, टकराव के हमलों में आसानी के कारण इस उपयोग को हतोत्साहित किया जाना चाहिए। | एमडी5 का उपयोग [[इलेक्ट्रॉनिक खोज]] के क्षेत्र में भी किया जाता है, कानूनी खोज प्रक्रिया के दौरान आदान-प्रदान किए जाने वाले प्रत्येक दस्तावेज़ के लिए एक विशिष्ट पहचानकर्ता प्रदान किया जा सके। इस पद्धति का उपयोग [[बेट्स नंबरिंग]] नंबरिंग सिस्टम को बदलने के लिए किया जा सकता है जिसका उपयोग कागजी दस्तावेजों के आदान-प्रदान के दौरान दशकों से किया जाता रहा है। जैसा ऊपर बताया गया है, टकराव के हमलों में आसानी के कारण इस उपयोग को हतोत्साहित किया जाना चाहिए। | ||
== एल्गोरिथम == | == एल्गोरिथम == | ||
[[Image:MD5 algorithm.svg|right|thumbnail|300px|चित्र 1. एक एमडी5 ऑपरेशन। एमडी5 में इनमें से 64 ऑपरेशन सम्मिलित हैं, जिन्हें 16 ऑपरेशन के चार राउंड में बांटा गया है। {{mvar|F}} एक अरेखीय कार्य है; प्रत्येक दौर में एक फ़ंक्शन का उपयोग किया जाता है। {{math|''M''<sub>''i''</sub>}} संदेश इनपुट के 32-बिट ब्लॉक को दर्शाता है, और {{math|''K''<sub>''i''</sub>}} प्रत्येक ऑपरेशन के लिए अलग-अलग 32-बिट स्थिरांक को दर्शाता है। {{math|<<<<sub>''s''</sub>}} बाएं बिट रोटेशन को दर्शाता है {{mvar|s}} स्थान; {{mvar|s}} प्रत्येक ऑपरेशन के लिए भिन्न होता है। <math>\boxplus</math> अतिरिक्त मॉड्यूलो 2 को दर्शाता है<sup>32</उप>।]]एमडी5 एक चर-लंबाई संदेश को 128 बिट्स के निश्चित-लंबाई वाले आउटपुट में संसाधित करता है। इनपुट संदेश 512-बिट ब्लॉक (सोलह 32-बिट शब्द) के टुकड़ों में विभाजित है; संदेश [[पैडिंग (क्रिप्टोग्राफी)]] है ताकि इसकी लंबाई 512 से विभाज्य हो। पैडिंग निम्नानुसार काम करती है: पहले, एक बिट, 1, संदेश के अंत में जोड़ा जाता है। इसके बाद संदेश की लंबाई को 512 के गुणक से 64 बिट कम करने के लिए जितने आवश्यक हैं उतने शून्य हैं। शेष बिट्स 64 बिट्स से भरे हुए हैं जो मूल संदेश | [[Image:MD5 algorithm.svg|right|thumbnail|300px|चित्र 1. एक एमडी5 ऑपरेशन। एमडी5 में इनमें से 64 ऑपरेशन सम्मिलित हैं, जिन्हें 16 ऑपरेशन के चार राउंड में बांटा गया है। {{mvar|F}} एक अरेखीय कार्य है; प्रत्येक दौर में एक फ़ंक्शन का उपयोग किया जाता है। {{math|''M''<sub>''i''</sub>}} संदेश इनपुट के 32-बिट ब्लॉक को दर्शाता है, और {{math|''K''<sub>''i''</sub>}} प्रत्येक ऑपरेशन के लिए अलग-अलग 32-बिट स्थिरांक को दर्शाता है। {{math|<<<<sub>''s''</sub>}} बाएं बिट रोटेशन को दर्शाता है {{mvar|s}} स्थान; {{mvar|s}} प्रत्येक ऑपरेशन के लिए भिन्न होता है। <math>\boxplus</math> अतिरिक्त मॉड्यूलो 2 को दर्शाता है<sup>32</उप>।]]एमडी5 एक चर-लंबाई संदेश को 128 बिट्स के निश्चित-लंबाई वाले आउटपुट में संसाधित करता है। इनपुट संदेश 512-बिट ब्लॉक (सोलह 32-बिट शब्द) के टुकड़ों में विभाजित है; संदेश [[पैडिंग (क्रिप्टोग्राफी)]] है ताकि इसकी लंबाई 512 से विभाज्य हो। पैडिंग निम्नानुसार काम करती है: पहले, एक बिट, 1, संदेश के अंत में जोड़ा जाता है। इसके बाद संदेश की लंबाई को 512 के गुणक से 64 बिट कम करने के लिए जितने आवश्यक हैं उतने शून्य हैं। शेष बिट्स 64 बिट्स से भरे हुए हैं जो मूल संदेश, मॉड्यूलो 2<sup>64</sup> की लंबाई का प्रतिनिधित्व करते हैं। | ||
मुख्य MD5 एल्गोरिथ्म एक 128-बिट अवस्था पर संचालित होता है, जिसे चार 32-बिट शब्दों में विभाजित किया गया है, जिन्हें ''A, B, C'' और ''D'' से निरूपित किया गया है। इन्हें कुछ निश्चित स्थिरांकों के लिए आरंभीकृत किया जाता है। मुख्य एल्गोरिथ्म तब स्थिति को संशोधित करने के लिए प्रत्येक 512-बिट संदेश ब्लॉक का उपयोग करता है। एक संदेश खंड के प्रसंस्करण में चार समान चरण होते हैं, जिन्हें राउंड कहा जाता है; प्रत्येक राउंड एक गैर-रैखिक फ़ंक्शन ''F'', मॉड्यूलर जोड़ और बाएं घूर्णन के आधार पर 16 समान संचालनों से बना होता है। चित्र 1 एक गोल के भीतर एक ऑपरेशन को दर्शाता है। चार संभावित कार्य हैं; प्रत्येक दौर में एक अलग कार्य का उपयोग किया जाता हैः<sup> | |||
मुख्य MD5 एल्गोरिथ्म 128-बिट अवस्था पर संचालित होता है, जिसे चार 32-बिट शब्दों में विभाजित किया गया है | |||
:<math>\begin{align} | :<math>\begin{align} | ||
F(B,C,D) &= (B\wedge{C}) \vee (\neg{B} \wedge{D}) \\ | F(B,C,D) &= (B\wedge{C}) \vee (\neg{B} \wedge{D}) \\ | ||
| Line 167: | Line 162: | ||
=== स्यूडोकोड === | === स्यूडोकोड === | ||
इस एल्गोरिथम के अनुसार MD5 हैश की गणना की जाती है।<ref>{{Cite web|url=https://referencesource.microsoft.com/#System.Workflow.Runtime/MD5HashHelper.cs,5a97802b6014fccc,references|title = Reference Source}}</ref> सभी मान [[Endianness]] | इस एल्गोरिथम के अनुसार MD5 हैश की गणना की जाती है।<ref>{{Cite web|url=https://referencesource.microsoft.com/#System.Workflow.Runtime/MD5HashHelper.cs,5a97802b6014fccc,references|title = Reference Source}}</ref> सभी मान [[Endianness]] में हैं। | ||
<अवधि शैली = रंग: हरा; >// : गणना करते समय सभी चर 32 बिट अहस्ताक्षरित हैं और रैप मोडुलो 2^32 हैं | <अवधि शैली = रंग: हरा; >// : गणना करते समय सभी चर 32 बिट अहस्ताक्षरित हैं और रैप मोडुलो 2^32 हैं | ||
| Line 259: | Line 254: | ||
var ''char'' डाइजेस्ट [16] := a0 संलग्न b0 संलग्न c0 संलग्न d0 <अवधि शैली = रंग: हरा; >// ''(आउटपुट लिट्ल-एंडियन में है)'' | var ''char'' डाइजेस्ट [16] := a0 संलग्न b0 संलग्न c0 संलग्न d0 <अवधि शैली = रंग: हरा; >// ''(आउटपुट लिट्ल-एंडियन में है)'' | ||
दिखाए गए मूल आरएफसी 1321 | दिखाए गए मूल आरएफसी 1321 के सूत्रीकरण के बजाय, निम्नलिखित का उपयोग बेहतर दक्षता के लिए किया जा सकता है (उपयोगी है यदि असेंबली भाषा का उपयोग किया जा रहा है-अन्यथा, संकलक आम तौर पर उपरोक्त कोड को अनुकूलित करेगा। चूँकि प्रत्येक गणना इन सूत्रीकरणों में दूसरे पर निर्भर है, यह उपरोक्त विधि की तुलना में प्रायः धीमा होता है जहां nand/और को समानांतर किया जा सकता है) | ||
(0 ≤ i ≤ 15): F := D xor (B और (C xor D)) | (0 ≤ i ≤ 15): F := D xor (B और (C xor D)) | ||
(16 ≤ i ≤ 31): F := C xor (D और (B xor C)) | (16 ≤ i ≤ 31): F := C xor (D और (B xor C)) | ||
== MD5 हैश == | == MD5 हैश == | ||
128-बिट (16-बाइट) MD5 हैश (जिसे संदेश डाइजेस्ट भी कहा जाता है) को | 128-बिट (16-बाइट) MD5 हैश (जिसे संदेश डाइजेस्ट भी कहा जाता है) को प्रायः पर 32 [[हेक्साडेसिमल]] अंकों के अनुक्रम के रूप में दर्शाया जाता है। निम्नलिखित एक 43-बाइट [[ASCII]] इनपुट और संबंधित MD5 हैश प्रदर्शित करता है: | ||
MD5 (त्वरित भूरी लोमड़ी आलसी कुत्ते के ऊपर कूदती है) = | MD5 (त्वरित भूरी लोमड़ी आलसी कुत्ते के ऊपर कूदती है) = | ||
| Line 276: | Line 271: | ||
शून्य-लंबाई वाली स्ट्रिंग का हैश है: | शून्य-लंबाई वाली स्ट्रिंग का हैश है: | ||
एमडी5 ( ) = | एमडी5 ("") = | ||
d41d8cd98f00b204e9800998ecf8427e | d41d8cd98f00b204e9800998ecf8427e | ||
MD5 एल्गोरिथम किसी भी संख्या में बिट्स वाले संदेशों के लिए निर्दिष्ट है; यह आठ बिट्स ([[ऑक्टेट (कंप्यूटिंग)]], [[बाइट]] | MD5 एल्गोरिथम किसी भी संख्या में बिट्स वाले संदेशों के लिए निर्दिष्ट है; यह आठ बिट्स ([[ऑक्टेट (कंप्यूटिंग)]], [[बाइट|बाइट्स]]) के गुणकों तक सीमित नहीं है। कुछ MD5 कार्यान्वयन जैसे कि md5sum ऑक्टेट तक सीमित हो सकते हैं, या वे प्रारंभिक रूप से अनिर्धारित लंबाई के संदेशों के लिए स्ट्रीमिंग का समर्थन नहीं कर सकते हैं। | ||
== कार्यान्वयन == | == कार्यान्वयन == | ||
| Line 354: | Line 349: | ||
==बाहरी संबंध== | ==बाहरी संबंध== | ||
<!-- | |||