एक औपचारिक विश्लेषण 2011 में फिल Rogaway द्वारा किया गया है, यहाँ । खंड 1.6 एक सारांश देता है जिसे मैं यहां प्रस्तुत करता हूं, अपने खुद के जोर को जोड़कर (यदि आप अधीर हैं, तो उसकी सिफारिश सीटीआर मोड का उपयोग करती है, लेकिन मेरा सुझाव है कि आप संदेश अखंडता बनाम नीचे एन्क्रिप्शन के बारे में मेरे पैराग्राफ पढ़ें)।
ध्यान दें कि इनमें से अधिकांश को IV के यादृच्छिक होने की आवश्यकता होती है, जिसका अर्थ गैर-अनुमानित है और इसलिए क्रिप्टोग्राफ़िक सुरक्षा के साथ उत्पन्न होना चाहिए। हालांकि, कुछ को केवल "नॉन" की आवश्यकता होती है, जो उस संपत्ति की मांग नहीं करता है, बल्कि इसके लिए केवल यह आवश्यक है कि इसका दोबारा उपयोग न किया जाए। इसलिए ऐसे डिजाइन जो किसी नॉन पर निर्भर होते हैं, उन डिज़ाइनों की तुलना में कम त्रुटि वाले होते हैं (जो मुझे विश्वास नहीं करते हैं, मैंने कई मामले देखे हैं जहां CBC को उचित IV चयन के साथ लागू नहीं किया गया है)। इसलिए आप देखेंगे कि मैंने बोल्ड को जोड़ा है जब रॉगवे "आईवी एक गैर होने पर गोपनीयता हासिल नहीं करता है" जैसा कुछ कहता है, इसका मतलब है कि यदि आप अपने IV को क्रिप्टोग्राफिक रूप से सुरक्षित (अप्रत्याशित) चुनते हैं, तो कोई समस्या नहीं है। लेकिन अगर आप नहीं करते हैं, तो आप अच्छे सुरक्षा गुणों को खो रहे हैं। इनमें से किसी भी मोड के लिए कभी भी IV का उपयोग न करें ।
साथ ही, संदेश की अखंडता और एन्क्रिप्शन के बीच अंतर को समझना महत्वपूर्ण है। एन्क्रिप्शन डेटा छुपाता है, लेकिन एक हमलावर एन्क्रिप्टेड डेटा को संशोधित करने में सक्षम हो सकता है, और यदि आप संदेश अखंडता की जांच नहीं करते हैं, तो परिणाम संभवतः आपके सॉफ़्टवेयर द्वारा स्वीकार किए जा सकते हैं। हालांकि डेवलपर "लेकिन डिक्रिप्ट किए जाने के बाद संशोधित डेटा कचरा के रूप में वापस आ जाएगा" कहेगा, एक अच्छे सुरक्षा इंजीनियर को यह संभावना मिल जाएगी कि कचरा सॉफ्टवेयर में प्रतिकूल व्यवहार का कारण बनता है, और फिर वह उस विश्लेषण को एक वास्तविक हमले में बदल देगा। मैंने ऐसे कई मामले देखे हैं जहां एन्क्रिप्शन का उपयोग किया गया था लेकिन संदेश की अखंडता एन्क्रिप्शन की तुलना में वास्तव में अधिक आवश्यक थी। समझें कि आपको क्या चाहिए।
मुझे यह कहना चाहिए कि यद्यपि जीसीएम में एन्क्रिप्शन और संदेश अखंडता दोनों हैं, यह एक बहुत ही नाजुक डिजाइन है: यदि आप एक आईवी का फिर से उपयोग करते हैं, तो आप खराब हो जाते हैं - हमलावर आपकी कुंजी को पुनर्प्राप्त कर सकता है। अन्य डिज़ाइन कम नाजुक हैं, इसलिए मैं व्यक्तिगत रूप से खराब एन्क्रिप्शन कोड की मात्रा के आधार पर GCM की सिफारिश करने से डरता हूं जो मैंने व्यवहार में देखा है।
यदि आपको संदेश, अखंडता और एन्क्रिप्शन दोनों की आवश्यकता है, तो आप दो एल्गोरिदम को जोड़ सकते हैं: आमतौर पर हम सीबीसी को एचएमएसी के साथ देखते हैं, लेकिन खुद को सीबीसी से जोड़ने का कोई कारण नहीं है। जानना जरूरी हैपहले एन्क्रिप्टेड है, फिर एन्क्रिप्टेड सामग्री को मैक , आसपास के अन्य तरीके से नहीं। साथ ही, IV को मैक गणना का हिस्सा होना चाहिए।
मुझे आईपी मुद्दों की जानकारी नहीं है।
अब प्रोफेसर रोगवे से अच्छे सामान के लिए:
ब्लॉक सिफर मोड, एन्क्रिप्शन लेकिन संदेश अखंडता नहीं
ECB : एक अवरोधक, मोड उन संदेशों को अलग करता है जो प्रत्येक n-bit के टुकड़े को अलग-अलग करके कई n बिट्स होते हैं। सुरक्षा गुण कमजोर हैं , विधि दोनों ब्लॉक पदों और समय पर ब्लॉक की समानता लीक कर रही है। काफी विरासत मूल्य, और अन्य योजनाओं के लिए बिल्डिंग ब्लॉक के रूप में मूल्य की, लेकिन मोड अपने आप में किसी भी आम तौर पर वांछनीय सुरक्षा लक्ष्य को प्राप्त नहीं करता है और इसका उपयोग काफी सावधानी से किया जाना चाहिए; ईसीबी को "सामान्य-उद्देश्य" गोपनीयता मोड के रूप में नहीं माना जाना चाहिए ।
सीबीसी : एक IV- आधारित एन्क्रिप्शन योजना, मोड एक संभाव्य एन्क्रिप्शन एन्क्रिप्शन योजना के रूप में सुरक्षित है, यादृच्छिक बिट्स से अविभाज्यता प्राप्त करता है, एक यादृच्छिक IV मानता है। यदि चतुर्थ केवल एक गैर है , तो गोपनीयता हासिल नहीं की जाती है , और न ही यह योजना के द्वारा उपयोग की जाने वाली कुंजी के तहत एक गैर-परिचित है, जैसा कि मानक गलत तरीके से करने का सुझाव देता है। सिफरटेक्स्ट अत्यधिक निंदनीय हैं। कोई चुना हुआ सिफरटेक्स्ट अटैक (CCA) सुरक्षा नहीं। कई गद्दी विधियों के लिए एक सही-गद्दी की स्थिति की उपस्थिति में गोपनीयता को जब्त किया जाता है। स्वाभाविक रूप से धारावाहिक होने से अक्षम अक्षमता। व्यापक रूप से उपयोग किया जाता है, मोड की गोपनीयता-केवल सुरक्षा गुणों के परिणामस्वरूप अक्सर दुरुपयोग होता है। CBC-MAC एल्गोरिदम के लिए बिल्डिंग ब्लॉक के रूप में इस्तेमाल किया जा सकता है। मैं सीटीआर मोड पर कोई महत्वपूर्ण लाभ की पहचान नहीं कर सकता।
सीएफबी : एक आईवी-आधारित एन्क्रिप्शन योजना, मोड एक संभाव्य एन्क्रिप्शन एन्क्रिप्शन योजना के रूप में सुरक्षित है, यादृच्छिक बिट्स से अविभाज्यता प्राप्त करते हुए, एक यादृच्छिक IV मानती है। यदि IV की भविष्यवाणी की जाती है , तो गोपनीयता हासिल नहीं की जाती है , और न ही यह योजना द्वारा उपयोग की गई कुंजी के तहत एक गैर-प्रवर्धित व्यक्ति द्वारा बनाई गई है, जैसा कि मानक गलत तरीके से करने का सुझाव देता है। सिफरटेक्ट्स निंदनीय हैं। कोई सीसीए-सुरक्षा नहीं। स्वाभाविक रूप से धारावाहिक होने से अक्षम अक्षमता। योजना एक पैरामीटर s, 1 ≤ s, n पर निर्भर करती है, आमतौर पर s = 1 या s = 8. केवल एक बिट्स को संसाधित करने के लिए एक अवरोधक कॉल की आवश्यकता के लिए अक्षम। मोड एक दिलचस्प "आत्म-सिंक्रनाइज़ेशन" संपत्ति प्राप्त करता है; किसी भी संख्या में s-bit वर्णों के सम्मिलन या विलोपन से केवल अस्थायी रूप से सही डिक्रिप्शन बाधित होता है।
ओएफबी : एक आईवी-आधारित एन्क्रिप्शन स्कीम, मोड एक संभाव्य एन्क्रिप्शन एन्क्रिप्शन योजना के रूप में सुरक्षित है, यादृच्छिक बिट्स से अविभाज्यता प्राप्त करता है, एक यादृच्छिक आईवी मान लेता है। यदि IV एक गैर है, तो गोपनीयता हासिल नहीं की जाती है, हालांकि IVs का एक निश्चित अनुक्रम (जैसे, एक काउंटर) ठीक काम करता है। सिफरटेक्स्ट अत्यधिक निंदनीय हैं। कोई CCA सुरक्षा नहीं। एन्क्रिप्शन और डिक्रिप्शन स्वाभाविक रूप से धारावाहिक होने से अक्षम है। मूल रूप से किसी भी बिट की लंबाई (कोई पैडिंग की आवश्यकता है) के तारों का प्रयास करता है। मैं सीटीआर मोड पर कोई महत्वपूर्ण लाभ की पहचान नहीं कर सकता।
CTR : एक IV-आधारित एन्क्रिप्शन स्कीम, मोड एक गैर-IV को मानते हुए यादृच्छिक बिट्स से अप्रभेद्यता प्राप्त करता है। सुरक्षित गैर-आधारित योजना के रूप में, मोड को एक यादृच्छिक IV के साथ एक संभाव्य एन्क्रिप्शन एन्क्रिप्शन योजना के रूप में भी इस्तेमाल किया जा सकता है। एन्क्रिप्शन या डिक्रिप्शन पर यदि कोई नॉन का पुन: उपयोग होता है तो गोपनीयता की पूर्ण विफलता। मोड की समांतरता अक्सर इसे अन्य गोपनीयता मोड की तुलना में, कुछ सेटिंग्स में अधिक तेज़ बनाती है। प्रमाणित-एन्क्रिप्शन योजनाओं के लिए एक महत्वपूर्ण बिल्डिंग ब्लॉक। कुल मिलाकर, आमतौर पर गोपनीयता-केवल एन्क्रिप्शन प्राप्त करने का सबसे अच्छा और सबसे आधुनिक तरीका है।
XTS : एक IV- आधारित एन्क्रिप्शन स्कीम, मोड प्रत्येक n-बिट चंक के लिए एक tweakable blockcipher (एक मजबूत-पीआरपी के रूप में सुरक्षित) को लागू करके काम करता है। उन संदेशों के लिए जिनकी लंबाई n से विभाज्य नहीं है, अंतिम दो ब्लॉक विशेष रूप से व्यवहार किए जाते हैं। मोड का एकमात्र अनुमत उपयोग ब्लॉक-स्ट्रक्चर्ड स्टोरेज डिवाइस पर डेटा एन्क्रिप्ट करने के लिए है। अंतर्निहित पीआरपी की संकीर्ण चौड़ाई और आंशिक अंतिम ब्लॉकों के खराब उपचार समस्याएं हैं। एक विस्तृत (विस्तृत-ब्लॉक) पीआरपी-सुरक्षित अवरोधक की तुलना में अधिक कुशल लेकिन कम वांछनीय होगा।
एमएसीएस (संदेश अखंडता लेकिन एन्क्रिप्शन नहीं)
ALG1–6 : एमएसीएस का एक संग्रह, ये सभी सीबीसी-मैक पर आधारित हैं। बहुत सारी योजनाएँ। कुछ सिद्ध रूप से VIL PRFs के रूप में सुरक्षित हैं, कुछ FIL PRFs के रूप में, और कुछ के पास कोई सुरक्षा योग्य नहीं है। कुछ योजनाएं हानिकारक हमलों को स्वीकार करती हैं। कुछ विधाएँ दिनांकित हैं। कुंजी-पृथक्करण अपर्याप्त रूप से उन मोड के लिए भाग लिया जाता है जो इसके पास हैं। एन मास्स को नहीं अपनाया जाना चाहिए, लेकिन चुनिंदा रूप से "सर्वश्रेष्ठ" योजनाओं को चुनना संभव है। सीएमएसी के पक्ष में इनमें से कोई भी तरीका अपनाना भी ठीक रहेगा। आईएसओ 9797-1 एमएसीएस में से कुछ व्यापक रूप से मानकीकृत और उपयोग किए जाते हैं, खासकर बैंकिंग में। मानक का एक संशोधित संस्करण (आईएसओ / आईईसी एफडीआईएस 9797-1: 2010) जल्द ही जारी किया जाएगा [93]।
सीएमएसी : सीबीसी-मैक पर आधारित एक मैक, मोड (जन्मदिन की सीमा तक) सुरक्षित रूप से सुरक्षित है (वीआईएल) पीआरएफ (अंतर्निहित अवरोधक मानकर एक अच्छा पीआरपी है)। CBCMAC- आधारित योजना के लिए अनिवार्य रूप से न्यूनतम ओवरहेड। स्वाभाविक रूप से धारावाहिक प्रकृति कुछ अनुप्रयोग डोमेन में एक समस्या है, और 64-बिट अवरोधक के साथ उपयोग कभी-कभार पुन: कुंजीकरण की आवश्यकता होगी। एमएसीएस के आईएसओ 9797-1 संग्रह की तुलना में क्लीनर।
एचएमएसी : एक मैक एक अवरोधक हैश के बजाय एक क्रिप्टोग्राफिक हैश फ़ंक्शन पर आधारित है (हालांकि अधिकांश क्रिप्टोग्राफ़िक हैश फ़ंक्शन स्वयं ब्लॉकर्स पर आधारित हैं)। तंत्र मजबूत साबित-सुरक्षा सीमा का आनंद लेता है, यद्यपि पसंदीदा मान्यताओं से नहीं। साहित्य में कई निकटता से संबंधित वेरिएंट को ज्ञात होने की समझ पाने में कठिनाई होती है। किसी भी तरह के नुकसानदेह हमलों का सुझाव नहीं दिया गया है। व्यापक रूप से मानकीकृत और उपयोग किया जाता है।
GMAC : एक गैर-आधारित मैक जो GCM का एक विशेष मामला है। जीसीएम की कई अच्छी और बुरी विशेषताओं की पुष्टि करता है। लेकिन गैर-आवश्यकता एक मैक के लिए अनावश्यक है, और यहां यह थोड़ा लाभ खरीदता है। यदि ≤ 64 बिट्स पर टैग्स को छोटा किया जाता है और डिक्रिप्शन की सीमा पर निगरानी नहीं की जाती है, तो प्रैक्टिकल हमले। गैर-पुन: उपयोग पर पूर्ण विफलता। वैसे भी अगर जीसीएम को अपनाया जाता है तो उपयोग निहित है। अलग मानकीकरण के लिए अनुशंसित नहीं है।
प्रमाणित एन्क्रिप्शन (एन्क्रिप्शन और संदेश अखंडता दोनों)
CCM : एक गैर-आधारित AEAD योजना जो CTR मोड एन्क्रिप्शन और कच्चे CBC-MAC को जोड़ती है। स्वाभाविक रूप से धारावाहिक, कुछ संदर्भों में गति को सीमित करता है। अच्छी तरह से सुरक्षित, अच्छी सीमा के साथ, अंतर्निहित अवरोधक को संभालने के लिए एक अच्छा पीआरपी है। Ungainly निर्माण कि demonstrably काम करता है। जीसीएम की तुलना में लागू करने के लिए सरल। एक गैर-आधारित मैक के रूप में इस्तेमाल किया जा सकता है। व्यापक रूप से मानकीकृत और उपयोग किया जाता है।
GCM : एक गैर-आधारित AEAD योजना जो CTR मोड एन्क्रिप्शन और एक GF (2128) आधारित सार्वभौमिक हैश फ़ंक्शन को जोड़ती है। कुछ कार्यान्वयन वातावरण के लिए अच्छी दक्षता विशेषताएँ। कम से कम टैग ट्रंकेशन मानने वाले अच्छे-सुरक्षित परिणाम। पर्याप्त टैग ट्रंकेशन की उपस्थिति में हमलों और खराब साबित-सुरक्षा सीमा। एक गैर-आधारित मैक के रूप में इस्तेमाल किया जा सकता है, जिसे तब GMAC कहा जाता है। 96-बिट्स के अलावा अन्य गैर-अनुमति देने के लिए संदिग्ध विकल्प। नॉनवेज को 96-बिट्स और टैग को कम से कम 96 बिट्स तक सीमित रखने की सलाह देते हैं। व्यापक रूप से मानकीकृत और उपयोग किया जाता है।