ГЕНИЙ БЕЗ НАГРАДЫ
Клод Элвуд Шеннон(1916–2001) был одним из величайших научных деятелей XX в. Получив образование по специальности «электротехника» в Мичиганском университете и Массачусетском технологическом институте, он работал математиком в лаборатории компании «Белл», где занимался исследованиями по криптографии и теории коммуникации. Его научный вклад настолько велик, что он считается одним из основоположников теории информации, но поскольку его работы были на стыке математики и информационных технологий, он так и не получил самой престижной среди ученых Нобелевской премии.
* * *
Допустим, что на другом конце сообщение будет получено в виде 1010110. Заметим, что такая комбинация нулей и единиц не входит в число возможных кодов и, следовательно, является ошибкой при передаче. В попытке исправить ошибку система сравнивает каждую цифру с набором цифр всех возможных кодов, чтобы найти наиболее вероятную альтернативу. Для этого система проверяет, какие из цифр представляют собой ошибку, следующим образом.
Ошибочное слово (1010110) отличается от другого слова (1000110) одной цифрой. Так как эта разница наименьшая, система предложит получателю этот второй, исправленный вариант. Аналогичный принцип использует программа контроля правописания текстового редактора. При обнаружении слова, которое не содержится в ее внутреннем словаре, программа предлагает ряд близких альтернатив.
Количество позиций, в которых соответствующие символы двух слов (понимаемых как последовательность символов) различны, называется расстоянием между двумя последовательностями. Этот метод обнаружения и исправления ошибок был предложен американцем Ричардом Хэммингом (1915–1998), современником Клода Шеннона.
В теории информации, как и в любой другой области, одно дело — обнаружить возможные ошибки, и совсем другое — исправить их. В шифровании, как в последнем примере, если имеется только один кандидат с наименьшим расстоянием, проблема достаточно проста. Пусть t— минимальное количество раз, когда единица появляется в последовательности цифр (исключая последовательность, где все нули), тогда:
Если t— нечетное, мы можем исправить (t— 1)/2 ошибок.
Если t— четное, мы можем исправить ( t— 2)/2ошибок.
Если наша цель заключается только в обнаружении ошибок, максимальным количеством ошибок, которые мы можем обнаружить, будет I— 1. В языке из 16 символов, описанном выше, t= 3, значит, наш метод способен обнаружить 3–1 = 2 ошибки и исправить — (3–1): 2 = 1 — одну ошибку.
* * *
КРИПТОГРАФИЯ ТРЕТЬЕГО ПОКОЛЕНИЯ
В 1997 г. был введен протокол для надежной передачи информации с помощью беспроводных сетей под названием WEP (сокращение от Wired Equivalent Privacy). Этот протокол включает алгоритм шифрования RC4 с двумя типами кодирования 5 и 13 ASCII-символов соответственно. Мы имеем дело, таким образом, с кодированием 40 или 104 битов или, другими словами, 10 или 26 шестнадцатеричных символов:
5 ASCII-символов = 40 битов = 10 шестнадцатеричных символов;
13 ASCII-символов — 104 битов = 26 шестнадцатеричных символов.
Провайдер подключения предоставляет коды, хотя пользователь может, в принципе, их изменить. До установления связи компьютер запрашивает ключ. В следующем диалоговом окне мы видим сообщение об ошибке при запросе WEP-ключа с указанием его длины в битах, ASCII- и шестнадцатеричных символах:
На самом деле реальные ключи длиннее. Используя ключ, выбранный пользователем, алгоритм RC4 генерирует новый с большим количеством битов, который и используется для шифрования передаваемых данных. Это — криптография с открытым ключом, и о ней будет более подробно рассказано в пятой главе. Пользователь, который желает поменять ключ, должен помнить, что ключ из десяти шестнадцатеричных символов более надежен, чем ключ из пяти букв и цифр, хотя битовый размер у них одинаковый. Однако очевидно, что слово james легче запомнить, чем его шестнадцатеричный эквивалент «6A616D6573».
Читать дальше