security - हैशिंग और एन्क्रिप्शन एल्गोरिदम के बीच मौलिक अंतर




encryption hash (8)

मैं हैश और एन्क्रिप्शन एल्गोरिदम के बीच बहुत भ्रम देखता हूं और मैं इसके बारे में कुछ और विशेषज्ञ सलाह सुनना चाहता हूं:

  1. हैश बनाम एन्क्रिप्शन का उपयोग कब करें

  2. क्या हैश या एन्क्रिप्शन एल्गोरिदम अलग करता है (एक सैद्धांतिक / गणितीय स्तर से) यानी हैश को अपरिवर्तनीय बनाता है (इंद्रधनुष के पेड़ की सहायता के बिना)

यहां कुछ समान SO प्रश्न हैं जो मैं जितना विस्तार कर रहा था उतना विस्तार नहीं किया:

Obfuscation, हैशिंग, और एन्क्रिप्शन के बीच क्या अंतर है?
एन्क्रिप्शन और हैशिंग के बीच अंतर


एन्क्रिप्शन एन्क्रिप्शन का उद्देश्य डेटा को गुप्त रखने के लिए डेटा को बदलना है (किसी को एक गुप्त पाठ भेजना जो उन्हें केवल पढ़ने में सक्षम होना चाहिए, इंटरनेट के माध्यम से पासवर्ड भेजना)।

प्रयोज्यता पर ध्यान केंद्रित करने के बजाय लक्ष्य यह सुनिश्चित करना है कि डेटा भेजने को गुप्त रूप से भेजा जा सके और यह केवल उस उपयोगकर्ता द्वारा देखा जा सके जिसे आपने भेजा था।

यह डेटा को अद्वितीय पैटर्न में बदलने के दूसरे प्रारूप में एन्क्रिप्ट करता है, इसे गुप्त कुंजी से एन्क्रिप्ट किया जा सकता है और उन उपयोगकर्ताओं को जो गुप्त कुंजी रखते हैं, प्रक्रिया को उलटा करके संदेश देख सकते हैं। उदाहरण के लिए (एईएस, ब्लोफिश, आरएसए)

एन्क्रिप्शन बस इस FhQp6U4N28GITVGjdt37hZN की तरह दिख सकता है

हैशिंग तकनीकी रूप से हम इसे एक आर्बिटरी इनपुट लेते हैं और एक निश्चित लंबाई स्ट्रिंग का उत्पादन कर सकते हैं।

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

यदि हैश गलत है और हैश के साथ मेल नहीं खाता है तो हम किसी भी जानकारी को नहीं देख सकते हैं। जैसे (MD5, SHA .....)


  1. हैश का उपयोग करें जब आपको केवल एक ही रास्ता तय करना होगा। उदाहरण के लिए, किसी सिस्टम में पासवर्ड के लिए, आप हैशिंग का उपयोग करते हैं क्योंकि आप केवल यह सत्यापित करेंगे कि उपयोगकर्ता द्वारा दर्ज किया गया मान हैशिंग के बाद, आपके भंडार में मान से मेल खाता है। एन्क्रिप्शन के साथ, आप दो तरीकों से जा सकते हैं।

  2. हैशिंग एल्गोरिदम और एन्क्रिप्शन एल्गोरिदम केवल गणितीय एल्गोरिदम हैं। तो उस सम्मान में वे अलग नहीं हैं - यह सब सिर्फ गणितीय सूत्र हैं। अर्थात् बुद्धिमान, हालांकि, हैशिंग (एक तरफा) और एन्क्रिप्शन (दो-तरफा) के बीच बहुत बड़ा अंतर है। हैश अपरिवर्तनीय क्यों हैं? क्योंकि वे इस तरह से डिजाइन किए गए हैं, क्योंकि कभी-कभी आप एक तरफा ऑपरेशन चाहते हैं।


एक हैश फ़ंक्शन को रोटी की रोटी पकाने के समान माना जा सकता है। आप इनपुट (आटा, पानी, खमीर, आदि ...) के साथ शुरू करते हैं और हैश फ़ंक्शन (मिश्रण + बेकिंग) लगाने के बाद, आप आउटपुट के साथ समाप्त होते हैं: रोटी का एक रोटी।

दूसरी तरफ जाना असाधारण मुश्किल है - आप वास्तव में रोटी को आटा, पानी, खमीर में अलग नहीं कर सकते हैं - उनमें से कुछ बेकिंग प्रक्रिया के दौरान खो गया था, और आप कभी नहीं बता सकते कि कितना पानी या आटा या खमीर का उपयोग किया गया था एक विशेष रोटी, क्योंकि उस जानकारी को हैशिंग फ़ंक्शन (उर्फ ओवन) द्वारा नष्ट कर दिया गया था।

