एमडी5: Difference between revisions
No edit summary |
|||
Line 25: | Line 25: | ||
एमडी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 का उपयोग अनजाने में भ्रष्टाचार के खिलाफ [[डेटा अखंडता]] को सत्यापित करने के लिए [[चेकसम]] के रूप में किया जा सकता है। ऐतिहासिक रूप से इसे [[क्रिप्टोग्राफ़िक हैश फ़ंक्शन]] के रूप में व्यापक रूप से उपयोग किया जाता था; हालांकि, यह व्यापक कमजोरियों से पीड़ित पाया गया है। यह अन्य गैर-क्रिप्टोग्राफ़िक उद्देश्यों के लिए उपयुक्त रहता है, उदाहरण के लिए, एक [[विभाजित डेटाबेस]] में किसी विशेष कुंजी के लिए विभाजन का निर्धारण करने के लिए, और अधिक हालिया [[सुरक्षित हैश एल्गोरिदम]] की तुलना में कम कम्प्यूटेशनल आवश्यकताओं के कारण इसे प्राथमिकता दी जा सकती है।<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 में कमजोरियों का पता लगाया।) | |||
1993 में, डेन बोअर और बॉसेलर्स ने [[ | 1993 में, डेन बोअर और बॉसेलर्स ने एमडी5 [[संपीड़न फ़ंक्शन]] के "[[छद्म-टकराव]]" को खोजने का एक प्रारंभिक, हालांकि सीमित, परिणाम दिया; यानी, दो अलग-अलग [[इनिशियलाइज़ेशन वैक्टर]] जो एक समान डाइजेस्ट उत्पन्न करते हैं। | ||
1996 में, डोबबर्टिन ने | 1996 में, डोबबर्टिन ने एमडी5 (डॉबबर्टिन, 1996) के संपीड़न समारोह के टकराव की घोषणा की। हालांकि यह पूर्ण एमडी5 हैश फ़ंक्शन पर हमला नहीं था, यह क्रिप्टोग्राफ़रों के लिए प्रतिस्थापन के लिए स्विच करने की सिफारिश करने के लिए काफी करीब था, जैसे कि [[सहअ -1]] (इसके बाद से भी समझौता किया गया) या [[आरआईपीईएमडी-160]]। | ||
[[बर्थडे अटैक]] पर विचार करने के लिए हैश वैल्यू आकार (128 बिट्स) काफी छोटा है। [[एमडी5सीआरके]] मार्च 2004 में शुरू की गई एक [[वितरित परियोजना]] थी, यह प्रदर्शित करने के लिए कि जन्मदिन के हमले का उपयोग करके टकराव का पता लगाने के लिए एमडी5 व्यावहारिक रूप से असुरक्षित है। | |||
एमडी5सीआरके 17 अगस्त 2004 के तुरंत बाद समाप्त हो गया, जब Xiaoyun Wang, Dengguo Feng, Xuejia Lai, और Hongbo Yu द्वारा पूर्ण एमडी5 के लिए टकराव की घोषणा की गई थी।<ref name="autogenerated2" /><ref>{{cite journal |last1=Hawkes |first1=Philip |last2=Paddon |first2=Michael |last3=Rose |first3=Gregory G. |author-link3=Gregory G. Rose |title=Musings on the Wang et al. MD5 Collision |journal=[[Cryptology ePrint Archive]] |date=13 Oct 2004 |url=https://eprint.iacr.org/2004/264 |access-date=10 October 2018 |archive-url=https://web.archive.org/web/20181105220829/https://eprint.iacr.org/2004/264 |archive-date=5 November 2018 }}</ref> उनके विश्लेषणात्मक हमले को आईबीएम पी690 क्लस्टर पर केवल एक घंटा लगने की सूचना मिली थी।<ref>{{cite web|url=http://www.bishopfox.com/resources/tools/other-free-tools/md4md5-collision-code/|title=Fast MD5 and MD4 Collision Generators |website=BishopFox |date=26 September 2013|author=Bishop Fox|access-date=10 February 2014|archive-date=26 April 2017|archive-url=https://web.archive.org/web/20170426171733/http://www.bishopfox.com/resources/tools/other-free-tools/md4md5-collision-code/}}</ref> | |||
1 मार्च 2005 को, [[अर्जेन लेनस्ट्रा]], [[वैंग ओलम्पिक]], और बेने डे वेगर ने अलग-अलग सार्वजनिक कुंजियों और समान | |||
1 मार्च 2005 को, [[अर्जेन लेनस्ट्रा]], [[वैंग ओलम्पिक]], और बेने डे वेगर ने अलग-अलग सार्वजनिक कुंजियों और समान एमडी5 हैश मान के साथ दो X.509 प्रमाणपत्रों के निर्माण का प्रदर्शन किया, जो प्रत्यक्ष रूप से व्यावहारिक टकराव था।<ref>{{cite journal |last1=Lenstra |first1=Arjen |last2=Wang |first2=Xiaoyun |last3=Weger |first3=Benne de |author-link1=Arjen Lenstra |author-link2=Xiaoyun Wang |title=Colliding X.509 Certificates |journal=[[Cryptology ePrint Archive]] |date=1 Mar 2005 |url=http://eprint.iacr.org/2005/067 |access-date=10 October 2018}}</ref> निर्माण में दोनों सार्वजनिक कुंजियों के लिए निजी कुंजी सम्मिलित थी। कुछ दिनों बाद, [[वलसटीमिल क्लीमा]] ने एक बेहतर एल्गोरिथम का वर्णन किया, जो एक नोटबुक कंप्यूटर पर कुछ घंटों में एमडी5 टक्करों का निर्माण करने में सक्षम था।<ref>{{cite journal |last1=Klíma |first1=Vlastimil |author-link1=Vlastimil Klíma |title=Finding MD5 Collisions – a Toy For a Notebook |journal=[[Cryptology ePrint Archive]] |date=5 Mar 2005 |url=http://eprint.iacr.org/2005/075 |access-date=10 October 2018}}</ref> 18 मार्च 2006 को, क्लिमा ने एक एल्गोरिथ्म प्रकाशित किया जो एक एकल नोटबुक कंप्यूटर पर एक मिनट के भीतर टकराव का पता लगा सकता है, एक विधि का उपयोग करके वह टनलिंग कहता है।<ref>Vlastimil Klima: [http://eprint.iacr.org/2006/105 Tunnels in Hash Functions: MD5 Collisions Within a Minute], Cryptology ePrint Archive Report 2006/105, 18 March 2006, revised 17 April 2006. Retrieved 27 July 2008.</ref> | |||
2009 में, [[ | |||
विभिन्न एमडी5-संबंधित [[आरएफसी इरेटा]] प्रकाशित किए गए हैं। 2009 में, [[यूनाइटेड स्टेट्स साइबर कमांड]] ने अपने आधिकारिक प्रतीक के एक भाग के रूप में अपने मिशन स्टेटमेंट के एमडी5 हैश मान का उपयोग किया।<ref>{{cite magazine | |||
|url= https://www.wired.com/dangerroom/2010/07/code-cracked-cyber-command-logos-mystery-solved/ | |url= https://www.wired.com/dangerroom/2010/07/code-cracked-cyber-command-logos-mystery-solved/ | ||
|title= Code Cracked! Cyber Command Logo Mystery Solved | |title= Code Cracked! Cyber Command Logo Mystery Solved | ||
Line 44: | Line 45: | ||
|date= 8 July 2010 | |date= 8 July 2010 | ||
|access-date= 29 July 2011}}</ref> | |access-date= 29 July 2011}}</ref> | ||
24 दिसंबर 2010 को, ताओ | |||
24 दिसंबर 2010 को, ताओ शी और डेंगगुओ फेंग ने पहले प्रकाशित सिंगल-ब्लॉक (512-बिट) एमडी5 टक्कर की घोषणा की।<ref>{{cite web | |||
|url=http://eprint.iacr.org/2010/643 | |url=http://eprint.iacr.org/2010/643 | ||
|title=Construct MD5 Collisions Using Just A Single Block Of Message | |title=Construct MD5 Collisions Using Just A Single Block Of Message | ||
|year=2010 | |year=2010 | ||
|format=PDF | |format=PDF | ||
|author1=Tao Xie |author2=Dengguo Feng |access-date=28 July 2011}}</ref> (पिछली टक्कर खोजों ने मल्टी-ब्लॉक हमलों पर भरोसा किया था।) सुरक्षा कारणों | |author1=Tao Xie |author2=Dengguo Feng |access-date=28 July 2011}}</ref> (पिछली टक्कर खोजों ने मल्टी-ब्लॉक हमलों पर भरोसा किया था।) "सुरक्षा कारणों" के लिए, शी और फेंग ने नए हमले के तरीके का खुलासा नहीं किया। उन्होंने क्रिप्टोग्राफिक समुदाय को चुनौती दी, 1 जनवरी 2013 से पहले एक अलग 64-बाइट टकराव के पहले खोजकर्ता को यूएस $ 10,000 का इनाम दिया। [[मार्क स्टीवंस]] ने चुनौती का जवाब दिया और एकल-ब्लॉक संदेश और निर्माण एल्गोरिथ्म और स्रोतों को टकराते हुए प्रकाशित किया।<ref>{{cite web|url= http://marc-stevens.nl/research/md5-1block-collision/ |title=Marc Stevens – Research – Single-block collision attack on MD5 |publisher= Marc-stevens.nl |date=2012 |access-date=10 April 2014}}</ref> | ||
2011 में एक सूचनात्मक आरएफसी 6151<ref>{{cite journal |url=https://tools.ietf.org/html/rfc6151|title=RFC 6151 – Updated Security Considerations for the MD5 Message-Digest and the HMAC-MD5 Algorithms|website=Internet Engineering Task Force|date=March 2011|access-date=11 November 2013|last1=Turner|first1=Sean|doi=10.17487/RFC6151 }}</ref> | |||
2011 में एक सूचनात्मक आरएफसी 6151<ref>{{cite journal |url=https://tools.ietf.org/html/rfc6151|title=RFC 6151 – Updated Security Considerations for the MD5 Message-Digest and the HMAC-MD5 Algorithms|website=Internet Engineering Task Force|date=March 2011|access-date=11 November 2013|last1=Turner|first1=Sean|doi=10.17487/RFC6151 }}</ref> को एमडी5<ref>{{cite journal |url=https://tools.ietf.org/html/rfc1321 |title=RFC 1321 – The MD5 Message-Digest Algorithm |website=Internet Engineering Task Force |date=April 1992 |access-date=5 October 2013|last1=Rivest |first1=Ronald L. |doi=10.17487/RFC1321 |doi-access=free }}</ref> और एचएमएसी-एमडी5 में सुरक्षा कारणों को अद्यतन करने के लिए अनुमोदित किया गया था।<ref> | |||
{{cite journal |url= https://tools.ietf.org/html/rfc2104 |title= RFC 2104 – HMAC: Keyed-Hashing for Message Authentication |website=Internet Engineering Task Force |date= February 1997 |access-date= 5 October 2013|last1= Krawczyk |first1= Hugo |last2= Bellare |first2= Mihir |last3= Canetti |first3= Ran |doi= 10.17487/RFC2104 }} | {{cite journal |url= https://tools.ietf.org/html/rfc2104 |title= RFC 2104 – HMAC: Keyed-Hashing for Message Authentication |website=Internet Engineering Task Force |date= February 1997 |access-date= 5 October 2013|last1= Krawczyk |first1= Hugo |last2= Bellare |first2= Mihir |last3= Canetti |first3= Ran |doi= 10.17487/RFC2104 }} | ||
</ref> | </ref> | ||
== सुरक्षा == | == सुरक्षा == | ||
किसी भी क्रिप्टोग्राफिक हैश फ़ंक्शन की एक बुनियादी आवश्यकता यह है कि यह कम्प्यूटेशनल जटिलता सिद्धांत होना चाहिए # एक ही मूल्य के हैश वाले दो अलग-अलग संदेशों को खोजने के लिए इंट्रेक्टेबिलिटी। | किसी भी क्रिप्टोग्राफिक हैश फ़ंक्शन की एक बुनियादी आवश्यकता यह है कि यह कम्प्यूटेशनल जटिलता सिद्धांत होना चाहिए # एक ही मूल्य के हैश वाले दो अलग-अलग संदेशों को खोजने के लिए इंट्रेक्टेबिलिटी। एमडी5 इस आवश्यकता को भयावह रूप से विफल करता है; इस तरह के [[टक्कर प्रतिरोध]] को एक साधारण होम कंप्यूटर पर सेकंड में पाया जा सकता है। 31 दिसंबर 2008 को, CMU सॉफ्टवेयर इंजीनियरिंग संस्थान ने निष्कर्ष निकाला कि एमडी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 में [[ ज्वाला मैलवेयर ]] द्वारा सबसे बदनाम है। {{As of|2019}}, सुरक्षा विशेषज्ञों द्वारा इसकी अच्छी तरह से प्रलेखित कमजोरियों और बहिष्करण के बावजूद, एमडी5 का व्यापक रूप से उपयोग किया जाना जारी है।<ref name=Cimpanu2019/> | ||
एमडी5 हैश फ़ंक्शन की सुरक्षा से गंभीर रूप से समझौता किया गया है। एक टकराव का हमला मौजूद है जो 2.6 GHz पेंटियम 4 प्रोसेसर (2 की जटिलता) वाले कंप्यूटर पर सेकंड के भीतर टकराव का पता लगा सकता है<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> इसके अलावा, एक [[चुना-उपसर्ग टक्कर हमला]] भी है जो ऑफ-द-शेल्फ कंप्यूटिंग हार्डवेयर (जटिलता 2) का उपयोग करके सेकंड के भीतर निर्दिष्ट उपसर्गों के साथ दो इनपुट के लिए टक्कर उत्पन्न कर सकता है<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> | |||
ऑफ-द-शेल्फ [[ ग्राफ़िक्स प्रोसेसिंग युनिट ]] के उपयोग से टक्करों को खोजने की क्षमता में काफी मदद मिली है। एक NVIDIA GeForce 8400GS ग्राफ़िक्स प्रोसेसर पर, प्रति सेकंड 16-18 मिलियन हैश की गणना की जा सकती है। एक NVIDIA GeForce 8800 Ultra प्रति सेकंड 200 मिलियन से अधिक हैश की गणना कर सकता है।<ref>{{cite web | ऑफ-द-शेल्फ [[ ग्राफ़िक्स प्रोसेसिंग युनिट ]] के उपयोग से टक्करों को खोजने की क्षमता में काफी मदद मिली है। एक NVIDIA GeForce 8400GS ग्राफ़िक्स प्रोसेसर पर, प्रति सेकंड 16-18 मिलियन हैश की गणना की जा सकती है। एक NVIDIA GeForce 8800 Ultra प्रति सेकंड 200 मिलियन से अधिक हैश की गणना कर सकता है।<ref>{{cite web | ||
| url = http://bvernoux.free.fr/md5/index.php | | url = http://bvernoux.free.fr/md5/index.php | ||
| title = New GPU MD5 cracker cracks more than 200 million hashes per second. | | title = New GPU MD5 cracker cracks more than 200 million hashes per second. | ||
}}</ref> | }}</ref> | ||
इन हैश और टकराव के हमलों को सार्वजनिक रूप से विभिन्न स्थितियों में प्रदर्शित किया गया है, जिसमें दस्तावेज़ फ़ाइलों को टकराना भी | इन हैश और टकराव के हमलों को सार्वजनिक रूप से विभिन्न स्थितियों में प्रदर्शित किया गया है, जिसमें दस्तावेज़ फ़ाइलों को टकराना भी सम्मिलित है<ref>{{cite web |author=Magnus Daum, [[Stefan Lucks]] |title=हैश टकराव (द पॉइज़न मैसेज अटैक)|work=[[Eurocrypt]] 2005 rump session |url=http://th.informatik.uni-mannheim.de/People/lucks/HashCollisions/ |archive-url=https://web.archive.org/web/20100327141611/http://th.informatik.uni-mannheim.de/people/lucks/HashCollisions/ |archive-date=27 March 2010 |df=dmy-all }}</ref><ref name=special-file-formats>{{Cite web |author1=Max Gebhardt |author2=Georg Illies |author3=Werner Schindler |title=विशेष फ़ाइल स्वरूपों के लिए एकल हैश टक्करों के व्यावहारिक मूल्य पर एक नोट|website=National Institute of Standards and Technology |url=http://csrc.nist.gov/groups/ST/hash/documents/Illies_NIST_05.pdf |archive-url=https://web.archive.org/web/20080917182949/http://csrc.nist.gov/groups/ST/hash/documents/Illies_NIST_05.pdf |archive-date=2008-09-17 |date=31 October 2005}}</ref> और [[डिजिटल प्रमाण पत्र]]।<ref name="sslHarmful" />2015 तक, एमडी5 को अभी भी काफी व्यापक रूप से उपयोग किए जाने के लिए प्रदर्शित किया गया था, विशेष रूप से सुरक्षा अनुसंधान और एंटीवायरस कंपनियों द्वारा।<ref>{{Cite web|title = Poisonous MD5 – Wolves Among the Sheep {{!}} Silent Signal Techblog|url = http://blog.silentsignal.eu/2015/06/10/poisonous-md5-wolves-among-the-sheep/|access-date = 2015-06-10}}</ref> | ||
2019 तक, व्यापक रूप से उपयोग की जाने वाली सामग्री प्रबंधन प्रणालियों के एक चौथाई को अभी भी [[पासवर्ड हैशिंग]] के लिए | 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 में, | 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 में यह दिखाया गया था कि | 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 80: | Line 81: | ||
|archive-url=https://web.archive.org/web/20130828142658/http://news.cnet.com/8301-1009_3-10129693-83.html | |archive-url=https://web.archive.org/web/20130828142658/http://news.cnet.com/8301-1009_3-10129693-83.html | ||
}}</ref> | }}</ref> | ||
2010 तक, सीएमयू सॉफ्टवेयर इंजीनियरिंग संस्थान एमडी5 को क्रिप्टोग्राफ़िक रूप से टूटा हुआ और आगे के उपयोग के लिए अनुपयुक्त मानता है,<ref>{{cite web|url=http://www.kb.cert.org/vuls/id/836068 |title=CERT Vulnerability Note VU#836068 |publisher=Kb.cert.org |access-date=9 August 2010}}</ref> और अधिकांश अमेरिकी सरकारी अनुप्रयोगों को अब हैश कार्यों के [[SHA-2]] परिवार की आवश्यकता होती है।<ref>{{cite web |url=http://csrc.nist.gov/groups/ST/hash/policy.html |title=NIST.gov — Computer Security Division — Computer Security Resource Center |publisher=Csrc.nist.gov |access-date=9 August 2010 |archive-url=https://web.archive.org/web/20110609064344/http://csrc.nist.gov/groups/ST/hash/policy.html |archive-date=9 June 2011 }}</ref> 2012 में, Flame (मैलवेयर) मैलवेयर ने Microsoft डिजिटल हस्ताक्षर को नकली बनाने के लिए | 2010 तक, सीएमयू सॉफ्टवेयर इंजीनियरिंग संस्थान एमडी5 को क्रिप्टोग्राफ़िक रूप से टूटा हुआ और आगे के उपयोग के लिए अनुपयुक्त मानता है,<ref>{{cite web|url=http://www.kb.cert.org/vuls/id/836068 |title=CERT Vulnerability Note VU#836068 |publisher=Kb.cert.org |access-date=9 August 2010}}</ref> और अधिकांश अमेरिकी सरकारी अनुप्रयोगों को अब हैश कार्यों के [[SHA-2]] परिवार की आवश्यकता होती है।<ref>{{cite web |url=http://csrc.nist.gov/groups/ST/hash/policy.html |title=NIST.gov — Computer Security Division — Computer Security Resource Center |publisher=Csrc.nist.gov |access-date=9 August 2010 |archive-url=https://web.archive.org/web/20110609064344/http://csrc.nist.gov/groups/ST/hash/policy.html |archive-date=9 June 2011 }}</ref> 2012 में, Flame (मैलवेयर) मैलवेयर ने Microsoft डिजिटल हस्ताक्षर को नकली बनाने के लिए एमडी5 की कमजोरियों का फायदा उठाया।<ref name="foo">{{cite web|url=http://blogs.technet.com/b/srd/archive/2012/06/06/more-information-about-the-digital-certificates-used-to-sign-the-flame-malware.aspx|title=ज्वाला मैलवेयर टक्कर हमले की व्याख्या की|access-date=7 June 2012|archive-url=https://web.archive.org/web/20120608225029/http://blogs.technet.com/b/srd/archive/2012/06/06/more-information-about-the-digital-certificates-used-to-sign-the-flame-malware.aspx|archive-date=8 June 2012}}</ref> | ||
Line 86: | Line 87: | ||
{{Further|Collision attack}} | {{Further|Collision attack}} | ||
1996 में, | 1996 में, एमडी5 के संपीड़न समारोह में टकराव पाए गए, और हंस डोबबर्टिन ने RSA प्रयोगशालाओं के तकनीकी समाचार पत्र में लिखा, प्रस्तुत हमले से अभी तक एमडी5 के व्यावहारिक अनुप्रयोगों को खतरा नहीं है, लेकिन यह काफी करीब आता है ... भविष्य में एमडी5 नहीं होना चाहिए लंबे समय तक लागू किया जाएगा ... जहां टकराव-प्रतिरोधी हैश फ़ंक्शन की आवश्यकता होती है।<ref>{{Cite journal | ||
|url=ftp://ftp.rsasecurity.com/pub/cryptobytes/crypto2n2.pdf | |url=ftp://ftp.rsasecurity.com/pub/cryptobytes/crypto2n2.pdf | ||
|journal=RSA Laboratories CryptoBytes | |journal=RSA Laboratories CryptoBytes | ||
Line 99: | Line 100: | ||
|quote=The presented attack does not yet threaten practical applications of MD5, but it comes rather close. ....{{sic}} in the future MD5 should no longer be implemented...{{sic}} where a collision-resistant hash function is required. | |quote=The presented attack does not yet threaten practical applications of MD5, but it comes rather close. ....{{sic}} in the future MD5 should no longer be implemented...{{sic}} where a collision-resistant hash function is required. | ||
}}{{Dead link|date=February 2020 |bot=InternetArchiveBot |fix-attempted=yes }}</ref> | }}{{Dead link|date=February 2020 |bot=InternetArchiveBot |fix-attempted=yes }}</ref> | ||
2005 में, शोधकर्ता [[ परिशिष्ट भाग ]] दस्तावेज़ों के जोड़े बनाने में सक्षम थे<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> और 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> उसी हैश के साथ। उस वर्ष बाद में, | 2005 में, शोधकर्ता [[ परिशिष्ट भाग ]] दस्तावेज़ों के जोड़े बनाने में सक्षम थे<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> और 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> उसी हैश के साथ। उस वर्ष बाद में, एमडी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वीं [[अराजकता संचार कांग्रेस]] में घोषणा की कि कैसे उन्होंने एक इंटरमीडिएट सर्टिफिकेट अथॉरिटी सर्टिफिकेट बनाने के लिए | 30 दिसंबर 2008 को, शोधकर्ताओं के एक समूह ने 25वीं [[अराजकता संचार कांग्रेस]] में घोषणा की कि कैसे उन्होंने एक इंटरमीडिएट सर्टिफिकेट अथॉरिटी सर्टिफिकेट बनाने के लिए एमडी5 टक्करों का उपयोग किया था जो इसके एमडी5 हैश द्वारा चेक किए जाने पर वैध प्रतीत होता था।<ref name="sslHarmful" />शोधकर्ताओं ने स्विट्ज़रलैंड के लॉज़ेन में इकोले पॉलीटेक्निक फेडेरेल डी लॉज़ेन में पीएस 3 क्लस्टर का इस्तेमाल किया<ref>{{cite magazine|url=http://blog.wired.com/27bstroke6/2008/12/berlin.html|title=एक वेब कंकाल कुंजी बनाने के लिए शोधकर्ता प्लेस्टेशन क्लस्टर का उपयोग करते हैं|date=31 December 2008|magazine=Wired|access-date=31 December 2008}}</ref> [[रैपिडएसएसएल]] द्वारा जारी किए गए एक सामान्य एसएसएल प्रमाणपत्र को उस जारीकर्ता के लिए एक कार्यशील [[सीए प्रमाणपत्र]] में बदलने के लिए, जिसका उपयोग तब अन्य प्रमाणपत्र बनाने के लिए किया जा सकता है जो वैध प्रतीत होंगे और रैपिडएसएसएल द्वारा जारी किए जाएंगे। रैपिडएसएसएल प्रमाणपत्र जारी करने वाले [[ Verisign ]] ने कहा कि एक बार भेद्यता की घोषणा होने के बाद उन्होंने रैपिडएसएसएल के लिए अपने चेकसम एल्गोरिथम के रूप में एमडी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> हालांकि Verisign ने एमडी5 का उपयोग करके हस्ताक्षरित मौजूदा प्रमाणपत्रों को रद्द करने से इनकार कर दिया, लेकिन उनकी प्रतिक्रिया को एक्सप्लॉइट के लेखकों ([[अलेक्जेंडर सोतिरौ]], [[मार्क स्टीवंस (क्रिप्टोलॉजी)]], [[जैकब एपेलबाउम]], अर्जेन लेनस्ट्रा, डेविड मोलनार, डैग अर्ने ओस्विक, और बेने डी वेगर) द्वारा पर्याप्त माना गया था। .<ref name="sslHarmful" />ब्रूस श्नेयर ने हमले के बारे में लिखा है कि हम पहले से ही जानते थे कि एमडी5 एक टूटा हुआ हैश फ़ंक्शन है और अब किसी को भी एमडी5 का उपयोग नहीं करना चाहिए।<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]] के अनुसार, फ़्लेम (मैलवेयर) मैलवेयर के लेखकों ने Windows कोड-हस्ताक्षर प्रमाणपत्र बनाने के लिए | 2012 में, [[Microsoft]] के अनुसार, फ़्लेम (मैलवेयर) मैलवेयर के लेखकों ने Windows कोड-हस्ताक्षर प्रमाणपत्र बनाने के लिए एमडी5 टक्कर का उपयोग किया।<ref name="foo" /> | ||
एमडी5 मर्कले-डैमगार्ड निर्माण का उपयोग करता है, इसलिए यदि एक ही हैश के साथ दो उपसर्गों का निर्माण किया जा सकता है, तो दोनों में एक सामान्य प्रत्यय जोड़ा जा सकता है ताकि टक्कर का उपयोग करने वाले एप्लिकेशन द्वारा मान्य डेटा के रूप में स्वीकार किए जाने की अधिक संभावना हो। इसके अलावा, वर्तमान टकराव-ढूंढने की तकनीक एक मनमाना उपसर्ग निर्दिष्ट करने की अनुमति देती है: एक हमलावर दो टकराने वाली फाइलें बना सकता है जो दोनों एक ही सामग्री से शुरू होती हैं। सभी हमलावरों को दो टकराने वाली फाइलें उत्पन्न करने की आवश्यकता होती है, डेटा के 128-बाइट ब्लॉक के साथ एक टेम्पलेट फ़ाइल होती है, जो 64-बाइट सीमा पर संरेखित होती है, जिसे टक्कर-ढूँढने वाले एल्गोरिदम द्वारा स्वतंत्र रूप से बदला जा सकता है। एक उदाहरण एमडी5 टक्कर, दो संदेशों के साथ 6 बिट्स में अंतर है: | |||
d131dd02c5e6eec4 693d9a0698aff95c 2fcab5{{Background color|#87CEEB|8}712467eab4004583eb8fb7f89 | d131dd02c5e6eec4 693d9a0698aff95c 2fcab5{{Background color|#87CEEB|8}712467eab4004583eb8fb7f89 | ||
Line 116: | Line 117: | ||
e99f33420f577ee8 ce54b67080{{Background color|#87CEEB|2}80d1e c69821bcb6a88393 96f965{{Background color|#87CEEB|a}b6ff72a70 | e99f33420f577ee8 ce54b67080{{Background color|#87CEEB|2}80d1e c69821bcb6a88393 96f965{{Background color|#87CEEB|a}b6ff72a70 | ||
दोनों | दोनों एमडी5 हैश का उत्पादन करते हैं <code>79054025255fb1a26e4bc422aef54eb4</code>.<ref>{{cite web | ||
|url=http://www.rtfm.com/movabletype/archives/2004_08.html#001055 | |url=http://www.rtfm.com/movabletype/archives/2004_08.html#001055 | ||
|title=A real MD5 collision | |title=A real MD5 collision | ||
Line 143: | Line 144: | ||
== अनुप्रयोग == | == अनुप्रयोग == | ||
एमडी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|फ़ाइल संचरण में | [[File:CPT-Hashing-File-Transmission.svg|350px|center|फ़ाइल संचरण में एमडी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 का उपयोग [[इलेक्ट्रॉनिक खोज]] के क्षेत्र में भी किया जाता है, कानूनी खोज प्रक्रिया के दौरान एक्सचेंज किए जाने वाले प्रत्येक दस्तावेज़ के लिए एक विशिष्ट पहचानकर्ता प्रदान करने के लिए। इस पद्धति का उपयोग [[बेट्स नंबरिंग]] नंबरिंग सिस्टम को बदलने के लिए किया जा सकता है जिसका उपयोग कागजी दस्तावेजों के आदान-प्रदान के दौरान दशकों से किया जाता रहा है। जैसा ऊपर बताया गया है, टकराव के हमलों में आसानी के कारण इस उपयोग को हतोत्साहित किया जाना चाहिए। | |||
== एल्गोरिथम == | == एल्गोरिथम == | ||
[[Image:MD5 algorithm.svg|right|thumbnail|300px|चित्र 1. एक | [[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</सुप>. | ||
मुख्य MD5 एल्गोरिथ्म 128-बिट अवस्था पर संचालित होता है, जिसे चार 32-बिट शब्दों में विभाजित किया गया है {{mvar|A}}, {{mvar|B}}, {{mvar|C}}, और {{mvar|D}}. इन्हें कुछ निश्चित स्थिरांकों के लिए प्रारंभ किया जाता है। मुख्य एल्गोरिथ्म तब राज्य को संशोधित करने के लिए बदले में प्रत्येक 512-बिट संदेश ब्लॉक का उपयोग करता है। एक संदेश ब्लॉक के प्रसंस्करण में चार समान चरण होते हैं, जिन्हें राउंड कहा जाता है; प्रत्येक दौर एक गैर-रैखिक फ़ंक्शन के आधार पर 16 समान संचालन से बना होता है {{mvar|F}}, मॉड्यूलर जोड़ और बायां घुमाव। चित्रा 1 एक दौर में एक ऑपरेशन दिखाता है। चार संभावित कार्य हैं; प्रत्येक दौर में एक अलग प्रयोग किया जाता है: | मुख्य MD5 एल्गोरिथ्म 128-बिट अवस्था पर संचालित होता है, जिसे चार 32-बिट शब्दों में विभाजित किया गया है {{mvar|A}}, {{mvar|B}}, {{mvar|C}}, और {{mvar|D}}. इन्हें कुछ निश्चित स्थिरांकों के लिए प्रारंभ किया जाता है। मुख्य एल्गोरिथ्म तब राज्य को संशोधित करने के लिए बदले में प्रत्येक 512-बिट संदेश ब्लॉक का उपयोग करता है। एक संदेश ब्लॉक के प्रसंस्करण में चार समान चरण होते हैं, जिन्हें राउंड कहा जाता है; प्रत्येक दौर एक गैर-रैखिक फ़ंक्शन के आधार पर 16 समान संचालन से बना होता है {{mvar|F}}, मॉड्यूलर जोड़ और बायां घुमाव। चित्रा 1 एक दौर में एक ऑपरेशन दिखाता है। चार संभावित कार्य हैं; प्रत्येक दौर में एक अलग प्रयोग किया जाता है: |
Revision as of 13:03, 22 May 2023
General | |
---|---|
Designers | Ronald Rivest |
First published | April 1992 |
Series | MD2, MD4, MD5, MD6 |
Cipher detail | |
Digest sizes | 128 bit |
Block sizes | 512 bit |
Structure | Merkle–Damgård construction |
Rounds | 4[1] |
Best public cryptanalysis | |
A 2013 attack by Xie Tao, Fanbao Liu, and Dengguo Feng breaks MD5 collision resistance in 218 time. This attack runs in less than a second on a regular computer.[2] MD5 is prone to length extension attacks. |
एमडी5 संदेश-डाइजेस्ट एल्गोरिथम एक व्यापक रूप से उपयोग किया जाने वाला हैश फ़ंक्शन है जो 128-बिट हैश मान उत्पन्न करता है। एमडी5 को रोनाल्ड रिवेस्ट द्वारा 1991 में पहले के हैश फ़ंक्शन एमडी4, को बदलने के लिए डिज़ाइन किया गया था[3] और 1992 में आरएफसी 1321 के रूप में निर्दिष्ट किया गया था।
एमडी5 का उपयोग अनजाने में भ्रष्टाचार के खिलाफ डेटा अखंडता को सत्यापित करने के लिए चेकसम के रूप में किया जा सकता है। ऐतिहासिक रूप से इसे क्रिप्टोग्राफ़िक हैश फ़ंक्शन के रूप में व्यापक रूप से उपयोग किया जाता था; हालांकि, यह व्यापक कमजोरियों से पीड़ित पाया गया है। यह अन्य गैर-क्रिप्टोग्राफ़िक उद्देश्यों के लिए उपयुक्त रहता है, उदाहरण के लिए, एक विभाजित डेटाबेस में किसी विशेष कुंजी के लिए विभाजन का निर्धारण करने के लिए, और अधिक हालिया सुरक्षित हैश एल्गोरिदम की तुलना में कम कम्प्यूटेशनल आवश्यकताओं के कारण इसे प्राथमिकता दी जा सकती है।[4]
इतिहास और क्रिप्टएनलिसिस
एमडी5 एमआईटी के प्रोफेसर रोनाल्ड रिवेस्ट (रिवेस्ट, 1992) द्वारा डिज़ाइन किए गए संदेश डाइजेस्ट एल्गोरिदम की श्रृंखला में से एक है। जब विश्लेषणात्मक कार्य ने संकेत दिया कि एमडी5 के पूर्ववर्ती एमडी4 के असुरक्षित होने की संभावना थी, तो रिवेस्ट ने 1991 में एमडी5 को एक सुरक्षित प्रतिस्थापन के रूप में डिजाइन किया। (हंस डोबबर्टिन ने वास्तव में बाद में एमडी4 में कमजोरियों का पता लगाया।)
1993 में, डेन बोअर और बॉसेलर्स ने एमडी5 संपीड़न फ़ंक्शन के "छद्म-टकराव" को खोजने का एक प्रारंभिक, हालांकि सीमित, परिणाम दिया; यानी, दो अलग-अलग इनिशियलाइज़ेशन वैक्टर जो एक समान डाइजेस्ट उत्पन्न करते हैं।
1996 में, डोबबर्टिन ने एमडी5 (डॉबबर्टिन, 1996) के संपीड़न समारोह के टकराव की घोषणा की। हालांकि यह पूर्ण एमडी5 हैश फ़ंक्शन पर हमला नहीं था, यह क्रिप्टोग्राफ़रों के लिए प्रतिस्थापन के लिए स्विच करने की सिफारिश करने के लिए काफी करीब था, जैसे कि सहअ -1 (इसके बाद से भी समझौता किया गया) या आरआईपीईएमडी-160।
बर्थडे अटैक पर विचार करने के लिए हैश वैल्यू आकार (128 बिट्स) काफी छोटा है। एमडी5सीआरके मार्च 2004 में शुरू की गई एक वितरित परियोजना थी, यह प्रदर्शित करने के लिए कि जन्मदिन के हमले का उपयोग करके टकराव का पता लगाने के लिए एमडी5 व्यावहारिक रूप से असुरक्षित है।
एमडी5सीआरके 17 अगस्त 2004 के तुरंत बाद समाप्त हो गया, जब Xiaoyun Wang, Dengguo Feng, Xuejia Lai, और Hongbo Yu द्वारा पूर्ण एमडी5 के लिए टकराव की घोषणा की गई थी।[5][6] उनके विश्लेषणात्मक हमले को आईबीएम पी690 क्लस्टर पर केवल एक घंटा लगने की सूचना मिली थी।[7]
1 मार्च 2005 को, अर्जेन लेनस्ट्रा, वैंग ओलम्पिक, और बेने डे वेगर ने अलग-अलग सार्वजनिक कुंजियों और समान एमडी5 हैश मान के साथ दो X.509 प्रमाणपत्रों के निर्माण का प्रदर्शन किया, जो प्रत्यक्ष रूप से व्यावहारिक टकराव था।[8] निर्माण में दोनों सार्वजनिक कुंजियों के लिए निजी कुंजी सम्मिलित थी। कुछ दिनों बाद, वलसटीमिल क्लीमा ने एक बेहतर एल्गोरिथम का वर्णन किया, जो एक नोटबुक कंप्यूटर पर कुछ घंटों में एमडी5 टक्करों का निर्माण करने में सक्षम था।[9] 18 मार्च 2006 को, क्लिमा ने एक एल्गोरिथ्म प्रकाशित किया जो एक एकल नोटबुक कंप्यूटर पर एक मिनट के भीतर टकराव का पता लगा सकता है, एक विधि का उपयोग करके वह टनलिंग कहता है।[10]
विभिन्न एमडी5-संबंधित आरएफसी इरेटा प्रकाशित किए गए हैं। 2009 में, यूनाइटेड स्टेट्स साइबर कमांड ने अपने आधिकारिक प्रतीक के एक भाग के रूप में अपने मिशन स्टेटमेंट के एमडी5 हैश मान का उपयोग किया।[11]
24 दिसंबर 2010 को, ताओ शी और डेंगगुओ फेंग ने पहले प्रकाशित सिंगल-ब्लॉक (512-बिट) एमडी5 टक्कर की घोषणा की।[12] (पिछली टक्कर खोजों ने मल्टी-ब्लॉक हमलों पर भरोसा किया था।) "सुरक्षा कारणों" के लिए, शी और फेंग ने नए हमले के तरीके का खुलासा नहीं किया। उन्होंने क्रिप्टोग्राफिक समुदाय को चुनौती दी, 1 जनवरी 2013 से पहले एक अलग 64-बाइट टकराव के पहले खोजकर्ता को यूएस $ 10,000 का इनाम दिया। मार्क स्टीवंस ने चुनौती का जवाब दिया और एकल-ब्लॉक संदेश और निर्माण एल्गोरिथ्म और स्रोतों को टकराते हुए प्रकाशित किया।[13]
2011 में एक सूचनात्मक आरएफसी 6151[14] को एमडी5[15] और एचएमएसी-एमडी5 में सुरक्षा कारणों को अद्यतन करने के लिए अनुमोदित किया गया था।[16]
सुरक्षा
किसी भी क्रिप्टोग्राफिक हैश फ़ंक्शन की एक बुनियादी आवश्यकता यह है कि यह कम्प्यूटेशनल जटिलता सिद्धांत होना चाहिए # एक ही मूल्य के हैश वाले दो अलग-अलग संदेशों को खोजने के लिए इंट्रेक्टेबिलिटी। एमडी5 इस आवश्यकता को भयावह रूप से विफल करता है; इस तरह के टक्कर प्रतिरोध को एक साधारण होम कंप्यूटर पर सेकंड में पाया जा सकता है। 31 दिसंबर 2008 को, CMU सॉफ्टवेयर इंजीनियरिंग संस्थान ने निष्कर्ष निकाला कि एमडी5 अनिवार्य रूप से क्रिप्टोग्राफिक रूप से टूटा हुआ था और आगे उपयोग के लिए अनुपयुक्त था।[17] एमडी5 की कमजोरियों का क्षेत्र में शोषण किया गया है, जो 2012 में ज्वाला मैलवेयर द्वारा सबसे बदनाम है। As of 2019[update], सुरक्षा विशेषज्ञों द्वारा इसकी अच्छी तरह से प्रलेखित कमजोरियों और बहिष्करण के बावजूद, एमडी5 का व्यापक रूप से उपयोग किया जाना जारी है।[18]
एमडी5 हैश फ़ंक्शन की सुरक्षा से गंभीर रूप से समझौता किया गया है। एक टकराव का हमला मौजूद है जो 2.6 GHz पेंटियम 4 प्रोसेसर (2 की जटिलता) वाले कंप्यूटर पर सेकंड के भीतर टकराव का पता लगा सकता है24.1).[19] इसके अलावा, एक चुना-उपसर्ग टक्कर हमला भी है जो ऑफ-द-शेल्फ कंप्यूटिंग हार्डवेयर (जटिलता 2) का उपयोग करके सेकंड के भीतर निर्दिष्ट उपसर्गों के साथ दो इनपुट के लिए टक्कर उत्पन्न कर सकता है39).[20] ऑफ-द-शेल्फ ग्राफ़िक्स प्रोसेसिंग युनिट के उपयोग से टक्करों को खोजने की क्षमता में काफी मदद मिली है। एक NVIDIA GeForce 8400GS ग्राफ़िक्स प्रोसेसर पर, प्रति सेकंड 16-18 मिलियन हैश की गणना की जा सकती है। एक NVIDIA GeForce 8800 Ultra प्रति सेकंड 200 मिलियन से अधिक हैश की गणना कर सकता है।[21] इन हैश और टकराव के हमलों को सार्वजनिक रूप से विभिन्न स्थितियों में प्रदर्शित किया गया है, जिसमें दस्तावेज़ फ़ाइलों को टकराना भी सम्मिलित है[22][23] और डिजिटल प्रमाण पत्र।[24]2015 तक, एमडी5 को अभी भी काफी व्यापक रूप से उपयोग किए जाने के लिए प्रदर्शित किया गया था, विशेष रूप से सुरक्षा अनुसंधान और एंटीवायरस कंपनियों द्वारा।[25] 2019 तक, व्यापक रूप से उपयोग की जाने वाली सामग्री प्रबंधन प्रणालियों के एक चौथाई को अभी भी पासवर्ड हैशिंग के लिए एमडी5 का उपयोग करने की सूचना मिली थी।[18]
सुरक्षा मुद्दों का अवलोकन
1996 में, एमडी5 के डिज़ाइन में एक दोष पाया गया। जबकि उस समय इसे एक घातक कमजोरी नहीं माना गया था, क्रिप्टोग्राफर्स ने अन्य एल्गोरिदम, जैसे कि SHA-1, के उपयोग की सिफारिश करना शुरू कर दिया था, जो तब से कमजोर भी पाया गया है।[26] 2004 में यह दिखाया गया था कि एमडी5 टक्कर-प्रतिरोधी नहीं है।[27] जैसे, एमडी5 परिवहन परत सुरक्षा सार्वजनिक कुंजी प्रमाणपत्र या डिजिटल हस्ताक्षर जैसे अनुप्रयोगों के लिए उपयुक्त नहीं है जो डिजिटल सुरक्षा के लिए इस संपत्ति पर भरोसा करते हैं। शोधकर्ताओं ने अतिरिक्त रूप से एमडी5 में अधिक गंभीर खामियों की खोज की, और एक संभावित टकराव के हमले का वर्णन किया - इनपुट की एक जोड़ी बनाने की एक विधि जिसके लिए एमडी5 समान चेकसम का उत्पादन करता है।[5][28] 2005, 2006 और 2007 में एमडी5 को तोड़ने में और प्रगति की गई।[29] दिसंबर 2008 में, शोधकर्ताओं के एक समूह ने नकली एसएसएल प्रमाणपत्र वैधता के लिए इस तकनीक का इस्तेमाल किया।[24][30] 2010 तक, सीएमयू सॉफ्टवेयर इंजीनियरिंग संस्थान एमडी5 को क्रिप्टोग्राफ़िक रूप से टूटा हुआ और आगे के उपयोग के लिए अनुपयुक्त मानता है,[31] और अधिकांश अमेरिकी सरकारी अनुप्रयोगों को अब हैश कार्यों के SHA-2 परिवार की आवश्यकता होती है।[32] 2012 में, Flame (मैलवेयर) मैलवेयर ने Microsoft डिजिटल हस्ताक्षर को नकली बनाने के लिए एमडी5 की कमजोरियों का फायदा उठाया।[33]
टक्कर भेद्यता
1996 में, एमडी5 के संपीड़न समारोह में टकराव पाए गए, और हंस डोबबर्टिन ने RSA प्रयोगशालाओं के तकनीकी समाचार पत्र में लिखा, प्रस्तुत हमले से अभी तक एमडी5 के व्यावहारिक अनुप्रयोगों को खतरा नहीं है, लेकिन यह काफी करीब आता है ... भविष्य में एमडी5 नहीं होना चाहिए लंबे समय तक लागू किया जाएगा ... जहां टकराव-प्रतिरोधी हैश फ़ंक्शन की आवश्यकता होती है।[34] 2005 में, शोधकर्ता परिशिष्ट भाग दस्तावेज़ों के जोड़े बनाने में सक्षम थे[35] और X.509 प्रमाणपत्र[36] उसी हैश के साथ। उस वर्ष बाद में, एमडी5 के डिजाइनर रॉन रिवेस्ट ने लिखा कि एमडी5 और sha1 दोनों स्पष्ट रूप से टूट गए हैं (टक्कर-प्रतिरोध के संदर्भ में)।[37] 30 दिसंबर 2008 को, शोधकर्ताओं के एक समूह ने 25वीं अराजकता संचार कांग्रेस में घोषणा की कि कैसे उन्होंने एक इंटरमीडिएट सर्टिफिकेट अथॉरिटी सर्टिफिकेट बनाने के लिए एमडी5 टक्करों का उपयोग किया था जो इसके एमडी5 हैश द्वारा चेक किए जाने पर वैध प्रतीत होता था।[24]शोधकर्ताओं ने स्विट्ज़रलैंड के लॉज़ेन में इकोले पॉलीटेक्निक फेडेरेल डी लॉज़ेन में पीएस 3 क्लस्टर का इस्तेमाल किया[38] रैपिडएसएसएल द्वारा जारी किए गए एक सामान्य एसएसएल प्रमाणपत्र को उस जारीकर्ता के लिए एक कार्यशील सीए प्रमाणपत्र में बदलने के लिए, जिसका उपयोग तब अन्य प्रमाणपत्र बनाने के लिए किया जा सकता है जो वैध प्रतीत होंगे और रैपिडएसएसएल द्वारा जारी किए जाएंगे। रैपिडएसएसएल प्रमाणपत्र जारी करने वाले Verisign ने कहा कि एक बार भेद्यता की घोषणा होने के बाद उन्होंने रैपिडएसएसएल के लिए अपने चेकसम एल्गोरिथम के रूप में एमडी5 का उपयोग करके नए प्रमाणपत्र जारी करना बंद कर दिया।[39] हालांकि Verisign ने एमडी5 का उपयोग करके हस्ताक्षरित मौजूदा प्रमाणपत्रों को रद्द करने से इनकार कर दिया, लेकिन उनकी प्रतिक्रिया को एक्सप्लॉइट के लेखकों (अलेक्जेंडर सोतिरौ, मार्क स्टीवंस (क्रिप्टोलॉजी), जैकब एपेलबाउम, अर्जेन लेनस्ट्रा, डेविड मोलनार, डैग अर्ने ओस्विक, और बेने डी वेगर) द्वारा पर्याप्त माना गया था। .[24]ब्रूस श्नेयर ने हमले के बारे में लिखा है कि हम पहले से ही जानते थे कि एमडी5 एक टूटा हुआ हैश फ़ंक्शन है और अब किसी को भी एमडी5 का उपयोग नहीं करना चाहिए।[40] एसएसएल शोधकर्ताओं ने लिखा, हमारा वांछित प्रभाव यह है कि प्रमाणन प्राधिकरण नए प्रमाणपत्र जारी करने में एमडी5 का उपयोग करना बंद कर देंगे। हम यह भी आशा करते हैं कि अन्य अनुप्रयोगों में एमडी5 के उपयोग पर भी पुनर्विचार किया जाएगा।[24]
2012 में, Microsoft के अनुसार, फ़्लेम (मैलवेयर) मैलवेयर के लेखकों ने Windows कोड-हस्ताक्षर प्रमाणपत्र बनाने के लिए एमडी5 टक्कर का उपयोग किया।[33]
एमडी5 मर्कले-डैमगार्ड निर्माण का उपयोग करता है, इसलिए यदि एक ही हैश के साथ दो उपसर्गों का निर्माण किया जा सकता है, तो दोनों में एक सामान्य प्रत्यय जोड़ा जा सकता है ताकि टक्कर का उपयोग करने वाले एप्लिकेशन द्वारा मान्य डेटा के रूप में स्वीकार किए जाने की अधिक संभावना हो। इसके अलावा, वर्तमान टकराव-ढूंढने की तकनीक एक मनमाना उपसर्ग निर्दिष्ट करने की अनुमति देती है: एक हमलावर दो टकराने वाली फाइलें बना सकता है जो दोनों एक ही सामग्री से शुरू होती हैं। सभी हमलावरों को दो टकराने वाली फाइलें उत्पन्न करने की आवश्यकता होती है, डेटा के 128-बाइट ब्लॉक के साथ एक टेम्पलेट फ़ाइल होती है, जो 64-बाइट सीमा पर संरेखित होती है, जिसे टक्कर-ढूँढने वाले एल्गोरिदम द्वारा स्वतंत्र रूप से बदला जा सकता है। एक उदाहरण एमडी5 टक्कर, दो संदेशों के साथ 6 बिट्स में अंतर है:
d131dd02c5e6eec4 693d9a0698aff95c 2fcab5{{Background color|#87CEEB|8}712467eab4004583eb8fb7f89 55ad340609f4b302 83e4888325{{Background color|#87CEEB|7}{1415a 085125e8f7cdc99f d91dbd{{Background color|#87CEEB|f}280373 उपहास d8823e3156348f5b ae6dacd436c919c6 dd53e2{{Background color|#87CEEB|b}487da03fd 02396306d248cda0 e99f33420f577ee8 ce54b67080{{Background color|#87CEEB|a}80d1e c69821bcb6a88393 96f965{{Background color|#87CEEB|2}btfhhh0
d131dd02c5e6eec4 693d9a0698aff95c 2fcab5{{Background color|#87CEEB|0}712467eab4004583eb8fb7f89 55ad340609f4b302 83e4888325{{Background color|#87CEEB|f}{1415a 085125e8f7cdc99f d91dbd{{Background color|#87CEEB|7}280373 उपहास d8823e3156348f5b ae6dacd436c919c6 dd53e2{{Background color|#87CEEB|3}487da03fd 02396306d248cda0 e99f33420f577ee8 ce54b67080{{Background color|#87CEEB|2}80d1e c69821bcb6a88393 96f965{{Background color|#87CEEB|a}b6ff72a70
दोनों एमडी5 हैश का उत्पादन करते हैं 79054025255fb1a26e4bc422aef54eb4
.[41]
दो नमूनों के बीच का अंतर यह है कि प्रत्येक कुतरना में अग्रणी बिट फ़्लिप किया गया है। उदाहरण के लिए, शीर्ष नमूना 0x87 में 20वां बाइट (ऑफ़सेट 0x13), बाइनरी में 10000111 है। बाइट में अग्रणी बिट (पहले कुतरने में भी अग्रणी बिट) को 00000111 बनाने के लिए फ़्लिप किया जाता है, जो कि 0x07 है, जैसा कि निचले नमूने में दिखाया गया है।
बाद में अलग-अलग चुने गए उपसर्गों के साथ दो फ़ाइलों के बीच टकराव का निर्माण करना भी संभव पाया गया। इस तकनीक का उपयोग 2008 में दुष्ट सीए प्रमाणपत्र के निर्माण में किया गया था। 2014 में एंटोन कुज़नेत्सोव द्वारा संदेश पासिंग इंटरफ़ेस का उपयोग करके समानांतर टकराव की खोज का एक नया संस्करण प्रस्तावित किया गया था, जिसने कंप्यूटिंग क्लस्टर पर 11 घंटे में टक्कर खोजने की अनुमति दी थी।[42]
प्रीइमेज भेद्यता
अप्रैल 2009 में, एमडी5 के खिलाफ एक हमला प्रकाशित किया गया था जो एमडी5 के प्रीइमेज प्रतिरोध को तोड़ता है। यह हमला केवल सैद्धांतिक है, 2 की कम्प्यूटेशनल जटिलता के साथ123.4 पूर्ण प्रीइमेज के लिए।[43][44]
अनुप्रयोग
एमडी5 डाइजेस्ट का सॉफ़्टवेयर की दुनिया में व्यापक रूप से उपयोग किया गया है ताकि कुछ आश्वासन दिया जा सके कि स्थानांतरित फ़ाइल बरकरार है। उदाहरण के लिए, फ़ाइल सर्वर अक्सर फ़ाइलों के लिए एक पूर्व-गणना किए गए एमडी5 (एमडी5sum के रूप में जाना जाता है) चेकसम प्रदान करते हैं, ताकि उपयोगकर्ता डाउनलोड की गई फ़ाइल के चेकसम की तुलना इससे कर सके। अधिकांश यूनिक्स-आधारित ऑपरेटिंग सिस्टम में उनके वितरण पैकेज में एमडी5 योग उपयोगिताएँ सम्मिलित हैं; Windows उपयोगकर्ता सम्मिलित PowerShell फ़ंक्शन Get-FileHash का उपयोग कर सकते हैं, एक Microsoft उपयोगिता स्थापित कर सकते हैं,[45][46] या तृतीय-पक्ष एप्लिकेशन का उपयोग करें। एंड्रॉइड रोम भी इस प्रकार के चेकसम का उपयोग करते हैं।
चूंकि एमडी5 टकराव उत्पन्न करना आसान है, फ़ाइल बनाने वाले व्यक्ति के लिए उसी चेकसम के साथ दूसरी फ़ाइल बनाना संभव है, इसलिए यह तकनीक दुर्भावनापूर्ण छेड़छाड़ के कुछ रूपों से रक्षा नहीं कर सकती है। कुछ मामलों में, चेकसम पर भरोसा नहीं किया जा सकता है (उदाहरण के लिए, यदि इसे उसी चैनल पर डाउनलोड की गई फ़ाइल के रूप में प्राप्त किया गया था), उस स्थिति में एमडी5 केवल त्रुटि-जांच की कार्यक्षमता प्रदान कर सकता है: यह एक दूषित या अपूर्ण डाउनलोड को पहचान लेगा, जो बन जाता है बड़ी फ़ाइलों को डाउनलोड करते समय अधिक संभावना।
ऐतिहासिक रूप से, एमडी5 का उपयोग पासवर्ड के एक तरफ़ा हैश को संग्रहीत करने के लिए किया गया है # संग्रहीत पासवर्ड का फ़ॉर्म, अक्सर कुंजी खींचना के साथ।[47][48] पासवर्ड भंडारण के लिए अनुशंसित हैश की सूची में NIST एमडी5 को सम्मिलित नहीं करता है।[49] एमडी5 का उपयोग इलेक्ट्रॉनिक खोज के क्षेत्र में भी किया जाता है, कानूनी खोज प्रक्रिया के दौरान एक्सचेंज किए जाने वाले प्रत्येक दस्तावेज़ के लिए एक विशिष्ट पहचानकर्ता प्रदान करने के लिए। इस पद्धति का उपयोग बेट्स नंबरिंग नंबरिंग सिस्टम को बदलने के लिए किया जा सकता है जिसका उपयोग कागजी दस्तावेजों के आदान-प्रदान के दौरान दशकों से किया जाता रहा है। जैसा ऊपर बताया गया है, टकराव के हमलों में आसानी के कारण इस उपयोग को हतोत्साहित किया जाना चाहिए।
एल्गोरिथम
एमडी5 एक चर-लंबाई संदेश को 128 बिट्स के निश्चित-लंबाई वाले आउटपुट में संसाधित करता है। इनपुट संदेश 512-बिट ब्लॉक (सोलह 32-बिट शब्द) के टुकड़ों में विभाजित है; संदेश पैडिंग (क्रिप्टोग्राफी) है ताकि इसकी लंबाई 512 से विभाज्य हो। पैडिंग निम्नानुसार काम करती है: पहले, एक बिट, 1, संदेश के अंत में जोड़ा जाता है। इसके बाद संदेश की लंबाई को 512 के गुणक से 64 बिट कम करने के लिए जितने आवश्यक हैं उतने शून्य हैं। शेष बिट्स 64 बिट्स से भरे हुए हैं जो मूल संदेश की लंबाई का प्रतिनिधित्व करते हैं, मॉडुलो 2
64</सुप>.मुख्य MD5 एल्गोरिथ्म 128-बिट अवस्था पर संचालित होता है, जिसे चार 32-बिट शब्दों में विभाजित किया गया है A, B, C, और D. इन्हें कुछ निश्चित स्थिरांकों के लिए प्रारंभ किया जाता है। मुख्य एल्गोरिथ्म तब राज्य को संशोधित करने के लिए बदले में प्रत्येक 512-बिट संदेश ब्लॉक का उपयोग करता है। एक संदेश ब्लॉक के प्रसंस्करण में चार समान चरण होते हैं, जिन्हें राउंड कहा जाता है; प्रत्येक दौर एक गैर-रैखिक फ़ंक्शन के आधार पर 16 समान संचालन से बना होता है F, मॉड्यूलर जोड़ और बायां घुमाव। चित्रा 1 एक दौर में एक ऑपरेशन दिखाता है। चार संभावित कार्य हैं; प्रत्येक दौर में एक अलग प्रयोग किया जाता है:
क्रमशः एक्सओआर, तार्किक संयोजन , तार्किक विच्छेदन और नकार ऑपरेशंस को निरूपित करें।
स्यूडोकोड
इस एल्गोरिथम के अनुसार MD5 हैश की गणना की जाती है।[50] सभी मान Endianness|little-endian में हैं।
<अवधि शैली = रंग: हरा; >// : गणना करते समय सभी चर 32 बिट अहस्ताक्षरित हैं और रैप मोडुलो 2^32 हैं 'वार' इंट एस [64], के [64] 'वार' int मैं <अवधि शैली = रंग: हरा; >//s प्रति-राउंड शिफ्ट राशियों को निर्दिष्ट करता है एस [ 0..15]n:= { 7, 12, 17, 22, 7, 12, 17, 22, 7, 12, 17, 22, 7, 12, 17, 22} s[16..31],:= { 5, 9, 14, 20, 5, 9, 14, 20, 5, 9, 14, 20, 5, 9, 14, 20} s[32..47]9:= { 4, 11, 16, 23, 4, 11, 16, 23, 4, 11, 16, 23, 4, 11, 16, 23} s[48..63]1:= { 6, 10, 15, 21, 6, 10, 15, 21, 6, 10, 15, 21, 6, 10, 15, 21} <अवधि शैली = रंग: हरा; >// पूर्णांकों (रेडियन) की साइन के बाइनरी पूर्णांक भाग का उपयोग स्थिरांक के रूप में करें: 'के लिए' मैं 'से' 0 'से' 63 'करो' के [i]�: = मंजिल (232 × एब्स (पाप (i + 1))) के लिए समाप्त <अवधि शैली = रंग: हरा; >// (या केवल निम्न पूर्व संगणित तालिका का उपयोग करें): के [0..3]�:= {0xd76aa478, 0xe8c7b756, 0x242070db, 0xc1bdceee} के [ 4 .. 7 ] := { 0xf57c0faf, 0x4787c62a, 0xa8304613, 0xfd469501 } के [8..11]: = {0x698098d8, 0x8b44f7af, 0xffff5bb1, 0x895cd7be} के [12..15]: = {0x6b901122, 0xfd987193, 0xa679438e, 0x49b40821} के [16..19]: = {0xf61e2562, 0xc040b340, 0x265e5a51, 0xe9b6c7aa} के [20..23]: = {0xd62f105d, 0x02441453, 0xd8a1e681, 0xe7d3fbc8} के [24..27]: = {0x21e1cde6, 0xc33707d6, 0xf4d50d87, 0x455a14ed} के [28..31]: = {0xa9e3e905, 0xfcefa3f8, 0x676f02d9, 0x8d2a4c8a} के [32..35]: = {0xfffa3942, 0x8771f681, 0x6d9d6122, 0xfde5380c} के [36..39]: = {0xa4beea44, 0x4bdecfa9, 0xf6bb4b60, 0xbebfbc70} के [40..43]: = {0x289b7ec6, 0xeaa127fa, 0xd4ef3085, 0x04881d05} के [44..47]: = {0xd9d4d039, 0xe6db99e5, 0x1fa27cf8, 0xc4ac5665} के [48..51]: = {0xf4292244, 0x432aff97, 0xab9423a7, 0xfc93a039} के [52..55]: = {0x655b59c3, 0x8f0ccc92, 0xffeff47d, 0x85845dd1} के [56..59]: = {0x6fa87e4f, 0xfe2ce6e0, 0xa3014314, 0x4e0811a1} के [60..63]: = {0xf7537e82, 0xbd3af235, 0x2ad7d2bb, 0xeb86d391} <अवधि शैली = रंग: हरा; >// प्रारंभिक चर: var int a0 := 0x67452301 // ए var int b0 := 0xefcdab89 // बी var int c0 := 0x98badcfe // सी var int d0 := 0x10325476 // डी <अवधि शैली = रंग: हरा; >// प्री-प्रोसेसिंग: एक 1 बिट जोड़ना संदेश में 1 बिट जोड़ें < // नोटिस: इनपुट बाइट्स को बिट स्ट्रिंग माना जाता है, // जहां पहला बिट बाइट का सबसे महत्वपूर्ण बिट है।[51]
<अवधि शैली = रंग: हरा; >// प्री-प्रोसेसिंग: शून्य के साथ पैडिंग
'जोड़ें' 0 बिट 'तक' संदेश की लंबाई बिट्स में ≡ 448 (मॉड 512) <अवधि शैली = रंग: हरा; >// सूचना: ऊपर दिए गए दो पैडिंग चरण सरल तरीके से लागू किए गए हैं // कार्यान्वयन में जो केवल पूर्ण बाइट्स के साथ काम करते हैं: 0x80 संलग्न करें // और पैड 0x00 बाइट्स के साथ ताकि बाइट्स में संदेश की लंबाई ≡ 56 (मॉड 64)। बिट्स 'मॉड' में मूल लंबाई 'संलग्न' करें 264 संदेश के लिए <अवधि शैली = रंग: हरा; >// संदेश को क्रमिक 512-बिट विखंडू में संसाधित करें: गद्देदार संदेश के प्रत्येक 512-बिट हिस्से के लिए करें चंक को सोलह 32-बिट शब्दों में तोड़ें M[j], 0 ≤ j ≤ 15 <अवधि शैली = रंग: हरा; > // इस खंड के लिए आरंभिक हैश मान: var int A := a0 var int बी := b0 var int C := c0 var int D := d0 <अवधि शैली = रंग: हरा; > // मेन लूप: मैं के लिए 0 से 63 करते हैं var int एफ, जी अगर 0 ≤ i ≤ 15 तब एफ�:= (बी और सी) या ((बी नहीं) और डी) जी�:= मैं वरना अगर 16 ≤ i ≤ 31 तब एफ: = (डी और बी) या ((डी नहीं) और सी) जी�:= (5×i + 1) मॉड 16 वरना अगर 32 ≤ i ≤ 47 तो एफ:= बी एक्सोर सी एक्सओआर डी जी := (3×i + 5) मॉड 16 वरना अगर 48 ≤ i ≤ 63 तो एफ := सी xor (बी या (डी नहीं)) जी := (7×i) मॉड 16 <अवधि शैली = रंग: हरा; > // a,b,c,d की नीचे दी गई परिभाषाओं से सावधान रहें एफ: = एफ + ए + के [i] + एम [जी] <अवधि शैली = रंग: हरा; > // M[g] 32-बिट ब्लॉक होना चाहिए ए:= डी डी:= सी सी := बी बी := बी + लेफ्टरोटेट (एफ, एस [i]) के लिए समाप्त <अवधि शैली = रंग: हरा; > // इस खंड के हैश को अब तक के परिणाम में जोड़ें: ए0 := ए0 + ए ब0 := ब0 + ब c0�:= c0 + C डी0 := डी0 + डी के लिए समाप्त var char डाइजेस्ट [16] := a0 संलग्न b0 संलग्न c0 संलग्न d0 <अवधि शैली = रंग: हरा; >// (आउटपुट लिट्ल-एंडियन में है)
दिखाए गए मूल आरएफसी 1321 से फॉर्मूलेशन के बजाय, बेहतर दक्षता के लिए निम्नलिखित का उपयोग किया जा सकता है (उपयोगी अगर असेंबली भाषा का उपयोग किया जा रहा है - अन्यथा, कंपाइलर आमतौर पर उपरोक्त कोड को अनुकूलित करेगा। चूंकि प्रत्येक गणना इन फॉर्मूलेशन में दूसरे पर निर्भर है, यह उपरोक्त विधि की तुलना में अक्सर धीमा होता है जहां nand/और समानांतर हो सकता है):
(0 ≤ i ≤ 15): F := D xor (B और (C xor D)) (16 ≤ i ≤ 31): F := C xor (D और (B xor C))
MD5 हैश
128-बिट (16-बाइट) MD5 हैश (जिसे संदेश डाइजेस्ट भी कहा जाता है) को आमतौर पर 32 हेक्साडेसिमल अंकों के अनुक्रम के रूप में दर्शाया जाता है। निम्नलिखित एक 43-बाइट ASCII इनपुट और संबंधित MD5 हैश प्रदर्शित करता है:
MD5 (त्वरित भूरी लोमड़ी आलसी कुत्ते के ऊपर कूदती है) = 9e107d9d372bb6826bd81d3542a419d6
हिमस्खलन प्रभाव के कारण, यहां तक कि संदेश में एक छोटा सा परिवर्तन (अत्यधिक संभावना के साथ) एक अलग हैश में परिणाम देगा। उदाहरण के लिए, वाक्य के अंत में एक अवधि जोड़ना:
MD5 (त्वरित भूरी लोमड़ी आलसी कुत्ते के ऊपर कूद जाती है.) =
e4d909c290d0fb1ca068ffaddf22cbd0
शून्य-लंबाई वाली स्ट्रिंग का हैश है:
एमडी5 ( ) = d41d8cd98f00b204e9800998ecf8427e
MD5 एल्गोरिथम किसी भी संख्या में बिट्स वाले संदेशों के लिए निर्दिष्ट है; यह आठ बिट्स (ऑक्टेट (कंप्यूटिंग), बाइट्स) के गुणकों तक सीमित नहीं है। कुछ MD5 कार्यान्वयन जैसे कि md5sum ऑक्टेट तक सीमित हो सकते हैं, या वे प्रारंभिक रूप से अनिर्धारित लंबाई के संदेशों के लिए स्ट्रीमिंग का समर्थन नहीं कर सकते हैं।
कार्यान्वयन
नीचे क्रिप्टो++ग्राफी लाइब्रेरी की सूची दी गई है जो MD5 का समर्थन करती है:
- बॉटन (प्रोग्रामिंग लाइब्रेरी)
- उछालभरी कैसल (क्रिप्टोग्राफी)
- criptlib
- क्रिप्टो ++
- लिबगक्रिप्ट
- बिछुआ (क्रिप्टोग्राफिक लाइब्रेरी)
- ओपनएसएसएल
- wolfSSL
यह भी देखें
- क्रिप्टोग्राफ़िक हैश फ़ंक्शंस की तुलना
- हैश फ़ंक्शन सुरक्षा सारांश
- हैश क्लैश
- क्रिप्ट (C)#MD5-आधारित योजना
- एमडी5डीप
- md5sum
- एमडी 6
- एसएचए-1
- एसएचए-2
संदर्भ
- ↑ Rivest, R. (April 1992). "Step 4. Process Message in 16-Word Blocks". The MD5 Message-Digest Algorithm. IETF. p. 5. sec. 3.4. doi:10.17487/RFC1321. RFC 1321. Retrieved 10 October 2018.
- ↑ Xie Tao; Fanbao Liu; Dengguo Feng (2013). "Fast Collision Attack on MD5" (PDF). Cryptology ePrint Archive.
- ↑ Ciampa, Mark (2009). CompTIA Security+ 2008 in depth. Australia; United States: Course Technology/Cengage Learning. p. 290. ISBN 978-1-59863-913-1.
- ↑ Kleppmann, Martin (2 April 2017). Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems (1 ed.). O'Reilly Media. p. 203. ISBN 978-1449373320.
- ↑ 5.0 5.1 J. Black, M. Cochran, T. Highland: A Study of the MD5 Attacks: Insights and Improvements Archived 1 January 2015 at the Wayback Machine, 3 March 2006. Retrieved 27 July 2008.
- ↑ Hawkes, Philip; Paddon, Michael; Rose, Gregory G. (13 October 2004). "Musings on the Wang et al. MD5 Collision". Cryptology ePrint Archive. Archived from the original on 5 November 2018. Retrieved 10 October 2018.
- ↑ Bishop Fox (26 September 2013). "Fast MD5 and MD4 Collision Generators". BishopFox. Archived from the original on 26 April 2017. Retrieved 10 February 2014.
- ↑ Lenstra, Arjen; Wang, Xiaoyun; Weger, Benne de (1 March 2005). "Colliding X.509 Certificates". Cryptology ePrint Archive. Retrieved 10 October 2018.
- ↑ Klíma, Vlastimil (5 March 2005). "Finding MD5 Collisions – a Toy For a Notebook". Cryptology ePrint Archive. Retrieved 10 October 2018.
- ↑ Vlastimil Klima: Tunnels in Hash Functions: MD5 Collisions Within a Minute, Cryptology ePrint Archive Report 2006/105, 18 March 2006, revised 17 April 2006. Retrieved 27 July 2008.
- ↑ "Code Cracked! Cyber Command Logo Mystery Solved". USCYBERCOM. Wired News. 8 July 2010. Retrieved 29 July 2011.
- ↑ Tao Xie; Dengguo Feng (2010). "Construct MD5 Collisions Using Just A Single Block Of Message" (PDF). Retrieved 28 July 2011.
- ↑ "Marc Stevens – Research – Single-block collision attack on MD5". Marc-stevens.nl. 2012. Retrieved 10 April 2014.
- ↑ Turner, Sean (March 2011). "RFC 6151 – Updated Security Considerations for the MD5 Message-Digest and the HMAC-MD5 Algorithms". Internet Engineering Task Force. doi:10.17487/RFC6151. Retrieved 11 November 2013.
- ↑ Rivest, Ronald L. (April 1992). "RFC 1321 – The MD5 Message-Digest Algorithm". Internet Engineering Task Force. doi:10.17487/RFC1321. Retrieved 5 October 2013.
- ↑ Krawczyk, Hugo; Bellare, Mihir; Canetti, Ran (February 1997). "RFC 2104 – HMAC: Keyed-Hashing for Message Authentication". Internet Engineering Task Force. doi:10.17487/RFC2104. Retrieved 5 October 2013.
- ↑ Chad R, Dougherty (31 December 2008). "Vulnerability Note VU#836068 MD5 vulnerable to collision attacks". Vulnerability notes database. CERT Carnegie Mellon University Software Engineering Institute. Retrieved 3 February 2017.
- ↑ 18.0 18.1 Cimpanu, Catalin. "A quarter of major CMSs use outdated MD5 as the default password hashing scheme". ZDNet (in English). Retrieved 17 June 2019.
- ↑ M.M.J. Stevens (June 2007). On Collisions for MD5 (PDF) (Master's thesis).
- ↑ Marc Stevens; Arjen Lenstra; Benne de Weger (16 June 2009). "Chosen-prefix Collisions for MD5 and Applications" (PDF). École Polytechnique Fédérale de Lausanne. Archived from the original (PDF) on 9 November 2011. Retrieved 31 March 2010.
- ↑ "New GPU MD5 cracker cracks more than 200 million hashes per second".
- ↑ Magnus Daum, Stefan Lucks. "हैश टकराव (द पॉइज़न मैसेज अटैक)". Eurocrypt 2005 rump session. Archived from the original on 27 March 2010.
- ↑ Max Gebhardt; Georg Illies; Werner Schindler (31 October 2005). "विशेष फ़ाइल स्वरूपों के लिए एकल हैश टक्करों के व्यावहारिक मूल्य पर एक नोट" (PDF). National Institute of Standards and Technology. Archived from the original (PDF) on 17 September 2008.
- ↑ 24.0 24.1 24.2 24.3 24.4 Sotirov, Alexander; Marc Stevens; Jacob Appelbaum; Arjen Lenstra; David Molnar; Dag Arne Osvik; Benne de Weger (30 December 2008). "MD5 considered harmful today". Retrieved 30 December 2008. Announced at the 25th Chaos Communication Congress.
- ↑ "Poisonous MD5 – Wolves Among the Sheep | Silent Signal Techblog". Retrieved 10 June 2015.
- ↑ Hans Dobbertin (Summer 1996). "The Status of MD5 After a Recent Attack". CryptoBytes. Retrieved 22 October 2013.
- ↑ Xiaoyun Wang; Hongbo Yu (2005). "How to Break MD5 and Other Hash Functions" (PDF). Advances in Cryptology – Lecture Notes in Computer Science. pp. 19–35. Archived from the original (PDF) on 21 May 2009. Retrieved 21 December 2009.
- ↑ 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.
- ↑ Marc Stevens, Arjen Lenstra, Benne de Weger: Vulnerability of software integrity and code signing applications to chosen-prefix collisions for MD5, 30 November 2007. Retrieved 27 July 2008.
- ↑ Stray, Jonathan (30 December 2008). "Web browser flaw could put e-commerce security at risk". CNET.com. Archived from the original on 28 August 2013. Retrieved 24 February 2009.
- ↑ "CERT Vulnerability Note VU#836068". Kb.cert.org. Retrieved 9 August 2010.
- ↑ "NIST.gov — Computer Security Division — Computer Security Resource Center". Csrc.nist.gov. Archived from the original on 9 June 2011. Retrieved 9 August 2010.
- ↑ 33.0 33.1 "ज्वाला मैलवेयर टक्कर हमले की व्याख्या की". Archived from the original on 8 June 2012. Retrieved 7 June 2012.
- ↑ Dobbertin, Hans (Summer 1996). "The Status of MD5 After a Recent Attack" (PDF). RSA Laboratories CryptoBytes. 2 (2): 1. Retrieved 10 August 2010.
The presented attack does not yet threaten practical applications of MD5, but it comes rather close. .... [sic] in the future MD5 should no longer be implemented... [sic] where a collision-resistant hash function is required.
[permanent dead link] - ↑ "Schneier on Security: More MD5 Collisions". Schneier.com. Retrieved 9 August 2010.
- ↑ "Colliding X.509 Certificates". Win.tue.nl. Retrieved 9 August 2010.
- ↑ "[Python-Dev] hashlib — faster md5/sha, adds sha256/512 support". Mail.python.org. Retrieved 9 August 2010.
- ↑ "एक वेब कंकाल कुंजी बनाने के लिए शोधकर्ता प्लेस्टेशन क्लस्टर का उपयोग करते हैं". Wired. 31 December 2008. Retrieved 31 December 2008.
- ↑ Callan, Tim (31 December 2008). "This morning's MD5 attack — resolved". Verisign. Archived from the original on 16 January 2009. Retrieved 31 December 2008.
- ↑ Bruce Schneier (31 December 2008). "फोर्जिंग एसएसएल प्रमाणपत्र". Schneier on Security. Retrieved 10 April 2014.
- ↑ Eric Rescorla (17 August 2004). "A real MD5 collision". Educated Guesswork (blog). Archived from the original on 15 August 2014. Retrieved 13 April 2015.
- ↑ Anton A. Kuznetsov. "An algorithm for MD5 single-block collision attack using high performance computing cluster" (PDF). IACR. Retrieved 3 November 2014.
- ↑ Yu Sasaki; Kazumaro Aoki (16 April 2009). "Finding Preimages in Full MD5 Faster Than Exhaustive Search". Advances in Cryptology - EUROCRYPT 2009. Lecture Notes in Computer Science. Vol. 5479. Springer Berlin Heidelberg. pp. 134–152. doi:10.1007/978-3-642-01001-9_8. ISBN 978-3-642-01000-2.
- ↑ Ming Mao and Shaohui Chen and Jin Xu (2009). "Construction of the Initial Structure for Preimage Attack of MD5". 2009 International Conference on Computational Intelligence and Security. pp. 442–445. doi:10.1109/CIS.2009.214. ISBN 978-0-7695-3931-7. S2CID 16512325.
{{cite book}}
:|journal=
ignored (help) - ↑ "फ़ाइल चेकसम इंटीग्रिटी वेरिफायर यूटिलिटी की उपलब्धता और विवरण". Microsoft Support. 17 June 2013. Retrieved 10 April 2014.
- ↑ "How to compute the MD5 or SHA-1 cryptographic hash values for a file". Microsoft Support. 23 January 2007. Retrieved 10 April 2014.
- ↑ "FreeBSD Handbook, Security – DES, Blowfish, MD5, and Crypt". Retrieved 19 October 2014.
- ↑ "Synopsis – man pages section 4: File Formats". Docs.oracle.com. 1 January 2013. Retrieved 10 April 2014.
- ↑ NIST SP 800-132 Section 5.1
- ↑ "Reference Source".
- ↑ RFC 1321, section 2, "Terminology and Notation", Page 2.
अग्रिम पठन
- Berson, Thomas A. (1992). "Differential Cryptanalysis Mod 232 with Applications to MD5". EUROCRYPT. pp. 71–80. ISBN 3-540-56413-6.
- Bert den Boer; Antoon Bosselaers (1993). "Collisions for the Compression Function of MD5". Advances in Cryptology — EUROCRYPT '93. EUROCRYPT. Berlin; London: Springer. pp. 293–304. ISBN 978-3-540-57600-6.
- Hans Dobbertin, Cryptanalysis of MD5 compress. Announcement on Internet, May 1996. "CiteSeerX". Citeseer.ist.psu.edu. Retrieved 9 August 2010.
- Dobbertin, Hans (1996). "The Status of MD5 After a Recent Attack". CryptoBytes. 2 (2).
- Xiaoyun Wang; Hongbo Yu (2005). "How to Break MD5 and Other Hash Functions" (PDF). EUROCRYPT. ISBN 3-540-25910-4. Archived from the original (PDF) on 21 May 2009. Retrieved 6 March 2008.