क्रिप्टोर्जी उदाहरण

क्रिप्टोर्जी उदाहरण

चूंकि सममित एन्क्रिप्शन बहुत तेज है, आप पहले एक गुप्त कुंजी उत्पन्न कर सकते हैं और इसे सार्वजनिक कुंजी क्रिप्टोग्राफी द्वारा सुरक्षित लाइन पर संचारित कर सकते हैं. अब सभी भविष्य के संचार गुप्त कुंजी का उपयोग कर सकते हैं.

क्रिप्टोग्राफी और क्रिप्टोलॉजी के बीच अंतर

क्रिप्टोग्राफी सादे पाठ (पठनीय प्रारूप) के रूपांतरण का अध्ययन सिफरटेक्स्ट (गैर-पठनीय प्रारूप) I में है.इ. कूटलेखन. इसे भी कहा जाता है एन्क्रिप्शन का अध्ययन. कूटलिपि, दूसरी ओर, सादे पाठ के रूपांतरण का अध्ययन सिफरटेक्स्ट में और इसके विपरीत है. इसे भी कहा जाता है एन्क्रिप्शन और डिक्रिप्शन का अध्ययन. एक बड़ा अंतर यह है कि क्रिप्टोलॉजी क्रिप्टोग्राफी के माता -पिता हैं. आइए अन्य अंतर देखें.

एसएल नहीं. क्रिप्टोग्राफी कूटलिपि
1. क्रिप्टोग्राफी सिफर पाठ के लिए सादे पाठ के रूपांतरण की प्रक्रिया है. क्रिप्टोलॉजी सिफर टेक्स्ट के सादे पाठ के रूपांतरण की प्रक्रिया है और इसके विपरीत.
2. इसे एन्क्रिप्शन का अध्ययन भी कहा जाता है इसे एन्क्रिप्शन और डिक्रिप्शन का अध्ययन भी कहा जाता है.
3. यह प्रेषक की तरफ होता है यह प्रेषक और रिसीवर पक्ष पर होता है
4. क्रिप्टोग्राफी में, प्रेषक रिसीवर को संदेश भेजता है. क्रिप्टोलॉजी में, प्रेषक और रिसीवर दोनों एक दूसरे को संदेश भेजते हैं.
5. क्रिप्टोग्राफी को क्रिप्टोलॉजी के बच्चे के रूप में देखा जा सकता है. क्रिप्टोलॉजी को क्रिप्टोग्राफी के माता -पिता के रूप में देखा जा सकता है
6. क्रिप्टोग्राफी सुरक्षित संचार की तकनीकों से संबंधित है. क्रिप्टोलॉजी सुरक्षित संचार के अध्ययन से संबंधित है.
7. क्रिप्टोग्राफी जानकारी छिपाने के अभ्यास पर केंद्रित है क्रिप्टोलॉजी सूचना सुरक्षा के सैद्धांतिक और गणितीय पहलुओं पर केंद्रित है
8. क्रिप्टोग्राफी में एन्क्रिप्शन, डिक्रिप्शन और प्रमाणीकरण तकनीक शामिल है क्रिप्टोलॉजी में कोड, सिफर और क्रिप्टनालिसिस का अध्ययन शामिल है
9. क्रिप्टोग्राफी का संबंध एल्गोरिदम और प्रोटोकॉल के विकास से है क्रिप्टोलॉजी मौजूदा एन्क्रिप्शन विधियों का विश्लेषण और तोड़ने से संबंधित है
10. वित्त, ई-कॉमर्स और राष्ट्रीय सुरक्षा जैसे विभिन्न क्षेत्रों में उपयोग की गई क्रिप्टोग्राफी एन्क्रिप्शन को समझने और सुधारने के लिए अकादमिया और अनुसंधान में उपयोग की गई क्रिप्टिओलॉजी
11. क्रिप्टोग्राफी में सुरक्षित संदेश, सुरक्षित फ़ाइल हस्तांतरण और डिजिटल हस्ताक्षर जैसे एप्लिकेशन शामिल हैं. क्रिप्टोलॉजी में क्रिप्टेनालिसिस, कोड ब्रेकिंग और एन्क्रिप्शन विधियों के गणितीय विश्लेषण जैसे अनुप्रयोग शामिल हैं.

अंतिम अद्यतन: 09 मार्च, 2023

इसी तरह पढ़ा थंबनेल

लेख की तरह

कूटलिपि

ये नोट्स क्रिप्टो के लिए एक परिचय के रूप में काम करते हैं, न कि आपको एक विशेषज्ञ बनाने के लिए एक पूर्ण पाठ्यक्रम नहीं है, जो किसी भी वास्तविक दुनिया के आवेदन में सिफर, हैश, हस्ताक्षर, या ऐसी किसी भी चीज को लागू करने के लिए लाइसेंस प्राप्त है. निश्चित रूप से, घर पर खेलना ठीक है, लेकिन कभी भी ग्राहक या अपनी कंपनी के लिए क्रिप्टोग्राफिक रूटीन को लागू करने की कोशिश न करें. इसे पेशेवरों के लिए छोड़ दें. वहाँ अच्छे पुस्तकालय हैं. उनका उपयोग.

हालांकि, आपको हमेशा जांच करनी चाहिए, और पूछना चाहिए कि क्या आप जिस लाइब्रेरी का उपयोग कर रहे हैं, वह एक एल्गोरिथ्म को लागू कर रहा है जो अभी तक फटा नहीं है, और इसमें पर्याप्त महत्वपूर्ण लंबाई है.

यह एक महत्वपूर्ण सार्वजनिक सेवा घोषणा रही है.

पृष्ठभूमि

