Я слышал о том, что люди начинают шифрование и думают, что это может быть что-то, что я хотел бы, поэтому я проверил XOR и не могу понять. Так может кто-нибудь объяснить мне, что такое XOR?
Что такое шифрование XOR?
Ответ 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/