2010-01-08 17 views
12

मैंने एन्क्रिप्शन शुरू करने वाले लोगों के बारे में सुना है और सोचा है कि यह कुछ ऐसा हो सकता है जो मैं चाहूंगा, इसलिए मैंने एक्सओआर की जांच की और इसका कोई अर्थ नहीं उठाया। तो क्या कोई मुझे बता सकता है कि एक्सओआर क्या है?एक्सओआर एन्क्रिप्शन क्या है?

+8

http://en.wikipedia.org/wiki/XOR_cipher – miku

उत्तर

6

एक्सओआर एक तार्किक ऑपरेशन है, विशिष्ट या उच्चारण किया गया है। इसका उपयोग संदेशों को आसानी से और तेज़ करने के लिए किया जा सकता है। आप इस कार्रवाई को यहां के लिए एक सच तालिका देख सकते हैं: http://mathworld.wolfram.com/XOR.html

अर्ध छद्म कोड कार्यान्वयन (http://www.evanfosmark.com/2008/06/xor-encryption-with-python/) के माध्यम से:

#!/usr/bin/env python 

from itertools import izip, cycle 

def xor_crypt_string(data, key): 
    return ''.join(chr(ord(x)^ord(y)) for (x,y) in izip(data, cycle(key))) 

my_data = "Hello. This is a secret message! How fun." 
my_key= "firefly" 

# Do the actual encryption 
encrypted = xor_crypt_string(my_data, key=my_key) 

print encrypted 
print '---->' 

# This will obtain the original data from the encrypted 
original = xor_crypt_string(encrypted, key=my_key) 

print original 

आउटपुट:

.  BY2F 
FRR 
DF$IB 
----> 
Hello. This is a secret message! How fun. 
10

XOR, या 'विशेष या' एक 2 संकार्य तार्किक आपरेशन के रूप में परिभाषित किया गया है:

(a and b) or (not a and not b) 

a b result 
0 0 0 
1 0 1 
0 1 1 
1 1 0 

एन्क्रिप्शन के संबंध में XOR की महत्वपूर्ण विशेषता यह प्रतिवर्ती है है, यानी जहां सी = एक XOR बी, तो आप ए = सी एक्सओआर बी

तो सादे टेक्स्ट ए की एक धारा के लिए, और उसी लंबाई बी की एक कुंजी के लिए वापस प्राप्त कर सकते हैं, आप क्रिप्टोटेक्स्ट सी उत्पन्न कर सकते हैं, और प्राप्तकर्ता को भेज सकते हैं।

प्राप्तकर्ता, जो अपनी तिजोरी में बी की एक प्रति है, सी XOR बी

+0

यदि बी केवल एक बार उपयोग किया जाता है, तो यह एक बार पैड एन्क्रिप्शन है, एकमात्र प्रकार का एन्क्रिप्शन जो सैद्धांतिक रूप से अटूट है। –

24

आप एक चाबी ले, इस तरह के 0101 के रूप में, तो आप उस का उपयोग अपने स्ट्रिंग XOR के लिए करते हैं और ए को पुनर्जीवित कर सकते हैं (बाइनरी में प्रारूप) एक एन्क्रिप्टेड स्ट्रिंग प्राप्त करने के लिए।

0101 XOR <-- key 
1011 <---- original message 
---- 
1110 <-- send message 

आप अपने रिसीवर को 1110 भेजते हैं।

1110 XOR <--- received message 
0101 <-- key 
---- 
1011 <--- original message 
1

XOR 'विशेष या' के लिए कम है: यह रिसीवर है, तो मूल संदेश प्राप्त करने के लिए कुंजी के साथ प्राप्त स्ट्रिंग और यह XORs लेता है। एक एक्सओआर बी सच है यदि ए सच है, या यदि बी सत्य है, लेकिन यदि ए और बी दोनों सत्य नहीं हैं।

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

1

ऐसा लगता है, की इस पद्धति है कि एन्क्रिप्शन को शायद ही कभी सुरक्षित माना जा सकता है। अगर आप किसी भी सामान्य फ़ाइल (पीएनजी, जेपीजी, इत्यादि) को एन्क्रिप्ट करते हैं जहां हेडर अच्छी तरह से जाना जाता है, तो कुंजी आसानी से एन्क्रिप्टेड सामग्री और ज्ञात हेडर से ली जा सकती है।

+1

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

+0

हालांकि, आपको प्राप्तकर्ता को कुंजी को सुरक्षित रूप से प्रेषित करने का एक तरीका ढूंढना होगा - और यदि आप ऐसा कर सकते हैं, तो आप इसके बजाय उस सुरक्षित चैनल का उपयोग करके संदेश भेज सकते थे। (इसलिए असली दुनिया में ओटीपी का ज्यादा उपयोग क्यों नहीं किया जाता है)। – Noah

2

सबसे सरल स्तर पर, एक्सओआर (उच्चारण "अनन्य या") जैसे परिवर्तनीय संचालन foundation of most cryptography बनाते हैं।

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

 
Encrypt a number (210) with a secret "key" (145). 

        210 XOR 145gives you 65 ←-- your "scrambled" result 
             | 
        + now unscramble it + 
        | 
        ↓ 
        65 XOR 145gives you 210 ←-- and back to your original number 

यह एक बहुत rudamentary उदाहरण है। जब आप XOR के साथ संख्याओं (या पाठ या बिट्स के किसी भी पैटर्न) को अनुक्रमित करते हैं, तो आपके पास very basic cipher algorithm है।

+0

वास्तव में * सभी * क्रिप्टोग्राफी का आधार नहीं है क्योंकि ब्लॉक सिफर के कई तरीके हैं जो ईसीबी, ओएफबी और सीएफबी जैसे एकल एक्सओआर नहीं करते हैं। इसके अलावा कोई भी रिवर्सिबल ऑपरेशन एक्सओआर की जगह ले सकता है, जैसे मॉड 256 अतिरिक्त/घटाव एक आम उदाहरण के रूप में। –

+0

मैंने थोड़ी सी पोस्ट को स्पष्ट किया। –

0

एक्सओआर एन्क्रिप्शन का उपयोग cipher block chaining में भी किया जा सकता है। एक्सओआर सीबीसी का उपयोग कई एन्क्रिप्शन कार्यान्वयन के अतिरिक्त के रूप में किया जाता है। एक गूगल कोड परियोजना है कि अपने आप में इस का उपयोग करता है नहीं है, हालांकि XOR अकेले बहुत सुरक्षित नहीं है: http://code.google.com/p/xorencryption/

2

मैं XOR एन्क्रिप्शन बारे में एक ब्लॉग http://programmingconsole.blogspot.in/2013/10/xor-encryption-for-alphabets.html

गणित के अनुसार, XOR एन्क्रिप्शन लिखा/सिफर, additive सिफर है एक एन्क्रिप्शन एल्गोरिथ्म है कि निम्नलिखित सिद्धांतों के अनुसार संचालित:

(A * B) + (!A * !B) 

A B A XOR B 
0 0  0 
1 0  1 
0 1  1 
1 1  0 

XOR ऑपरेटर बस की तरह है और (*) और या (+) ऑपरेटर सिफर हम सिर्फ मूल हासिल करने के लिए कुंजी के साथ सिफर XOR की जरूरत को डिक्रिप्ट करने के लिए पाठ एक्सओआर ऑपरेटर जटिल एन्क्रिप्शन एल्गोरिदम में बेहद आम घटक है। इस तरह की एक एन्क्रिप्शन निरंतर दोहराने वाली कुंजी और आवृत्ति विश्लेषण का उपयोग करके आसानी से टूटा जा सकता है। लेकिन हम प्रत्येक एन्क्रिप्शन को तोड़ने के बाद कुंजी बदलते हैं, इस तरह की एन्क्रिप्शन कंप्यूटेशनल रूप से बहुत कठिन है ऐसे सिफर को स्ट्रीम सिफर कहा जाता है जिसमें प्रत्येक अगली बिट को एक अलग छद्म-यादृच्छिक कुंजी का उपयोग करके एन्क्रिप्ट किया जाता है, इस प्रकार की एन्क्रिप्शन जर्मनों द्वारा उपयोग की जाती थी उनके Lorentz सिफर।

कुंजी सिफर का एक सही मायने में यादृच्छिक * धारा का उपयोग करके सैद्धांतिक रूप से अटूट इसलिए व्यर्थ

मैं देखने के लिए आप की सिफारिश करेंगे है

बीबीसी: कोड ब्रेकर्स Bletchley पार्क नायकों वृत्तचित्र खो

यह आपको क्रिप्टोग्राफी और एन्क्रिप्टेड बिट्स की दुनिया में वास्तविक अंतर्दृष्टि देगा। क्रिप्टोग्राफी कितनी महत्वपूर्ण है? वैसे यह कंप्यूटर के आविष्कार का कारण था।

संबंधित मुद्दे