इनपुट के कई अलग-अलग रूप सैद्धांतिक रूप से समान रोटी का उत्पादन करेंगे (उदाहरण के लिए 2 कप पानी और खमीर के 1 टीबीपी बिल्कुल उसी रोटी का उत्पादन करते हैं जैसे 2.1 कप पानी और खमीर के 0.9tsbp), लेकिन उन रोटी में से एक को दिया गया है, आप नहीं बता सकते वास्तव में इनपुट के कॉम्बो ने इसे कैसे बनाया।

दूसरी तरफ, एन्क्रिप्शन को एक सुरक्षित जमा बॉक्स के रूप में देखा जा सकता है। जो भी आप वहां डालते हैं, वह वापस आ जाता है, जब तक आपके पास उस कुंजी के साथ होता है जिसके साथ इसे पहले स्थान पर बंद कर दिया गया था। यह एक सममित ऑपरेशन है। एक कुंजी और कुछ इनपुट देखते हुए, आपको एक निश्चित आउटपुट मिलता है। आउटपुट, और एक ही कुंजी को देखते हुए, आप मूल इनपुट वापस ले लेंगे। यह 1: 1 मैपिंग है।


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

कई हैश फ़ंक्शन वास्तव में एन्क्रिप्शन एल्गोरिदम (या एन्क्रिप्शन एल्गोरिदम के प्राइमेटिव्स) का उपयोग करते हैं। उदाहरण के लिए, SHA-3 उम्मीदवार Skein प्रत्येक ब्लॉक को संसाधित करने के लिए अंतर्निहित विधि के रूप में थ्रीफ़िश का उपयोग करता है। अंतर यह है कि सिफरटेक्स्ट के प्रत्येक ब्लॉक को रखने के बजाय, वे विनाशकारी हैं, निश्चित रूप से एक निश्चित लंबाई में एक साथ विलय कर दिया


जब डेटा संचारित करने के लिए सुरक्षा की बात आती है अर्थात दो तरह के संचार आप एन्क्रिप्शन का उपयोग करते हैं। सभी एन्क्रिप्शन के लिए एक कुंजी की आवश्यकता होती है

जब प्राधिकरण की बात आती है तो आप हैशिंग का उपयोग करते हैं। हैशिंग में कोई कुंजी नहीं है

हैशिंग में डेटा (बाइनरी या टेक्स्ट) की कोई मात्रा होती है और डेटा के लिए चेकसम का प्रतिनिधित्व करने वाले निरंतर-लंबाई हैश बनाता है। उदाहरण के लिए, हैश 16 बाइट्स हो सकता है। विभिन्न हैशिंग एल्गोरिदम विभिन्न आकार के हैंश उत्पन्न करते हैं। आप स्पष्ट रूप से हैश से मूल डेटा को फिर से नहीं बना सकते हैं, लेकिन आप डेटा को फिर से देख सकते हैं यह देखने के लिए कि क्या हैश मान उत्पन्न होता है या नहीं। एक तरफा यूनिक्स-आधारित पासवर्ड इस तरह से काम करते हैं। पासवर्ड को हैश मान के रूप में संग्रहीत किया जाता है, और सिस्टम पर लॉग ऑन करने के लिए, आपके द्वारा टाइप किया गया पासवर्ड हैश किया जाता है, और हैश मान वास्तविक पासवर्ड के हैश के विरुद्ध तुलना की जाती है। यदि वे मेल खाते हैं, तो आपने सही पासवर्ड टाइप किया होगा

हैशिंग अपरिवर्तनीय क्यों है:

हैशिंग उलटा नहीं है क्योंकि इनपुट-टू-हैश मैपिंग 1-से-1 नहीं है। एक ही हैश मान पर दो इनपुट मानचित्र होने के कारण आमतौर पर "हैश टकराव" के रूप में जाना जाता है। सुरक्षा उद्देश्यों के लिए, "अच्छे" हैश फ़ंक्शन के गुणों में से एक यह है कि टकराव व्यावहारिक उपयोग में दुर्लभ हैं।


मेरा एक लाइनर ... आम तौर पर साक्षात्कारकर्ता नीचे जवाब चाहता था।

हैशिंग एक तरीका है। आप अपने डेटा / स्ट्रिंग को हैश कोड से कनवर्ट नहीं कर सकते हैं।

एन्क्रिप्शन 2 तरीका है - यदि आपके पास कुंजी है तो आप एन्क्रिप्टेड स्ट्रिंग को फिर से डिक्रिप्ट कर सकते हैं।


हैशिंग और एन्क्रिप्शन / डिक्रिप्शन तकनीकों का मूल अवलोकन है।

hashing:

यदि आपके पास फिर से कोई सादा पाठ है तो आपको हैश टेक्स्ट से एक ही सादा पाठ नहीं मिल सकता है । बस, यह एक तरफा प्रक्रिया है।

एन्क्रिप्शन और डिक्रिप्शन:

