Подтвердить что ты не робот

Что такое шифрование XOR?

Я слышал о том, что люди начинают шифрование и думают, что это может быть что-то, что я хотел бы, поэтому я проверил XOR и не могу понять. Так может кто-нибудь объяснить мне, что такое XOR?

4b9b3361

Ответ 1

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.

Ответ 2

вы берете ключ, например 0101, затем вы используете его для XOR вашей строки (в двоичном формате) для достижения зашифрованной строки.

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

Вы отправляете 1110 в приемник. Этот приемник затем принимает полученную строку и XOR с ключом для получения исходного сообщения:

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

Ответ 3

XOR, или 'exclusive или' является логической операцией 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 и ключа той же длины B вы можете сгенерировать криптотекст C и отправить его получателю.

Получатель, у которого есть копия B в своем сейфе, может делать C XOR B и восстанавливать A.

Ответ 4

На простейшем уровне обратимые операции, такие как XOR (произносится как "исключающее ИЛИ" ), образуют основание большинства криптографий.

XOR действует как тумблер, в котором вы можете включать и выключать определенные биты. Если вы хотите "скремблировать" число (образец битов), вы XOR его с "секретным" номером. Если вы возьмете этот скремблированный номер и XOR снова с тем же секретным номером, вы вернете исходный номер.

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

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

Это очень рудиментарный пример. Когда вы шифруете последовательность чисел (или текст или любой образец битов) с помощью XOR, у вас есть очень простой алгоритм шифрования.

Ответ 5

Я написал блог о шифровании XOR http://programmingconsole.blogspot.in/2013/10/xor-encryption-for-alphabets.html

Математически шифрование/шифрование XOR - это аддитивный шифр, алгоритм шифрования, который работает в соответствии со следующими принципами:

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

 A  B  A XOR B
 0  0     0
 1  0     1
 0  1     1
 1  1     0
Оператор

xor аналогичен оператору AND (*) и OR (+) Чтобы расшифровать шифр, нам просто нужно XOR шифровать ключ, чтобы восстановить исходный текст. Оператор XOR является чрезвычайно распространенным компонентом в сложных алгоритмах шифрования. Такое шифрование можно легко разбить, используя постоянный повторяющийся ключ и используя частотный анализ.  Но мы меняем ключ после того, как каждое шифрование нарушает такое шифрование,  такой шифр называется потоковым шифром, в котором каждый следующий бит зашифровывается с использованием другого псевдослучайного ключа, такое шифрование использовалось немцами в их шифровании Лоренца.

Используя действительно случайный * поток ключа, шифр теоретически является нерушимым, поэтому непригодным для использования

Я бы рекомендовал вам смотреть

BBC: Нарушители кода Bletchley Parks потеряли героев документального фильма

Это даст вам реальную информацию о мире криптографии и зашифрованных битов. Насколько важна криптография? Ну, это была причина для изобретения компьютеров.

Ответ 6

XOR не подходит для 'exclusive' или '. XOR B истинно, если A истинно, или если B истинно, но нет, если оба A и B истинны.

Он используется для криптографии, поскольку A XOR B XOR A равен B - поэтому, если вы можете использовать A как ключ для шифрования и дешифрования.

Ответ 7

Следует отметить, что этот метод шифрования вряд ли можно считать безопасным. Если вы шифруете какой-либо общий файл (PNG, JPG и т.д.), Где заголовок хорошо известен, ключ может быть легко получен из зашифрованного контента и известного заголовка.

Ответ 8

Шифрование XOR также может использоваться в цепочке блоков шифрования. XOR CBC используется как дополнение ко многим реализациям шифрования. Существует проект кода google, который использует это сам по себе, хотя сам XOR не очень безопасен: http://code.google.com/p/xorencryption/