एलिस (द प्रेषक), बॉब (द रिसीवर), ईव (ईव्सड्रॉपर), और मल्लरॉय (एक शक्तिशाली दुर्भावनापूर्ण अभिनेता) नामक कुछ पात्रों के साथ एक सेटिंग में क्रिप्टो के बारे में बात करना पारंपरिक है।.

cryptosystem.png

एलिस और बॉब लोग, क्लाइंट और सर्वर, पीयर कंप्यूटर, डेटा स्टोर, नेटवर्क राउटर, आदि हो सकते हैं. ईव संचार का निरीक्षण कर सकता है. मैलोरी न केवल ईव्सड्रॉप कर सकता है, बल्कि प्रतिभागियों में से एक को भी खराब कर सकता है, वास्तविक संदेशों को जोड़ने, संशोधित या हटाता है, कनेक्शन को अपहरण करता है, सेवा से इनकार कर सकता है, मैलवेयर इंजेक्ट करें, आदि.

लक्ष्य:

  • : $ M $ की तुलना में $ m $ पुनर्प्राप्त करने के लिए यह अधिक लागत होनी चाहिए.
  • : बॉब को यह सत्यापित करने में सक्षम होना चाहिए कि यह ऐलिस था जिसने $ m $ भेजा था.
  • : बॉब को यह सत्यापित करने में सक्षम होना चाहिए कि $ M $ के साथ छेड़छाड़ नहीं की गई थी.
  • : ऐलिस को $ m $ भेजने से इनकार नहीं करना चाहिए.
  • यदि आपके गुप्त एल्गोरिथ्म से समझौता किया जाता है (कोई आपके समूह को छोड़ सकता है), तो आपको इसे बदलना होगा, और यह केवल एक कुंजी बदलने की तुलना में कठिन है!
  • सार्वजनिक एल्गोरिदम को खामियों की तलाश में हजारों विशेषज्ञों के अधीन किया जा सकता है, इसलिए आपको उन लोगों में कुछ हद तक विश्वास है जो जांच का सामना करते हैं.

परिभाषाएं

शब्द जानने के लिए: क्रिप्टोग्राफी की कला और विज्ञान निर्माण सिफर. क्रिप्टेनालिसिस द आर्ट एंड साइंस टूटने के सिफर, मैं.इ., $ M $ का निष्कर्षण $ C $, $ E $, $ D $, और संभवतः $ K_E $. क्रिप्टिओलॉजी क्रिप्टोग्राफी और क्रिप्टेनालिसिस का अध्ययन.

व्यायाम: स्टेग्नोग्राफी के बारे में पता करें. यह क्रिप्टोग्राफी से अलग कैसे है?

क्रिप्टोसिस्टम एन्क्रिप्शन, डिक्रिप्शन और प्रमुख पीढ़ी के लिए एल्गोरिदम और प्रोटोकॉल का एक विशेष सूट. उदाहरण: Cramer-Shoup Cryptosystem, Rabin Cryptosystem, Benaloh Cryptosystem, RSA क्रिप्टोसिस्टम. क्रिप्टोग्राफिक सिस्टम किसी भी प्रणाली जो क्रिप्टोग्राफी का उपयोग करता है. एक क्रिप्टोसिस्टम में उपयोग किए जाने वाले एक एल्गोरिथ्म को सिफर.

व्यायाम: एक “कोड” एक “सिफर” से अलग कैसे है? Ciphers की तुलना में कोड अधिक सुरक्षित हैं? वे अक्सर उपयोग क्यों नहीं करते हैं?

भ्रम, प्लेनटेक्स्ट, सिफरटेक्स्ट, और कुंजी के बीच संबंध होने की संपत्ति इतनी जटिल है कि क्रिप्टैनेलिस्ट के लिए बेकार हो. प्रसार प्लेनटेक्स्ट में सांख्यिकीय पैटर्न होने की संपत्ति पूरे सिफरटेक्स्ट में व्यापक रूप से फैल गया.

समयसीमा

  • विकिपीडिया का क्रिप्टोग्राफी लेख का इतिहास
  • विकिपीडिया की समयरेखा
  • कार्ल एलिसन की टाइमलाइन

सिफर के प्रकार

  • : एक सिफर आसान हाथ से किया जाना आसान है, आमतौर पर चरित्र-आधारित. यह भी कहा जाता है .
  • : बहुत ज्यादा किसी भी सिफर जो शास्त्रीय नहीं है.
  • : प्लेनटेक्स्ट के प्रत्येक चरित्र को सिफरटेक्स्ट बनाने के लिए एक या एक से अधिक वर्णों के साथ बदल दिया जाता है.
  • : प्लेनटेक्स्ट में वर्ण Ciphertext बनाने के लिए पुनर्व्यवस्थित हैं.
  • : एक प्रतिस्थापन सिफर जिसमें प्लेनटेक्स्ट का एक चरित्र हमेशा एक ही चरित्र द्वारा प्रतिस्थापित किया जाता है.
  • : एक प्रतिस्थापन सिफर जो अनिवार्य रूप से कई मोनोलाफैबेटिक प्रतिस्थापन मैपिंग का उपयोग करता है.
  • : एक प्रतिस्थापन जिसमें एक चरित्र पात्रों के एक सेट में से एक को मैप कर सकता है.
  • : वर्णों के ब्लॉक के लिए वर्णों के ब्लॉक का एक प्रतिस्थापन.
  • : एक पॉलील्फैबेटिक सिफर जिसमें प्रतिस्थापन योजना दोहराती है.
  • : यदि आप आवधिक समझते हैं तो आत्म-व्याख्यात्मक.
  • : एन्क्रिप्शन प्रति वर्ण नहीं बल्कि पात्रों के प्रति ब्लॉक होता है.
  • : अज्ञात लंबाई के डेटा स्ट्रीम पर काम करने वाला एक सिफर, आमतौर पर प्रतिक्रिया को शामिल करता है.
  • : एक सिफर जिसमें $ K_E $ और $ K_D $ एक दूसरे से समान या तुच्छ रूप से व्युत्पन्न हैं; पार्टियों को उन चाबियों का आदान -प्रदान करने के लिए गुप्त रूप से मिलने की आवश्यकता है जो वे उपयोग कर रहे हैं. यह भी कहा जाता है .
  • : एक ऐसी योजना जिसमें हर किसी की एन्क्रिप्शन कुंजी सार्वजनिक रूप से जानी जाती है, लेकिन उनकी डिक्रिप्शन कुंजी को गुप्त रखा जाता है. यह भी कहा जाता है .

सिफर अध्ययन करने के लिए मजेदार हैं, लेकिन वे सुरक्षा में अपनी उपयोगिता के संदर्भ में व्यापक रूप से भिन्न होते हैं. एक प्रणाली में सबसे बड़ी सुरक्षा खामियों में से एक क्रिप्टो का दुरुपयोग है. यह सही है: समस्या इसका दुरुपयोग है, न कि इसकी चूक!

सिर्फ इसलिए कि इस पृष्ठ पर एक सिफर सूचीबद्ध है, इसका मतलब यह नहीं है कि आपको इसका उपयोग करना चाहिए. हमारा लक्ष्य ऐतिहासिक और आधुनिक दोनों तरह के सिफर की एक विस्तृत श्रृंखला सीखना है.

गुप्त कुंजी क्रिप्टोग्राफी

  • यदि एक समूह में $ n $ लोगों को संवाद करने की आवश्यकता है, तो उन्हें $ \ frac $ कुंजी की आवश्यकता है.
  • कुंजी को सुरक्षित रूप से वितरित किया जाना चाहिए (गुप्त में).
  • चाबियाँ सुरक्षित रखी जानी चाहिए.
  • कुंजी को अक्सर बदल दिया जाना चाहिए, जो वितरण सिरदर्द में वापस खिलाता है.

नीचे दिए गए चरित्र-आधारित उदाहरणों में, हम मान लेंगे (सामान्यता के किसी भी नुकसान के बिना) एक 26 प्रतीक वर्णमाला (ए)..Z).

सीज़र सिफर

आधुनिक मानकों द्वारा एक पूरी तरह से दयनीय और असुरक्षित सिफर. एन्क्रिप्शन कुंजी $ K_E $ एक छोटा पूर्णांक है और $ k_d = k_e $. एन्क्रिप्ट करने के लिए, प्रत्येक प्लेनटेक्स्ट वर्ण में $ K_E $ जोड़ें; डिक्रिप्ट करने के लिए, घटाना. उदाहरण के लिए, k = 5 के साथ, Attelatdawn fyyfhpfyifbs to crack होने के लिए तुच्छ हो जाता है: बस $ k_e $ अनुमान लगाते हैं.

मोनोएल्फैबेटिक प्रतिस्थापन

केवल प्रत्येक चरित्र में एक निश्चित ऑफसेट जोड़ने के बजाय, आप एक पूर्वनिर्धारित कर सकते हैं प्रतिस्थापन सारणी अपनी वर्णमाला का एक यादृच्छिक क्रमपरिवर्तन उत्पन्न करके. उदाहरण के लिए:

Abcdefghijklmnopqrstuvwxyz mqhpsvjycurftbilakwngzdoex

तो हमला अब mnnmhrmnpmdb है . आप कुंजी का अनुमान लगाकर इसे क्रैक नहीं करते हैं ($ n हैं!$ संभव कुंजियाँ), लेकिन आवृत्ति विश्लेषण किसी भी मोनोलाफैबेटिक प्रतिस्थापन सिफर को क्रैक कर सकता है, बशर्ते कि संदेश काफी लंबा हो. उन तकनीकों के लिए जिनकी कुंजी एक क्रमपरिवर्तन है, याद रखने के लिए महत्वपूर्ण को आसान बनाने का एक तरीका एक वाक्यांश चुनना है, इसके अद्वितीय पत्रों को बाहर निकालें, फिर क्रम में लापता पत्र भरें. उदाहरण के लिए, समय से पहले अनुकूलन सभी बुरी पैदावार की जड़ है जो इस प्रतिस्थापन मैपिंग की उपज देता है:

PAMPATUOIZNSHFLVBCDGJKQWXY

होमोफोनिक प्रतिस्थापन

प्रत्येक प्लेनटेक्स्ट लेटर ने सिफरटेक्स्ट में एक या एक से अधिक प्रतीकों को मैप किया. लक्ष्यों की संख्या इसकी आवृत्ति के लिए आनुपातिक होनी चाहिए (आवृत्ति विश्लेषण को हराने के लिए). उदाहरण:

ए 12 15 36 50 56 70 81 95 बी 51 84 सी 16 44 65 डी 04 06 48 82 ई 01 17 19 34 47 47 49 58 60 67 77 85 90 एफ 13 27 जी 09 28 एच 28 एच 26 42 53 59 68 71 I 35 73 76 86 91 96 J 18 K 07 L 29 40 54 87 M 25 30 N 21 61 61 62 69 74 94 O 02 03 03 08 10 57 75 93 P 41 98 Q 97 R 32 38 43 45 80 83 S 14 22 39 89 89 99 99 T 00 20 23 33 46 52 72 78 88 U 11 64 66 V 37 W 63 92 X 31 Y 24 55 Z 05

एन्क्रिप्ट करने के लिए, चुनें बेतरतीब संभावनाओं के बीच. उदाहरण के लिए, Attelatdawn का एक संभावित एन्क्रिप्शन है:

56 78 20 95 65 07 12 72 06 50 92 61

सरल विजेनर

सिफर के रूप में जाना जाता है का आविष्कार विगनेर द्वारा बिल्कुल भी नहीं किया गया था. ऐसा लगता है कि पहली बार Giovan Battista Bellaso द्वारा वर्णित किया गया है. कुंजी एक स्ट्रिंग है जिसे आप मॉड्यूलर जोड़ के साथ प्लेनटेक्स्ट में जोड़ते हैं, जैसे इस उदाहरण में (ए = 0, बी = 1, सी = 2, . Z = 25):

PLAINTEXT: TAKEACOPYOURPOLICYTORMAWILCOXONTHETHIRDFLOUR कुंजी: क्वार्कक्वाकेक्वार्कक्वार्कक्वार्कक्वार्कक्वार्कक्वार्कक्वार्कक्वार Ciphertext: jukvksippyvsolbfilzmonoeyhgansbwooydnhvdxcrupbioi

हाथ से Ciphertext उत्पन्न करने के लिए आप एक कोड व्हील या एक तबुला रेक्टा का उपयोग कर सकते हैं. यह योजना प्रमुख दोहराने के बाद से सुरक्षित नहीं है. यदि कुंजी लंबाई निर्धारित की जा सकती है, तो क्रिप्टैनेलिस्ट कई आवृत्ति विश्लेषण कर सकता है (कुंजी में प्रत्येक शिफ्ट मूल्य के लिए एक). कुंजी लंबाई निर्धारित करने के तरीके कैसिसकी विधि और फ्रीडमैन परीक्षण हैं. बाइनरी डेटा के लिए (मैं).इ., बिट्स का एक अनुक्रम) मॉड्यूलर जोड़ बेस -2 सिर्फ एक साधारण XOR है. उदाहरण:

PLANTEXT: 0110000101010101010100100000000001111111111111111101 कुंजी

ऑटो-कुंजी विगनेर

Vigenère ने वास्तव में एक ऑटोकी सिफर बनाया जो मजबूत होता है क्योंकि कुंजी कभी नहीं दोहराती है. इसके बजाय “कुंजी” कीफ्रेज़ से बना है, इसके बाद प्लेनटेक्स्ट, इस तरह:

Plaintext: TAKEACOPYOFYOURPOLICYTONORMAWILCOXONTHETHIRDFLOOR Key: QUARKTAKEACOPYOFYOURPOLICYTONORMAWILCOXONTHETHIRD Ciphertext: JUKVKVOZCOHMDSFUMZCTNHZVQPFOJWCOOTWYVVBHUBYHYSWFU

कि एक की चाबी के हिस्से के रूप में प्लेनटेक्स्ट का इस्तेमाल किया. आप Ciphertext का भी उपयोग कर सकते हैं. देखें के कैसे?

आधुनिक ऑटो-कुंजी सिफर

आप अभी भी भाषाई विश्लेषण द्वारा ऑटोकी विगनेर सिफर को क्रैक कर सकते हैं, क्योंकि कुंजी में पाठ होता है और इस प्रकार उच्च-आवृत्ति वाले पत्र होने की संभावना है. आधुनिक ऑटो-कुंजी सिफर एक यादृच्छिक संख्या जनरेटर के साथ शिफ्ट मान उत्पन्न करते हैं. प्रमुख बीज जनरेटर.

व्यायाम: अपनी पसंद की प्रोग्रामिंग भाषा में एक ऑटोकी सिफर को लागू करें.

एक समय पैड

  • संदेश एन्क्रिप्ट किए जाने की तुलना में लंबा या लंबा है
  • वास्तव में बेतरतीब ढंग से उत्पन्न होता है
  • एक बार और केवल एक बार उपयोग किया जाता है

व्यायाम: आमतौर पर उपयोग किए जाने वाले एक समय के पैड क्यों नहीं होते हैं, फिर, यह देखते हुए कि वे सबसे सुरक्षित सिफर संभव हैं?

निष्पक्षता से खेलो

यह एक उदाहरण है . यह पात्रों के जोड़े की जगह लेता है. कुंजी एक क्रमचय है , उदाहरण के लिए:

Z c b m l g d a q e t u o k h f s x v n p i y r w
  • लेट $ (a, b) $ पहले चरित्र की पंक्ति और स्तंभ हो और $ (c, d) $ दूसरे की पंक्ति और स्तंभ हो.
  • यदि $ a \ neq c $ और $ b \ neq d $ तो $ (a, d) (b, c) $ लौटें.
  • यदि $ a = c $ तो $ (a, (b+1) \ bmod 5) (c, (d+1) \ bmod 5) $ लौटें.
  • यदि $ b = d $ तो $ ((a+1) \ bmod 5, b) ((c+1) \ bmod 5, d) $ लौटें.
फिर पूर्व से हमला ⇒ th en at xt ac kf ro mt he Xe as tx ⇒ ut hw go fo db tv yk zk nh na na dx of ⇒ uthwgofodbtvykzknadxofof

डिक्रिप्शन रिवर्स में नियम चलाता है. PlayFair सिफर बहुत असुरक्षित है.

चार वर्ग

Playfair की तरह Digraphs को एन्क्रिप्ट करता है, लेकिन थोड़ा मजबूत होता है क्योंकि यह दोहरे अक्षरों के लिए अनुमति देता है और उलट प्लेनटेक्स्ट डिग्राफ के लिए उल्टा सिफरटेक्स्ट डिग्राफ नहीं करता है. उदाहरण