यदि आप किसी कुंजी के साथ किसी भी सादा पाठ को फिर से एन्क्रिप्ट करते हैं तो आप उसी (सममित) / diffrent (asymentric) कुंजी के साथ एन्क्रिप्टेड टेक्स्ट पर डिक्रिप्शन करके एक ही सादा पाठ प्राप्त कर सकते हैं

अद्यतन: संपादित प्रश्न में उल्लिखित बिंदुओं को संबोधित करने के लिए।

1. हैश बनाम एन्क्रिप्शन का उपयोग कब करें

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

अगर आप कहते हैं कि किसी को भेजने का संदेश है तो एन्क्रिप्शन अच्छा है। आप संदेश को कुंजी के साथ एन्क्रिप्ट करते हैं और प्राप्तकर्ता मूल संदेश वापस पाने के लिए (या शायद एक अलग) कुंजी के साथ डिक्रिप्ट करता है। credits

2. क्या हैश या एन्क्रिप्शन एल्गोरिदम अलग करता है (एक सैद्धांतिक / गणितीय स्तर से) यानी हैश को अपरिवर्तनीय बनाता है (इंद्रधनुष के पेड़ की सहायता के बिना)

मूल रूप से हैशिंग एक ऐसा ऑपरेशन है जो जानकारी खो देता है लेकिन एन्क्रिप्शन नहीं । आइए हम आसानी से समझने के लिए सरल गणितीय तरीके में अंतर देखें, निश्चित रूप से दोनों में इसमें दोहराए गए पुनरावृत्ति के साथ अधिक जटिल गणितीय ऑपरेशन है

एन्क्रिप्शन / डिक्रिप्शन (रिवर्सिबल):

अतिरिक्तता :

4 + 3 = 7  

इसे जोड़ों में से एक को जोड़कर घटाकर घटाया जा सकता है

7 - 3 = 4     

गुणा :

4 * 5 = 20  

इसे उत्पादकों और कारकों में से किसी एक द्वारा विभाजित करके उलट किया जा सकता है

20 / 4 = 5    

तो, यहां हम मान सकते हैं कि जोड़ों में से एक / कारक एक डिक्रिप्शन कुंजी है और परिणाम (7,20) एक भ्रमित पाठ है।

हैशिंग (रिवर्सिबल नहीं):

मॉडुलो डिवीजन :

22 % 7 = 1   

इसे उलट नहीं किया जा सकता है क्योंकि विभाजक (या इसके विपरीत) का पुनर्गठन करने के लिए आप कोई भी ऑपरेशन नहीं कर सकते हैं।

क्या आप '?' कहां भरने के लिए एक ऑपरेशन पा सकते हैं है?

1  ?  7 = 22  
1  ?  22 = 7

तो हैश फ़ंक्शंस में समान गणितीय गुणवत्ता मॉड्यूलो डिवीजन के रूप में होती है और जानकारी खो देती है।

credits


सममित एन्क्रिप्शन:

सममित एन्क्रिप्शन को साझा कुंजी या साझा गुप्त एन्क्रिप्शन के रूप में भी संदर्भित किया जा सकता है। सममित एन्क्रिप्शन में, ट्रैफिक को एन्क्रिप्ट और डिक्रिप्ट करने के लिए दोनों की एक कुंजी का उपयोग किया जाता है।

विषम एन्क्रिप्शन:

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

सममित एन्क्रिप्शन की तुलना में, असममित एन्क्रिप्शन एक उच्च कम्प्यूटेशनल बोझ लगाता है, और बहुत धीमा हो जाता है। इस प्रकार, यह आमतौर पर पेलोड डेटा की सुरक्षा के लिए नियोजित नहीं है। इसकी बजाय, इसकी प्रमुख ताकत एक गैर-सुरक्षित माध्यम (उदाहरण के लिए, इंटरनेट) पर एक सुरक्षित चैनल स्थापित करने की क्षमता है। यह सार्वजनिक कुंजी के आदान-प्रदान द्वारा पूरा किया जाता है, जिसका उपयोग केवल डेटा एन्क्रिप्ट करने के लिए किया जा सकता है। पूरक निजी कुंजी, जिसे कभी साझा नहीं किया जाता है, का उपयोग डिक्रिप्ट करने के लिए किया जाता है।

hashing:

अंत में, हैशिंग क्रिप्टोग्राफिक सुरक्षा का एक रूप है जो एन्क्रिप्शन से अलग है। जबकि एन्क्रिप्शन एक दो चरण प्रक्रिया है जो पहले एन्क्रिप्ट करने के लिए उपयोग की जाती है और फिर एक संदेश डिक्रिप्ट करती है, हैशिंग एक संदेश को एक अपरिवर्तनीय निश्चित-लंबाई मान, या हैश में नियंत्रित करता है। नेटवर्किंग में देखा जाने वाला सबसे आम हैशिंग एल्गोरिदम MD5 और SHA-1

यहां और पढ़ें: http://packetlife.net/blog/2010/nov/23/symmetric-asymmetric-encryption-hashing/





cryptography