पासवर्ड स्ट्रेंथ कैलकुलेटर
नतीजा
एंट्रॉपी
- अक्षरों का समूह
- 62
- प्रति अक्षर एंट्रॉपी
- 5.95 bit
- संभावित संयोजन (10 की घात में)
- 28
पासवर्ड स्ट्रेंथ कोई अंदाज़ा नहीं, गणित है — और उसका असली पैमाना एंट्रॉपी है, यानी पासवर्ड में कितने बिट की अनिश्चितता बची है। यह पेज अंदाज़ा लगाने के बजाय वही गणित करता है। पासवर्ड की लंबाई और अपने चुने हुए अक्षर डालिए, और आपको मिलेगा उनसे बनने वाला अक्षरों का समूह, बिट में एंट्रॉपी, और यह कि एक आधुनिक GPU को हर संयोजन आज़माने में कितना समय लगेगा — एक तेज़ हैश पर और ठीक से जमाए गए धीमे हैश पर। आख़िरी दोनों संख्याओं के बीच का फ़ासला इस पेज की सबसे काम की चीज़ है: वही पासवर्ड जो लीक हुए MD5 डेटाबेस के सामने तीन साल में गिर जाता है, bcrypt के सामने लाखों साल टिकता है। यानी पासवर्ड तोड़ने का समय तय करने वाली चीज़ सिर्फ़ लंबाई नहीं, यह भी है कि साइट उसे किस हैश में रखती है। लंबाई दूसरा आधा हिस्सा है। हर अतिरिक्त अक्षर काम को अक्षरों के समूह के आकार से गुणा कर देता है, जबकि तय लंबाई पर एक पूरा नया अक्षर-वर्ग जोड़ना काम को सिर्फ़ एक बार गुणा करता है — इसीलिए 16 अक्षर निकालना 8 अक्षरों में चारों वर्ग ठूँसने से ज़्यादा असर करता है। ब्रूट फ़ोर्स यानी हर संयोजन एक-एक करके आज़माना, इस पेज का पहला हमला है और वही वह हमला है जिसे यह गिन सकता है; बाक़ी हमले अगले हिस्सों में हैं।
एंट्रॉपी बैंड के हिसाब से पासवर्ड तोड़ने का समय
| बैंड | एंट्रॉपी | संभावित संयोजन (10 की घात में) | 10^10/सेकंड पर सेकंड | 10^4/सेकंड पर सेकंड |
|---|---|---|---|---|
| कमज़ोर | 28 – 35 बिट | 8 | -2 | 4 |
| मध्यम | 36 – 59 बिट | 10 | 0 | 6 |
| मज़बूत | 60 – 127 बिट | 18 | 8 | 14 |
| बहुत मज़बूत | 128 बिट और उससे ऊपर | 38 | 28 | 34 |
आख़िरी दो कॉलमों को 10 की घात में पढ़िए: -2 का मतलब 10^-2 सेकंड, और 3 का मतलब एक हज़ार सेकंड। दाहिनी ओर वाला कॉलम वही हमलावर है, बस ठीक से जमाए गए धीमे हैश के सामने, इसलिए दोनों में दस लाख गुना का फ़र्क़ है — और वही फ़र्क़ इस तालिका की सबसे काम की बात है। एंट्रॉपी वाले कॉलम में हर बैंड की निचली सीमा लिखी है, इसीलिए यह तालिका और नतीजे का ताक़त-बैज हमेशा एक ही बात कहते हैं। संयोजन 10 की घात तक नीचे की ओर पूरे किए गए हैं ताकि वे कभी ज़्यादा न बताएँ। सबसे नीचे का बैंड, बहुत कमज़ोर, इस तालिका में एक पंक्ति नहीं है: उसकी निचली सीमा 0 बिट है, और शून्य एंट्रॉपी के लिए कोई इंतज़ार का समय लिखना ही नहीं बनता — पहली पंक्ति से नीचे की हर चीज़ तेज़ हैश के सामने सेकंड के एक हिस्से में निपट जाती है।
फ़ॉर्मूला
एंट्रॉपी (बिट) = पासवर्ड की लंबाई × log₂(अक्षरों का समूह), और संभावित संयोजन = 2^एंट्रॉपी
- पासवर्ड की लंबाई
- पासवर्ड में कितने अक्षर हैं
- अक्षरों का समूह
- कुल कितने अलग अक्षर उपलब्ध हैं: छोटे अक्षर (a–z) 26, बड़े अक्षर (A–Z) 26, अंक (0–9) 10 और चिह्न ( ! # ? % … ) 32 — चारों चालू करने पर 94, क्योंकि इन चिह्नों में स्पेस शामिल नहीं है
- log₂
- आधार-2 का लघुगणक, ताकि नतीजा बिट में गिना जाए
इसका इस्तेमाल तब कीजिए जब आप कोई पासवर्ड नीति तय करने वाले हों — दो नीतियों की तुलना इससे तेज़ किसी चीज़ से नहीं होती — या जब जाँचना हो कि आपका मौजूदा पासवर्ड रखने लायक़ है या नहीं। यह हिसाब उस पासवर्ड के लिए बिल्कुल सही है जो किसी ज्ञात अक्षर-वर्ग से बेतरतीब ढंग से बना हो, और उस पासवर्ड के लिए सिर्फ़ ऊपरी सीमा है जिसे किसी इंसान ने ख़ुद सोचा हो — लोग पैटर्न चुनते हैं, इसलिए किसी के बनाए 12 अक्षरों में 12 बेतरतीब अक्षरों से कहीं कम एंट्रॉपी होती है। ब्रूट फ़ोर्स अकेला हमला भी नहीं है: कई साइटों पर दोहराया गया पासवर्ड उनमें से जिसकी भी सेंध लगे, उसी से चला जाता है, और वहाँ लंबाई से कुछ नहीं बचता। पासवर्ड तोड़ने का समय पढ़ते समय यह भी देखिए कि साइट आपका पासवर्ड कैसे रखती है — यही वह संख्या है जिस पर आपका असर नहीं और जिसका असर सबसे ज़्यादा है।
हल किए हुए उदाहरण
16 अक्षर, अक्षर और अंक
- अक्षरों का समूह: 26 + 26 + 10 = 62 अक्षर
- प्रति अक्षर एंट्रॉपी: log₂(62) = 5.95 बिट
- कुल एंट्रॉपी: 16 × 5.95 = 95.3 बिट
- संभावित संयोजन: 10^28 — यह पेज सारे 29 अंकों के बजाय 10 की घात बताता है
95.3 बिट 60 बिट वाले बैंड को बड़े अंतर से पार करती है और ठीक 128 बिट वाले सबसे ऊपरी बैंड के नीचे, यानी मज़बूत बैंड में बैठती है। चिह्न भी चालू कर दीजिए तो अक्षरों का समूह 94 और एंट्रॉपी 104.9 बिट हो जाती है — 9.6 बिट का फ़ायदा, जो करीब 1.6 अक्षर जोड़ने के बराबर है। चिह्न चालू करने के लिए अलग से कोई कीमत नहीं चुकानी पड़ती, मगर याद रखिए कि बहुत सी साइटें अब भी चिह्न वाले पासवर्ड नामंज़ूर कर देती हैं, और इसीलिए यहाँ वे डिफ़ॉल्ट में बंद हैं।
8 अक्षर, सिर्फ़ छोटे अक्षर
- अक्षरों का समूह: 26 अक्षर
- प्रति अक्षर एंट्रॉपी: log₂(26) = 4.70 बिट
- कुल एंट्रॉपी: 8 × 4.70 = 37.6 बिट
- संभावित संयोजन: 2^37.6 ≈ 2.1 × 10^11, यानी 10^11
37.6 बिट मध्यम बैंड में पड़ती है — एक तेज़ हैश के सामने एक ही कार्ड पर करीब सात सेकंड का काम। लंबाई दुगुनी करके 16 अक्षर कर दीजिए तो 75.2 बिट हो जाती है, जबकि लंबाई 8 ही रखकर चारों अक्षर-वर्ग चालू करने पर सिर्फ़ 52.4 बिट तक पहुँचती है। यानी हर अतिरिक्त अक्षर जितना देता है, उतना कोई एक वर्ग चालू करना नहीं देता — और यही वजह है कि लंबी पासफ़्रेज़ बेहन-सोचे-समझे चिह्नों के ढेर से बेहतर निकलती है, बशर्ते वह वाकई बेतरतीब हो।
सीमाएँ
एंट्रॉपी का आँकड़ा यह मानकर चलता है कि पासवर्ड आपके चुने हुए अक्षरों में से पूरी तरह बेतरतीब ढंग से बना है। इंसान जो पासवर्ड ख़ुद बनाता है उसमें इससे कम एंट्रॉपी होती है, अक्सर बहुत कम, क्योंकि हम शब्दों, तारीख़ों और कीबोर्ड के पैटर्न की तरफ़ पहले जाते हैं — और तोड़ने वाला औज़ार भी सबसे पहले वही आज़माता है। इसलिए यह पेज पासवर्ड नहीं, नीति नापता है। पासवर्ड तोड़ने का समय एक आधुनिक GPU से लिया गया कोटि का अंदाज़ा है, किसी एक मशीन का माप नहीं: जिसके पास क्लस्टर है, या बस नया कार्ड है, वह इन संख्याओं को बड़े गुणक से हरा देता है, और चुराया गया हैश डेटाबेस ऑफ़लाइन जितनी देर चाहे हमला झेल सकता है। यहाँ यह भी दर्ज नहीं है कि पासवर्ड कहीं और दोहराया गया है, फ़िशिंग में गया है, कीलॉगर में फँसा है या सपोर्ट डेस्क से रीसेट हुआ है — पासवर्ड असल में इन्हीं रास्तों से गिरते हैं, और एंट्रॉपी का इनमें से किसी पर कोई असर नहीं। और आख़िर में, यह पेज आपके लिए पासवर्ड बनाएगा नहीं, और वजह सीधी है: एक भरोसेमंद जनरेटर को क्रिप्टोग्राफ़िक बेतरतीब स्रोत चाहिए, और शुद्ध गणना वह नहीं दे सकती — वही स्रोत है जो जनरेटर को कैलकुलेटर से अलग करता है।
अक्सर पूछे जाने वाले सवाल
- पासवर्ड की एंट्रॉपी निकाली कैसे जाती है?
- एंट्रॉपी = पासवर्ड की लंबाई × अक्षरों के समूह का आधार-2 लघुगणक। छोटे अक्षर, बड़े अक्षर और अंक चुनने पर अक्षरों का समूह 62 का बनता है, log₂(62) = 5.95 बिट प्रति अक्षर, और इसलिए उस समूह से बने 16 अक्षर के पासवर्ड में 95.3 बिट एंट्रॉपी होती है। संभावित संयोजन 2 की उतनी ही घात होते हैं, और यही वजह है कि एंट्रॉपी काम का पैमाना है: पासवर्ड लंबा होने पर यह जुड़ती जाती है, जबकि संयोजन गुणा होते जाते हैं।
- क्या 60 बिट एंट्रॉपी काफ़ी है, और पासवर्ड तोड़ने का समय कैसे पढ़ूँ?
- यह पूरी तरह इस पर है कि साइट आपका पासवर्ड कैसे रखती है। 10^10 अनुमान प्रति सेकंड की दर पर — यानी एक आधुनिक कार्ड बिना स्ट्रेचिंग वाले तेज़ हैश के सामने — 60 बिट करीब तीन साल का लगातार काम है। bcrypt cost 12 पर वही कार्ड करीब 10^4 अनुमान प्रति सेकंड ही कर पाता है और वही पासवर्ड लाखों साल में भी नहीं टूटता। यानी 60 बिट ऐसी साइट के सामने काफ़ी है जो अपना काम ठीक से करती है, और लापरवाह साइट के सामने सीमा पर है; 80 बिट दोनों के सामने काफ़ी है। इसीलिए तालिका में दो रफ़्तार-कॉलम हैं — उनका छह कोटि का अंतर ही असली सबक़ है।
- चिह्न और छोटे-बड़े अक्षरों का मेल रखूँ, या पासवर्ड बस लंबा कर दूँ?
- लंबा करना आम तौर पर बेहतर सौदा है, और याद रखने में हमेशा आसान। 8 अक्षर के सिर्फ़ छोटे-अक्षर वाले पासवर्ड से 16 अक्षर पर जाना 37.6 बिट का फ़ायदा देता है; 8 अक्षर ही रखकर चारों अक्षर-वर्ग चालू करना करीब 15 बिट का। समूह को चौड़ा करने पर वह सिर्फ़ एक बार गुणा होता है, जबकि हर जुड़ा अक्षर फिर से गुणा करता है। चिह्न तब इस्तेमाल कीजिए जब कोई साइट उन्हें माँगे, इसलिए नहीं कि वे ताक़त जोड़ने का कारगर तरीक़ा हैं।
- यह पेज मेरे लिए पासवर्ड क्यों नहीं बनाता?
- पासवर्ड उतना ही अनुमान-विरोधी होता है जितना उसके पीछे का बेतरतीब स्रोत, और जो पेज स्क्रीन पर एक गिना हुआ नंबर दिखाता है वह उसी समय क्रिप्टोग्राफ़िक सुरक्षित स्रोत से नहीं भर सकता — वही स्रोत है जो जनरेटर को कैलकुलेटर से अलग करता है। अपने पासवर्ड मैनेजर का जनरेटर या अपने ऑपरेटिंग सिस्टम का इस्तेमाल कीजिए, दोनों में वह स्रोत मौजूद है, और फिर इस पेज पर आकर जाँचिए कि वहाँ आपने जो लंबाई और अक्षर चुने थे, वे रखने लायक़ हैं या नहीं।
- क्या लंबा पासवर्ड हमेशा मज़बूत ही होता है?
- तभी, जब वह बेतरतीब ढंग से बना हो। गणित लंबाई को ही इनाम देता है, और इसीलिए चार शब्दों की पासफ़्रेज़ चिह्नों की छोटी-सी गड्डी को हरा सकती है — मगर किसी गाने की पंक्ति, किसी जन्मदिन और किसी नाम से बना 20 अक्षर का पासवर्ड शब्दकोश से टूट जाता है, और उसकी असली ताक़त इस पेज के नापे 20 बेतरतीब अक्षरों जैसी कतई नहीं होती। यह पेज आपको उस नीति की ऊपरी सीमा बताता है; इंसान के सोचे पासवर्ड उससे कहीं नीचे बैठते हैं।
संदर्भ
- NIST Special Publication 800-63B: Digital Identity Guidelines — Authentication and Lifecycle Management — National Institute of Standards and Technology
- NIST Special Publication 800-57 Part 1 Revision 5: Recommendation for Key Management — National Institute of Standards and Technology
- Password Storage Cheat Sheet — OWASP Foundation