ए बी सी डी ई जी आई वी ई एम एम एफ जी एच एच आई के एल बी आर टी वाई एल एम एन एम एन ओ पी ओ डी ए एच सी क्यू आर एस टी यू टी यू एन पी वी डब्ल्यू डब्ल्यू एक्स वाई जेड एस यू डब्ल्यू एक्स जेड पी आर ई एम ए ए बी सी डी ई टी यू ई जेड एफ जी एच एच एच एच एच एल एल एम एन ई वी वी वी वी वी वी वी वी वी वी वी वी वी वी वी वी वी वी बी वी।
फिर पूर्व से हमला ⇒ th en at ta ck fr om th ee as tx ⇒ ni vl ev fm mo bv df ni ma vv nx ⇒ uthwgofodbtvykzknadxof

ठीक है, तो Playfair की तुलना में थोड़ा मजबूत है लेकिन इसलिए क्या? कंप्यूटर इन चीजों को सेकंड, या शायद मिनटों में क्रैक कर सकते हैं (पर्याप्त सिफरटेक्स्ट दिया गया).

सरल ब्लॉक ट्रांसपोज़िशन

सबसे सरल ट्रांसपोज़िशन सिफर संदेश को आकार $ n $ के ब्लॉक में तोड़ देता है, फिर $ (1 के क्रम के अनुसार प्रत्येक ब्लॉक को स्क्रैम्बल करता है (1 (1..n) $. उदाहरण के लिए, यदि हमारी कुंजी $ (4,1,6,3,2,5) $ है, तो संदेश getThathealthinspector को tgatehattehlsheniprcot के रूप में एन्क्रिप्ट किया गया है .

स्तंभ -संक्रमण

एक ग्रिड में पंक्ति द्वारा संदेश पंक्ति लिखें, फिर इसे कॉलम में पढ़ें. पूरी तरह से असुरक्षित. कुंजी सिर्फ पंक्तियों की संख्या है. इसका अनुमान लगाएं.

रेल की बाड़

रेल की बाड़ पिछले एक से बेहतर नहीं है, बस फंकियर. कुंजी उन रेलों की संख्या है, जिन पर आप एक अप और डाउन फैशन में प्लेनटेक्स्ट लिखते हैं, एक समय में एक रेल को पढ़कर सिफरटेक्स्ट उत्पन्न करते हैं. उदाहरण: 4 रेल पर “भरें और एक WS2475 फॉर्म फाइल करें” एन्क्रिप्ट करने के लिए:

f t l 4 m i u a i e 2 7 r l o n f a s 5 o l d w f

फिर आप Ciphertext “FTL4MIUAIE27RLONFAS5OLDWF” पढ़ें। . यह दरार करने के लिए तुच्छ है. बस $ k $ अनुमान लगाते हैं.

प्रतिस्थापन और संक्रमण का संयोजन

अकेले ट्रांसपोज़िशन बहुत कमजोर है; अकेले प्रतिस्थापन बहुत कमजोर है; उन्हें मिलाना बेहतर है. आप विभिन्न ट्रांसपोज़िशन के साथ क्लासिक प्रतिस्थापन सिफर का एक बहुत मिला सकते हैं, या बिफिड जैसे कुछ विशेष संयोजन सिफर का उपयोग कर सकते हैं. इसके अलावा, अधिकांश प्रसिद्ध रोटर मशीनें और आधुनिक सिफर इस संयोजन का उपयोग करते हैं; वास्तव में वे इन परिवर्तनों को कई बार लागू करते हैं.

दो शाखाओंवाला

यह एक ग्रिड में उनके निर्देशांक के साथ अक्षरों को विकल्प देता है और निर्देशांक पर एक स्तंभ ट्रांसपोज़िशन करता है. उदाहरण:

Z c b m l g d a q e t u o k h f s x v n p i y r w

प्लेनटेक्स्ट के प्रत्येक अक्षर के तहत (पंक्ति, स्तंभ) निर्देशांक लिखें (ई.जी., “ए” पंक्ति 1, कॉलम 2 पर है; “टी” पंक्ति 2, कॉलम 0, आदि पर है.):

हमला 122102121143 200213201244

फिर पंक्तियों में पढ़ें, TWOS द्वारा समूह और Ciphertext पत्र देखें:

122102121143200213201244 ए यू बी ए डी आर टी बी क्यू टी ए डब्ल्यू

त्रिशिखा

बिफिड की तरह, लेकिन एक घन पर. उदाहरण:

Z C B M L F V V N P G D A Q E X I R W T U O K H S Y . जे

एन्क्रिप्ट करने के लिए, पहले निर्देशांक लिखें:

हमला 000001000022 122102121110 200210201221
00000100002212102121110200210201221 Z C Z O S F H Q V I N .

पहेली

  • कोई भी पत्र खुद को एन्क्रिप्ट नहीं करेगा
  • आत्म-प्राप्ति का मतलब था कि कम स्क्रैम्बलर सेटअप संभावनाएं थीं
  • क्रिब्स ढूंढना वास्तव में आसान था. अधिकांश संदेश मौसम की रिपोर्ट के साथ शुरू हुए.
  • जल्दी, संदेश कुंजियाँ उत्तराधिकार में दो बार दिखाई दीं.

आधुनिक क्रिप्टोग्राफिक तरीके

  • बिट स्ट्रिंग्स पर काम करते हैं, चरित्र तार नहीं
  • पूरी तरह से मास्क पैटर्न और प्लेनटेक में अतिरेक के लिए सावधान हैं
  • उपयोग यादृच्छिक कीज़ (जिसका पुन: उपयोग किया जा सकता है, भी)
  • सुनिश्चित करें कि प्लेनटेक्स्ट में बहुत मामूली परिवर्तन सिफरटेक्स्ट के एक बड़े हिस्से को प्रभावित करते हैं (और इसके विपरीत). इसे कहा जाता है हिमस्खलन प्रभाव.
  • कुशल
  • गलती सहने वाला
  • ईसीबी – इलेक्ट्रॉनिक कोडबुक
  • सीबीसी – सिफर ब्लॉक चेनिंग
  • सीएफबी – सिफर फीडबैक
  • OFB – आउटपुट फीडबैक
  • सीटीआर – काउंटर
  • बीसी – ब्लॉक चेनिंग
  • PCBC – प्रचारक सिफर ब्लॉक चेनिंग
  • CBCC – चेकसम के साथ सिफर ब्लॉक चेनिंग

डेस

विचार

आरसी 4

RC6

ब्लोफिश

दो मछली

एईएस

विकिपीडिया एईएस में नया मानक है, डेस की जगह. यह प्रतियोगिता का विजेता था (2001 में), जहां रिजंडेल नाम के तहत प्रस्तुत किया गया था, आरसी 6, सर्पेंट, मार्स और ट्वॉफिश को हराकर.

प्रमुख विनिमय

diffiehelman.png

डिफी और हेलमैन (2015 ट्यूरिंग अवार्ड विजेता) और उनके दोस्त मर्कले ने 1976 में दिखाया कि दो लोगों के लिए एक गुप्त कुंजी का आदान -प्रदान करना संभव था वास्तव में गुप्त में मिलने के बिना:

  • ऐलिस एक प्राइम $ n $ चुनता है और इसे स्पष्ट रूप से बॉब को भेजता है
  • एलिस एक आदिम रूट मॉड $ एन $ (कैसे खोजने के लिए) चुनता है, $ g $ कहा जाता है, और इसे स्पष्ट में भेजता है
  • ऐलिस एक गुप्त पूर्णांक $ ए $ चुनता है, और $ g^a \ bmod n $ को स्पष्ट रूप से बॉब में भेजता है
  • बॉब एक ​​गुप्त पूर्णांक $ b $ चुनता है, और एलिस को स्पष्ट में $ g^b \ bmod n $ भेजता है
  • एलिस कम्प्यूट्स ($ g^b \ bmod n)^a \ bmod n $ और bob कम्प्यूटेस ($ g^a \ bmod n)^b \ bmod n $. यह कुंजी है! (यह $ g^ \ bmod n $ है)

यह शायद सुरक्षित है, बशर्ते $ n $ बहुत बड़ा हो और $ \ frac $ भी प्राइम हो, क्योंकि हालांकि ईव $ g $, $ n $, $ g^a \ bmod n $, और $ g^b \ bmod n जानता है $, वहाँ है कोई ज्ञात कुशल तरीका नहीं इन से $ $ या $ b $ प्राप्त करने के लिए. यह असतत लघुगणक समस्या है, याद रखें? उदाहरण छोटे $ n $ के साथ:

  • एलिस $ n = 208799 $ और $ g = 13 $ चुनता है और इन्हें बॉब को भेजता है
  • एलिस ने $ A = 152335 $ और BOB PICKS $ B = 98113 $
  • एलिस ने बॉब $ 13^ \ BMOD 208799 = 73033 $ भेजा
  • बॉब ऐलिस $ 13^ \ bmod 208799 = 147540 $ भेजता है
  • एलिस की गणना $ 147540^ \ BMOD 208799 = 8435 $
  • बॉब $ 73033^ \ BMOD 208799 = 8435 $ की गणना करता है
  • गुप्त कुंजी $ 8435 $ है.

वास्तव में $ n $ के छोटे मूल्यों के साथ ऐसा न करें. सामान्य तौर पर, जब तक आपको किसी प्रकार का प्रमाणन नहीं मिलता है, तब तक किसी भी वास्तविक दुनिया की प्रणालियों को सुरक्षित करने का प्रयास न करें. लेकिन निश्चित रूप से आगे बढ़ें और एल्गोरिदम सीखें और अभी के लिए कोडिंग का अभ्यास करें.

सार्वजनिक कुंजी क्रिप्टोग्राफी

सार्वजनिक कुंजी सिफर गति की कीमत पर गुप्त कुंजी सिफर के प्रमुख प्रबंधन दुःस्वप्न को हल करती है. $ N $ लोगों के एक समूह में किसी को केवल $ n $ सार्वजनिक कुंजी और $ n $ निजी कुंजी की आवश्यकता होती है.

आरएसए क्रिप्टोसिस्टम

  • दो बड़े primes, $ p $ और $ q $ उत्पन्न करता है.
  • मूल्य $ e $ अपेक्षाकृत $ (p-1) (q-1) $ का चयन करता है.
  • उसकी सार्वजनिक कुंजी $ (n, e) $ को प्रकाशित करता है जहां $ n = pq $.
  • $ D $ = $ e $ $ e $ $ (p-1) (q-1) $ के सापेक्ष मॉड्यूलर व्युत्क्रम, इसे गुप्त रखते हुए.
  • $ P $ और $ Q $ को नष्ट कर देता है.
  • ऐलिस के लिए एक संदेश $ m $ bob को भेजने के लिए, वह $ C = m^e \ bmod n $ भेजती है.
  • बॉब इसे आसानी से डिक्रिप्ट करता है क्योंकि $ m = c^d \ bmod n $.

व्यायाम: आरएसए के पीछे गणित पर शोध करें. यह क्यों काम करता है, विस्तार से? आपका उत्तर Euler के टोटिंट फ़ंक्शन को अंतर्निहित करने वाले प्रमेयों का उपयोग करेगा; सुनिश्चित करें कि आप दिखाते हैं कि यह $ (P-1) (Q-1) $ तक कैसे कम हो जाता है जब $ PQ $ अन्य चीजों के साथ प्राइम होता है.

व्यायाम: डिफी-हेलमैन (डीएच) को कभी-कभी सार्वजनिक कुंजी क्रिप्टोग्राफी का एक हिस्सा माना जाता है, भले ही यह प्रमुख एक्सचेंज से संबंधित हो और खुद एक एन्क्रिप्शन एल्गोरिथ्म नहीं है. क्यों, फिर, कुछ लोग इसे सार्वजनिक कुंजी मानते हैं? (इसके उत्तर के लिए कुछ शोध की आवश्यकता है.)

एक तुच्छ उदाहरण के लिए, बस इसलिए आप गणित को कार्रवाई में देख सकते हैं, आइए 32-बिट कुंजियों के साथ एक आरएसए करें:

यह उदाहरण केवल चित्रण के लिए है. कभी भी अपने खुद के क्रिप्टो एल्गोरिथ्म को लागू न करें. यह भी सुनिश्चित करें कि आप समझते हैं कि इस तरह की छोटी कुंजियों के साथ सार्वजनिक कुंजी क्रिप्टोग्राफी कितनी भयानक है. असली चाबियों में हजारों बिट्स होने चाहिए.

पहले हम दो यादृच्छिक 16-बिट प्राइम्स (16 क्योंकि यह आधा प्रमुख आकार, जो 32 है) उत्पन्न करते हैं: $ \ _ शुरू p = 36469 \\ q = 50929 \ end$ एन्क्रिप्ट एक्सपोनेंट के लिए 16-बिट प्राइम उत्पन्न करें (या बस 65537 का उपयोग करें): $ E = 65537 $ अब: $ \ _ शुरू करें n = pq = 1857329701 \\ d = \ mathsf (e, (p-1) (q-1)) = 39569516A9 \\ \ _$ स्ट्रिंग को एन्क्रिप्ट करें ad डंडे एस्टा ud.? . यहाँ यह UTF-8 में है:

C2 BF 44 C3 B3 6E 64 65 20 65 73 74 C3 A1 20 75 64 2E 3F

हम अपने संदेश को ब्लॉक में विभाजित करना चाहते हैं. अनुशंसित ब्लॉक आकार $ \ lfloor \ frac \ rfloor $ है. चूंकि हम RSA-32 (32-बिट कुंजियाँ) कर रहे हैं, हम $ \ lfloor \ frac \ rfloor $, या 3 चाहते हैं. तो चलिए हमारे बाइट्स को तीन के ब्लॉक में समूह बनाते हैं:

C2BF44 C3B36E 646520 657374 C3A120 75642E 3F0202

अंत में 02 02 PKCS#7 पैडिंग है जो संदेश को 3 बाइट्स में से एक से अधिक बना देता है. दशमलव में, हमारे ब्लॉक 12762948, 12825454, 6579488, 6648692, 12820768, 7693358, 4129282 हैं. अब प्रत्येक पर एन्क्रिप्ट फ़ंक्शन लागू करें :: $ 12762948^ \ BMOD 1857329701 = 1674934738 $
$ 12825454^ \ BMOD 1857329701 = 920121142 $
$ 6579488^ \ BMOD 1857329701 = 703310795 $
$ 6648692^ \ ​​BMOD 1857329701 = 1740932196 $
$ 12820768^ \ BMOD 1857329701 = 512101030 $
$ 7693358^ \ BMOD 1857329701 = 1327283085 $
$ 4129282^ \ BMOD 1857329701 = 1468977038 $
दशमलव में सिफरटेक्स्ट, अर्थात् 1674934738, 920121142, 703310795, 1740932196, 512101030, 1327283085, 1468977038 को डिक्रिप्ट करने के लिए: $ 1674934738^ \ bmod 185738
$ 920121142^ \ bmod 1857329701 = 12825454 $
$ 703310795^ \ BMOD 1857329701 = 6579488 $
$ 1740932196^ \ bmod 1857329701 = 6648692 $
$ 512101030^ \ BMOD 1857329701 = 12820768 $
$ 1327283085^ \ BMOD 1857329701 = 7693358 $
$ 1468977038^ \ BMOD 1857329701 = 4129282 $
हमें मूल संदेश वापस मिलता है! मनोरंजन के लिए, देखें कि ऊपर का उदाहरण कैसे उत्पन्न हुआ था.

चूंकि सममित एन्क्रिप्शन बहुत तेज है, आप पहले एक गुप्त कुंजी उत्पन्न कर सकते हैं और इसे सार्वजनिक कुंजी क्रिप्टोग्राफी द्वारा सुरक्षित लाइन पर संचारित कर सकते हैं. अब सभी भविष्य के संचार गुप्त कुंजी का उपयोग कर सकते हैं.

व्यायाम: ऊपर उदाहरण में 4 बाइट्स के ब्लॉक आकार का उपयोग करना गलत क्यों होगा?

क्रिप्टोग्राफिक हैशिंग

  • एक संदेश खोजें जो किसी दिए गए मान पर हैस करता है ()
  • दो संदेश खोजें जो एक ही मूल्य पर हैश ()

गणितीय रूप से, एक क्रिप्टोग्राफिक हैश फ़ंक्शन $ H $ एक संदेश से एक हैश का उत्पादन करता है, $ H (m) = c $, जैसे कि $ m $ को कुशलता से $ C $ से निर्धारित नहीं किया जा सकता है, और कोई भी कुशलता से $ m_1 \ neq m_2 $ नहीं पा सकता है ऐसा कि $ H (m_1) = h (m_2) $,

आमतौर पर संदेश में सिर्फ एक बिट के परिवर्तन से पाचन पूरी तरह से और पूरी तरह से अलग दिखने का कारण होगा.

$ बिल्ली यह मेरी इच्छा है. मैं ऐलिस के लिए 1000 डॉलर और बॉब को बाकी सब कुछ छोड़ देता हूं. हस्ताक्षरित, ईव. $ md5sum होगा C18FEB890752C9E680C99D1E909FD761 विल $ sed "s/1/9/g" होगा> $ बिल्ली यह मेरी इच्छा है. मैं ऐलिस को 9000 डॉलर और बॉब को बाकी सब कुछ छोड़ देता हूं. हस्ताक्षरित, ईव. $ md5sum होगा 85570BC2D0458B1F98F484261DEE7D4D होगा

एक सुरक्षित हैश यह निर्धारित करने का एक तरीका प्रदान करता है कि क्या एक संदेश के साथ छेड़छाड़ की गई थी. स्टीव फ्राइडल की सचित्र गाइड टू क्रिप्टपग्राफिक हैश देखें.

संदेश प्रमाणीकरण कोड

ये क्रिप्टोग्राफिक हैश के समान हैं सिवाय इसके कि वे एक गुप्त कुंजी का उपयोग करते हैं, जबकि हैश सिर्फ संदेश का उपयोग करते हैं. $ \ Mathit(एम, के) = सी $

  • एमएसीएस बनाम. स्टैकओवरफ़्लो पर हैश
  • विकीडिया पर डिजिटल हस्ताक्षर
  • विकिपीडिया में मैक

डिजीटल हस्ताक्षर

बॉब कैसे सुनिश्चित हो सकता है कि संदेश ऐलिस से आया है न कि किसी और से? ऐलिस द्वारा हस्ताक्षर यह; कि कैसे. व्यवहार में, एक आमतौर पर एक हैश पर हस्ताक्षर करता है, पूरे संदेश को नहीं .

डिजिटल हस्ताक्षर के लिए आरएसए

ऐलिस के लिए बॉब को एक संदेश भेजने के लिए,

  • ऐलिस ने अपनी निजी कुंजी के साथ एम को एन्क्रिप्ट किया
  • ऐलिस बॉब की सार्वजनिक कुंजी के साथ एन्क्रिप्ट करता है
  • बॉब अपनी निजी कुंजी के साथ डिक्रिप्ट करता है
  • ऐलिस की सार्वजनिक कुंजी के साथ बॉब डिक्रिप्ट करता है

डीएसए

क्रिप्टएनालिसिस

  • आवृत्ति विश्लेषण
  • ज्ञात प्लेनटेक्स्ट अटैक
  • ज्ञात सिफरटेक्स्ट अटैक
  • चुने हुए प्लेनटेक्स्ट अटैक
  • चुना प्रमुख हमला
  • रेखीय क्रिप्टनारलिसिस
  • विभेदक क्रिप्टेनालिसिस
  • चोरी
  • रिश्वत
  • भयादोहन

व्यायाम: क्रिप्टेनालिसिस पर कुछ स्व-अध्ययन करें या एक मजेदार ऑनलाइन पाठ्यक्रम खोजें.

प्रोग्रामिंग उदाहरण

हे, हम यह नहीं दिखाने जा रहे हैं कि कैसे अपने-अपने क्रिप्टो को रोल करें. हम कुछ वास्तविक एक्सपेटिंग लाइब्रेरी को देखने जा रहे हैं.

क्या आप एक आईपी नेटवर्क पर डेटा संचारित कर रहे हैं?

आपके आवेदन के अन्य भागों के लिए एन्क्रिप्शन की आवश्यकता है, पर पढ़ें.

जावास्क्रिप्ट उदाहरण

मॉड्यूल में निर्मित: नोड क्रिप्टो .

पायथन उदाहरण

जावा उदाहरण

संदर्भ: जावा क्रिप्टोग्राफी आर्किटेक्चर (जेसीए)

Crytpo के लिए सुरक्षा सर्वोत्तम अभ्यास

  • कभी कभी कभी कभी कभी कभी कभी कभी भी अपने खुद के रोल
  • एक अच्छी तरह से परीक्षण किए गए पुस्तकालय का उपयोग करें जो अप-टू-डेट है, विशेषज्ञों द्वारा देखा गया है, और अभी के लिए सुरक्षित माना जाता है
  • एक एल्गोरिथ्म का उपयोग न करें जो क्रैक किया गया हो
  • एक एल्गोरिथ्म का उपयोग न करें जिसे सैद्धांतिक रूप से क्रैक किया जा सकता है
  • एक एल्गोरिथ्म का उपयोग न करें जिसमें एक शोषक दोष हो
  • अपनी आवश्यकताओं के लिए सही प्रकार के एल्गोरिथ्म का उपयोग करें, ई.जी., पासवर्ड हैशिंग धीमा होना चाहिए, इसलिए bcrypt जैसी किसी चीज़ का उपयोग करें.
  • उन प्रमुख आकारों का उपयोग करें जो लंबे समय से हैं
  • यदि हैशेड पासवर्ड को स्टोर करना, तो हमेशा नमक का उपयोग करें
  • इनिशियलाइज़ेशन वैक्टर और नॉनस का उपयोग करता है बजाय उन्हें अनदेखा करने के
  • विनम्र रहें: आप शायद इसमें विशेषज्ञ नहीं हैं

सारांश

  • पृष्ठभूमि और परिभाषाएँ
  • सिफर के प्रकार
  • गुप्त कुंजी और सार्वजनिक कुंजी क्रिप्टोग्राफी के बीच अंतर
  • प्रमुख विनिमय
  • हैशिंग और डिजिटल हस्ताक्षर
  • चिरप्रेनलिसिस
  • प्रोग्रामिंग उदाहरण