КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Лемма 2.1
Пример 2.4 Подсчет числа совпадений Рассмотрим шифртекст, полученный при шифровании шифром Виженера с ключом открытого текста на английском языке. Основой взлома шифра Виженера является определение длины ключа. При проведении анализа будем предполагать, что источник открытых текстов генерирует отдельные буквы, причем вероятность появления каждой буквы задана в табл. 1.1 и не зависит от предшествующего текста или буквы (см. пример 1.1). Кроме того, предположим, что буквы из ключа представляют собой независимые случайные величины, равномерно распределенные на множестве (т.е. вероятность того, что окажется некоторой наперед заданной буквой, равна 1/26). Обозначим через и подстроки строки, состоящие из крайних левых символов и, соответственно, из крайних правых символов, т.е. и. Затем подсчитаем количество совпадений символов строк и, т.е. таких координат, что. В лемме 2.1 будет показано, что математическое ожидание доли этих совпадений (т.е. их количества, деленного на, — длину строки) равно, если делит, и равно, если не делит. Приведем пример того, как можно использовать эту разницу в математических ожиданиях для определения длины неизвестного ключа. Рассмотрим криптограмму
С помощью функций StringTake, StringLength, Characters и Table пакета "Mathematica" легко вычислить количество совпадений символов строк и для каждого значения:
ciphertext = "ubsyvkmhvyrrtsbbcrdsndwrtshxmbufrmxgabnvmirceweruca mlyzbrvfwivvmlyzwapsryogsslechbgcubsvyczqrcwrmhvcxgo oyvcydspomtqfpyqkgbcmerucadlcaflrsuqjrbhceqesfcehuoq mdstorcdoymeqqwaglgovggsmdabbigztbbqyfwbxwmgfpowgzty eilosrkgfahuovqfogswruqnvpwfvrnmpqqgsslatgrmqubsvycz qrswcjdeowqqroihqdspdibffnxwgztbbqyfwbxus"; L = StringLength[ciphertext]; Table[N[Count[Characters[StringTake[ciphertext, i]] - Characters[StringTake[ciphertext, -i]], 0]/i,1], {i, L - 20, L – 1}] {0.03,0.04,0.08,0.02,0.05,0.04,0.04,0.03,0.06,0.07,0.06,0.04,0.02,0.05,0.08,0.04,0.05,0.02,0.01,0.05}
Наибольшие величины оказались в позициях этого списка с номерами и, а это показывает, что длина ключа равна. И на самом деле, при шифровании был использован шестибуквенный ключ. Это можно проверить с помощью следующего аналога шифрования Виженера из примера 2.3:
SubTwoLetters[a_, b_]:= FromCharacterCode[ Mod[(ToCharacterCode[a]-97)-(ToCharacterCode[b]-97),26]+97]
ciphertext = "ubsyvkmhvyrrtsbbcrdsndwrtshxmbufrmxgabnvmircewerucamly zbrvfwivvmlyzwapsryogsslechbgcubsvyczqrcwrmhvcxgooyv cydspomtqfpyqkgbcmerucadlcaflrsuqjrbhceqesfcehuoqmds torcdoymeqqwaglgovggsmdabbigztbbqyfwbxwmgfpowgztyeil osrkgfahuovqfogswruqnvpwfvrnmpqqgsslatgrmqubsvyczqrs wcjdeowqqroihqdspdibffnxwgztbbqyfwbxus"; key = "monkey"; plaintext = ""; Do [plaintext = plaintext <> SubTwoLetters[StringTake[ciphertext, { i}], StringTake[key, { Mod[i - 1, StringLength[key]] + 1} ]], { i, 1, StringLength[ciphertext]} ]; plaintext informationtheorytreatstheunidirectionalikformationchannelbywhichaninfotmationsourceinfluencesstatisticallyareceivercommunpcationtheoryhoweverdescribesthemoregeneralcaseinwhichtwoormoreinformationsourcesinfluenceeachotherstatisticallythedirectionofthisinfluenceisexpressedbydsrectedtransinformationqu
Пусть шифртекст получен при шифровании открытого текста шифром Виженера с ключом длины. Пусть текст порожден источником открытых текстов из примера 1.1. Иначе говоря, буквы в представляют собой независимые случайные величины, распределение вероятностей которых определяется в соответствии с табл. 1.1. Кроме того, пусть буквы из ключа — это независимые случайные величины, равномерно распределенные на множестве (т.е. вероятность того, что окажется некоторой наперед заданной буквой, равна 1/26). Тогда для каждой пары, (2.1) Доказательство. Если делится на, то тогда и только тогда, когда. Это непосредственно следует из формулы (2.1), поскольку. Таким образом,
Если не делится на, то по формуле (2.1) тогда и только тогда, когда. Из неравенства следует, что совпадает с с вероятностью 1/26. Отсюда . Понятно, что чем больше длина криптограммы, тем легче определить длину ключа по долям совпадении символов в парах строк и для различных.
Дата добавления: 2013-12-12; Просмотров: 355; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |