Cryptology Academy · पाठ

बचाव उपाय: masking, blinding और constant-time code

masking, point blinding और constant-time comparisons लागू करें।

पाठ 4, कुल 4 में से12 चरण

बचाव उपाय: masking, blinding और constant-time code, CoddyKit पर Cryptology Academy का एक निःशुल्क पाठ है। यह 4 में से 4वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह Cryptology Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। Cryptology Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

प्रतिरोधी उपायों के तीन प्रकार

साइड-चैनल प्रतिरोधी उपाय तीन प्रकार के होते हैं: यादृच्छिक आवरण (मध्यवर्ती मानों को यादृच्छिक बनाना), अंधीकरण (प्रवेश और परिणाम मानों को यादृच्छिक बनाना), और स्थिर-समय कोड (डेटा-निर्भर समय-अंतर समाप्त करना)।

बूलियन आवरण

हर मध्यवर्ती मान के साथ एक नया यादृच्छिक आवरण r का XOR कीजिए। आवरित मान x⊕r को संसाधित कीजिए और अंत में आवरण हटाइए। अब शक्ति-ट्रेस x पर नहीं, बल्कि x⊕r पर निर्भर करता है।

गुणन के लिए अंकगणितीय आवरण

गुणनात्मक संक्रियाओं के लिए गुणनात्मक आवरणों का उपयोग कीजिए: x को x·r mod p से बदलिए। आवरण योजना सिफर की प्रत्येक बीजीय संक्रिया के अनुकूल होनी चाहिए।

RSA अंधीकरण

कूट-पाठ c को डिक्रिप्ट करने से पहले एक यादृच्छिक r चुनिए और c' = c·r^e mod n की गणना कीजिए। c' को डिक्रिप्ट करने पर m·r mod n प्राप्त होगा; फिर r से भाग देकर उसे हटाइए। वास्तविक घातांककरण में असली c कभी दिखाई नहीं देता।

ECC बिंदु अंधीकरण

प्रक्षेपी निर्देशांकों को यादृच्छिक बनाइए: एफाइन बिंदु (x,y) के बजाय यादृच्छिक λ के लिए (λx : λy : λ) का उपयोग कीजिए। अदिश गुणन यादृच्छिक निर्देशांकों पर काम करता है, जिससे हर बार शक्ति-ट्रेस बदल जाता है।

स्थिर-समय प्रोग्रामिंग के नियम

1. गुप्त मान पर निर्भर शाखाएँ न हों। 2. गुप्त मान पर निर्भर स्मृति सूचकांक न हों। 3. कार्य को समय से पहले समाप्त न करें। 4. जहाँ उपलब्ध हों, प्लेटफ़ॉर्म में निर्मित स्थिर-समय संक्रियाओं का उपयोग करें (जैसे, crypto_verify_32)।

पाइथन में स्थिर-समय तुलना

समय-संवेदी मार्गों में कच्चे बाइट पर कभी भी == या hmac.compare_digest का उपयोग न करें। इसका उपयोग कीजिए:

import hmac

def constant_time_compare(a: bytes, b: bytes) -> bool:
    """Uses HMAC double-HMAC trick for constant-time equality."""
    # hmac.compare_digest is constant-time in CPython
    return hmac.compare_digest(a, b)

# Example
secret = b"expected_mac_value"
received = b"attacker_provided__"
print(constant_time_compare(secret, received))  # False, but no timing leak

कंपाइलर और वास्तुकला की समस्याएँ

कंपाइलर स्थिर-समय कोड को अनुकूलित करके हटा सकते हैं। वोलाटाइल स्टोर, स्मृति अवरोध या असेंबली में निर्मित संक्रियाओं का उपयोग कीजिए। C कंपाइलरों में -fno-delete-null-pointer-checks उपलब्ध है, लेकिन स्थिर-समय की कोई सार्वभौमिक गारंटी नहीं है।

क्रम-परिवर्तन और नकली संक्रियाएँ

S-बॉक्स लुकअप का क्रम यादृच्छिक रूप से बदल दीजिए, या ऐसी नकली संक्रियाएँ जोड़िए जो परिणाम को प्रभावित किए बिना शक्ति का उपभोग करें। इससे DPA के लिए चुनौती बढ़ती है, लेकिन रिसाव समाप्त नहीं होता।

हार्डवेयर प्रतिरोधी उपाय

समर्पित क्रिप्टो त्वरक (ARM TrustZone, STM32 हार्डवेयर AES) सिलिकॉन में आवरण लागू करते हैं। ASIC कार्यान्वयन भौतिक प्रोबिंग का पता लगाने के लिए धातु परिरक्षण और सक्रिय जाल जोड़ते हैं।

ज्ञान जाँच

घातांककरण से पहले कूट-पाठ को यादृच्छिक बनाकर RSA समय-आधारित हमलों को कौन-सा प्रतिरोधी उपाय रोकता है?

पाठ का पुनरावलोकन

आवरण मध्यवर्ती मानों को यादृच्छिक बनाता है; अंधीकरण RSA/ECC के प्रवेश मानों को यादृच्छिक बनाता है; स्थिर-समय कोड समय-निर्भर शाखाओं को समाप्त करता है। रक्षा की गहराई के लिए इन तीनों को मिलाया जाता है। सबसे मजबूत गारंटी के लिए हार्डवेयर त्वरक इन्हें सिलिकॉन में लागू करते हैं।

शुरुआत निःशुल्क

एआई शिक्षक के साथ Cryptology Academy सीखें — निःशुल्क

अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।

पाठ्यक्रम
67
पाठ
261

अक्सर पूछे जाने वाले प्रश्न

क्या “बचाव उपाय: masking, blinding और constant-time code” पाठ निःशुल्क है?

हाँ—“बचाव उपाय: masking, blinding और constant-time code” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और Cryptology Academy पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। Cryptology Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

“बचाव उपाय: masking, blinding और constant-time code” में मैं क्या सीखूँगा?

masking, point blinding और constant-time comparisons लागू करें। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ Cryptology Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।

क्या Cryptology Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?

पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर Cryptology Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 4वाँ पाठ है।

“बचाव उपाय: masking, blinding और constant-time code” पाठ पूरा करने में कितना समय लगता है?

CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।

क्या मैं इस Cryptology Academy पाठ में कोड लिख और चला सकता हूँ?

हाँ। हर Cryptology Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।

इस पाठ्यक्रम के सभी पाठ

  1. Timing attacks: execution time से कुंजियाँ निकालना
  2. Power analysis: SPA और DPA
  3. Electromagnetic और acoustic side channels
  4. बचाव उपाय: masking, blinding और constant-time code
← Cryptology Academy पर वापस जाएँ