16

人々が暗号化を始めていると聞いたことがありますが、それは私が望むものかもしれないと思ったので、XOR をチェックしましたが、意味がわかりません。誰かが XOR とは何かを説明できますか?

4

8 に答える 8

27

0101 などのキーを取得し、それを使用して文字列を (バイナリ形式で) XOR し、暗号化された文字列を作成します。

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

受信者に 1110 を送信します。その受信者は、受信した文字列を取得し、それをキーで XOR して元のメッセージを取得します。

1110 XOR <--- received message
0101 <-- key
----
1011 <--- original message
于 2010-01-08T17:38:43.177 に答える
11

XOR、または「排他的 OR」は、次のように定義される 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 の重要な機能は、元に戻せることです。つまり、C = A XOR B の場合、A = C XOR B を使用して A を取得できます。

したがって、平文 A のストリームと同じ長さの鍵 B に対して、暗号文 C を生成し、それを受信者に送信できます。

B のコピーを金庫に持っている受信者は、C XOR B を実行して A を再生できます。

于 2010-01-08T17:38:04.970 に答える
6

XOR は論理演算であり、排他的またはと発音されます。メッセージを簡単かつ迅速に暗号化するために使用できます。この操作の真理値表は、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.
于 2010-01-08T17:40:00.910 に答える
2

最も単純なレベルでは、XOR (「排他的 OR」と発音) などの可逆演算が、ほとんどの暗号化の基礎を形成します。

XOR は、特定のビットのオンとオフを切り替えられるトグル スイッチのように機能します。数値 (ビットのパターン) を「スクランブル」したい場合は、それを「秘密の」数値と XOR します。そのスクランブルされた番号を同じ秘密の番号で再度 XOR すると、元の番号が返されます。

番号 (210) を秘密の「キー」 (145) で暗号化します。

                  210 XOR 145 65 を返します ←-- 「スクランブルされた」結果
                                      | |
                  +   今それを解読   +
                  | |
                  ↓
                  65   XOR 145 210 ←-- となり、元の数に戻ります

これは非常に初歩的な例です。XOR を使用して一連の数字 (またはテキストまたはビットの任意のパターン) を暗号化すると、非常に基本的な暗号アルゴリズムが得られます。

于 2010-01-08T17:41:46.710 に答える
1

XOR は「排他的または」の略です。XOR B は、A が真の場合、または B が真の場合に真ですが、A と B の両方が真の場合は真ではありません。

A XOR B XOR A は B と等しいため、暗号化に使用されます。つまり、A を暗号化と復号化の両方のキーとして使用できる場合です。

于 2010-01-08T17:40:00.443 に答える
1

この暗号化方法は安全とは言い難いことに注意してください。ヘッダーがよく知られている一般的なファイル (PNG、JPG など) を暗号化すると、暗号化されたコンテンツと既知のヘッダーからキーを簡単に取得できます。

于 2010-01-08T17:41:19.207 に答える
0

XOR暗号化は、暗号ブロック連鎖でも使用できます。XOR CBCは、多くの暗号化実装への追加として使用されます。XORだけではあまり安全ではありませんが、これを単独で利用するgoogle codeプロジェクトがあります:http ://code.google.com/p/xorencryption/

于 2010-01-08T18:07:14.490 に答える