यह क्रिप्टोग्राफी के लिए बुनियादी कारणों में से कुछ के साथ क्या करना है:
- सुनिश्चित करें कि संदेश पारगमन (अपरिवर्तनीय)
- यकीन संदेश पारगमन में पढ़ा नहीं किया गया है का बदलाव नहीं किया गया है (सुरक्षित)
- यकीन है कि संदेश यह कौन कहता है यह सुनिश्चित करें कि संदेश (कोई रिप्ले)
- आदि के रूप में एक पूर्व में भेजे गए एक ही नहीं है से (प्रामाणिक)
- है से है
कुछ ऐसी चीजें हैं जिन्हें आपको शामिल करने की आवश्यकता है, फिर यह सुनिश्चित करने के लिए कि उपर्युक्त सत्य है। महत्वपूर्ण चीजों में से एक यादृच्छिक मूल्य है।
उदाहरण के लिए, अगर मैं एन्क्रिप्ट एक प्रमुख के साथ "बहुत सारे रहस्य", यह "dWua3hTOeVzO2d9w" के साथ बाहर आ सकते हैं
इस के साथ दो समस्याएं हैं - एक हमलावर और अधिक आसानी से के बाद से एन्क्रिप्शन को तोड़ने के लिए सक्षम हो सकता है मैं पात्रों का एक बहुत सीमित सेट का उपयोग कर रहा हूँ। इसके अलावा, अगर मैं एक ही संदेश दोबारा भेजता हूं, तो यह बिल्कुल वही होगा। आखिरकार, और हमलावर इसे रिकॉर्ड कर सकता था, और संदेश फिर से भेज सकता था और प्राप्तकर्ता को यह नहीं पता था कि मैंने इसे नहीं भेजा है, भले ही हमलावर ने इसे तोड़ दिया न हो।
यदि मैं इसे प्रत्येक बार एन्क्रिप्ट करता हूं तो स्ट्रिंग में कुछ यादृच्छिक कचरा जोड़ता हूं, न केवल यह क्रैक करना कठिन बनाता है, लेकिन प्रत्येक बार एन्क्रिप्टेड संदेश अलग होता है।
उपरोक्त गोलियों में क्रिप्टोग्राफी की अन्य विशेषताएं यादृच्छिकता (बीज मूल्य, दो तरह के प्रमाणीकरण, आदि) के अलावा अन्य साधनों का उपयोग करके तय की जाती हैं लेकिन यादृच्छिकता कुछ समस्याओं का ख्याल रखती है, और अन्य समस्याओं पर मदद करती है।
यादृच्छिकता का एक बुरा स्रोत चरित्र सेट को फिर से सीमित करता है, इसलिए इसे तोड़ना आसान होता है, और यदि अनुमान लगाना आसान है, या अन्यथा सीमित है, तो हमलावर के पास ब्रूट फोर्स अटैक करने का प्रयास करने के लिए कम पथ हैं।
Take plaintext p
Generate random k
Encrypt p with k using symmetric encryption, producing crypttext c
Encrypt k with bob's private key, using asymmetric encryption, producing x
Send c+x to bob
Bob reverses the processes, decrypting x using his private key to obtain k
इस पैटर्न के लिए कारण यह है कि सममित एन्क्रिप्शन असममित एन्क्रिप्शन की तुलना में बहुत तेजी से होता है है:
-Adam