यदि आप डेटा एन्क्रिप्ट करते हैं तो आपको खुद से पूछना होगा कि इसे डिक्रिप्ट करेगा। यदि आप असममित एन्क्रिप्शन सिस्टम (उदा। आरएसए) का उपयोग करते हैं तो एन्क्रिप्शन सार्वजनिक कुंजी का उपयोग करता है और डिक्रिप्शन संबंधित निजी कुंजी का उपयोग करता है; "असममितता" इस तथ्य से आती है कि निजी कुंजी को सार्वजनिक कुंजी से पुनः संयोजित नहीं किया जा सकता है (हालांकि दोनों कुंजी गणितीय रूप से एक साथ जुड़े हुए हैं)।
असममित एन्क्रिप्शन ओवरहेड होता है। पहली टिप्पणी यह है कि इस तरह के एन्क्रिप्शन में इसमें कुछ यादृच्छिक हिस्सा होना चाहिए, क्योंकि हर कोई एन्क्रिप्ट कर सकता है (सार्वजनिक कुंजी है, हाँ, सार्वजनिक): अगर एन्क्रिप्शन प्रक्रिया निर्धारित है, तो कोई भी सभी संभावित एसएसएन एन्क्रिप्ट कर सकता है (वहां से कम हैं उनमें से अरब, जो एक आधुनिक कंप्यूटर के लिए वास्तव में एक छोटी संख्या है) और एन्क्रिप्टेड मूल्यों से मेल खाते हैं। इसलिए, एन्क्रिप्शन के दौरान कुछ यादृच्छिक जोड़ा जाना चाहिए, और एन्क्रिप्टेड एसएसएन सादे टेक्स्ट एसएसएन से बड़ा है।
ज्ञात असममित एन्क्रिप्शन सिस्टम गणितीय संरचनाओं का उपयोग करते हैं जिनकी अपनी लागत होती है। असल में, आरएसए एन्क्रिप्शन सिस्टम के लिए, "पर्याप्त पर्याप्त" कुंजी के साथ, एक एन्क्रिप्टेड संदेश में कम से कम 128 बाइट्स की लंबाई होगी। कुछ एन्क्रिप्शन सिस्टम बेहतर करते हैं; अकादमिक शोध के अच्छी तरह से चलने वाले पथों पर चिपके रहते हुए, मैं इसे 41 बाइट्स या तो (एनआईएसटी के -163 अंडाकार वक्र पर एल-गामल के साथ) कर सकता था। छोटा कठिन लगता है।
तो यह कोई आश्चर्य की बात नहीं है कि किसी दिए गए डेटाबेस सिस्टम में डिफ़ॉल्ट रूप से ऐसी सुविधा शामिल नहीं होगी।
आपकी समस्या के लिए, आप पहली बार परिभाषित करना चाहिए (और लिखने), के रूप में स्पष्ट रूप से आप कर सकते हैं के रूप में:
- क्या डेटा जो आप की रक्षा करना चाहते हैं
- जो डेटा
- कौन है आदानों डेटा को वापस पढ़ने के लिए
और फिर केवल आपको खुद से पूछना चाहिए कि उसके लिए एन्क्रिप्शन एक उचित उपकरण है या नहीं। एन्क्रिप्शन अच्छा होता है जब अनुमानित हमलावर कच्चे, संग्रहीत डेटा पर अपना हाथ ले सकता है। इसका मतलब है कि हमलावर ने ऑपरेटिंग सिस्टम सुरक्षा को छोड़ दिया है। उस बिंदु पर, जो भी ऑपरेटिंग सिस्टम जानता है, हमलावर भी जानता है। यदि डेटाबेस को मशीन पर होस्ट किया जाता है और एक इंटरफेस होता है जिसके माध्यम से डिक्रिप्ट एसएसएन प्राप्त किया जा सकता है, तो वह मशीन "डेटा" कैसे प्राप्त करेगी, और हमलावर भी करता है ... दूसरी तरफ, यदि मेजबान मशीन ऑपरेटिंग सिस्टम को पर्याप्त लचीला माना जाता है, फिर एन्क्रिप्शन की आवश्यकता नहीं होती है।
डेटाबेस पर सममित एन्क्रिप्शन एक कमजोर समस्या का समाधान कर सकता है, जिसमें हमलावर को बाद में की प्रतिलिपि मिलती है। होस्ट सिस्टम सममित एन्क्रिप्शन कुंजी जानता है, लेकिन यह केवल रैम में जानता है। हार्डडिस्क चोरी करने वाले एक हमलावर के पास वह कुंजी नहीं होगी।
क्या आप ** सुनिश्चित हैं ** आपको एसएसएन स्टोर करने की आवश्यकता है? क्या आप वास्तव में अपने कंधों पर इस विशाल कानूनी देयता चाहते हैं? – ceejayoz
मैं सबसे अच्छा कर रहा हूं जो मैं नहीं कर सकता। लेकिन यह एक लाभ खुली नामांकन प्रणाली होगी, और यदि आप एक नया आश्रित जोड़ते हैं तो एसएसएन को आवश्यक जानकारी है। –
यह समझ में आता है। बस यह सुनिश्चित करना कि यह ऐसी स्थिति नहीं है जहां पिछले चार अंकों या एक तरफा हैश की तरह कुछ पर्याप्त होगा। – ceejayoz