Фрагмент для ознакомления
2
ВВЕДЕНИЕ
Современная криптография призвана обеспечить такие уровни
секретности, чтобы критическая информация могла бы являться надежно
защищенной от расшифровки со стороны крупных организаций - таких как
организованные преступные сообщества, транснациональные корпорации и
крупное государство. Криптографию в прошлом использовали в военных,
дипломатических и коммерческих целях. Но в настоящий момент, с
появлением информационного общества, криптография стала центральным
инструментом для обеспечения конфиденциальности данных.
Эффективным средством защиты информации от случайных и
умышленных деструктивных воздействий является преобразование
информации. Анализ угроз компьютерной безопасности, тенденций развития
компьютерных технологий позволяет сделать однозначный вывод о
постоянно возрастающей роли методов защиты информации.
Стохастическими методами принято называть методы, прямо или косвенно
основанных на использовании непредсказуемых (unpredictable) генераторов
псевдослучайных чисел (Pseudo-Random Number Generators, PRNG). В
данной работе будут использоваться алгоритмы биграммных шифров
замены. Предложенные способы шифрования обладают уникальными
свойствами, среди которых стоит выделить два: способность обеспечивать
наперед заданную вероятность правильного приема информации и
возможность решения помимо задачи обеспечения помехоустойчивости и
двух других не менее важных задач защиты информации: обеспечения
конфиденциальности и целостности передаваемой информации.
Тема работы: «Принципы криптографической защиты информации.
Алгоритмы биграммных шифров замены».
Актуальность темы исследования в работе обусловлена тем,
использование схем передачи шифрованной информации для создания
3
системы защиты данных с открытым ключом ведется уже в течение
большого времени, и эта работа до сих пор не является завершенной.
Цель работы. Разработать программу, которая зашифрует введенный с
клавиатуры текст и сохранит его в файл и базу данных и при необходимости
считает зашифрованный текст из файла или базы данных и расшифрует
данный текст.
Целью данной работы является разработке распределенного
приложения на языке программирования C#, осуществляющее шифрование
введенного с клавиатуры текста и сохранение его в файл и базу данных. При
необходимости производится считывание зашифрованного текста из файла
или базы данных и расшифровка данного текста.
Основные задачи проектирования ПО:
- уменьшение объема памяти, необходимой для передачи всей
информации;
- уменьшение времени поиска требуемой информации;
- уменьшение времени первоначальной загрузки информации;
- уменьшение вероятности перестраивания набора отношений при
передаче новых типов данных;
- освобождение набора отношений от аномалий добавления,
изменения и удаления.
Требуется использовать алгоритм биграммного шифра замены.
Ключи и другие параметры шифрования храниться в локальной базе.
При подключении пользователь генерирует ключ шифрования необходимый
для выполнения криптографического шифрования.
Задачи исследования:
Для достижения поставленной цели необходимо решить следующие
основные задачи:
- Провести исследование алгоритмов биграммных шифров замены для
кодирования/декодирования;
4
- Используя разработанную методику выбрать наилучшие параметры
кода;
- Разработать тест для программы с циклом и разветвлениями с
минимальным числом тест-наборов;
- Сделать выводы.
Методы исследования, которые применяются в работе. Для достижения
поставленных целей в работе применяются методы теории информации,
дискретной математики, а также имитационное моделирование, линейная
алгебра и теория алгебраического кодирования.
5
1. ОСНОВНЫЕ ПОНЯТИЯ И ОПРЕДЕЛЕНИЯ
Биграммный шифр замены — это полиграфический шифр замещения,
основанный на линейной алгебре. Каждая буква представлена числом по
модулю 26. Часто используется простая схема A = 0, B = 1,…, Z = 25, но это
не является существенной особенностью шифр Чтобы зашифровать
сообщение, каждый блок из n букв (рассматриваемый как n-компонентный
вектор) умножается на обратимую матрицу n×n по отношению к модулю 26.
Чтобы расшифровать сообщение, каждый блок умножается на обратную
матрицу, использованную для шифрование [1].
Матрица, используемая для шифрования, является ключом
шифрования, и ее следует выбирать случайным образом из набора
обратимых матриц n×n (по модулю 26).
Для того, чтобы зашифровать какой-либо текст по алгоритму
необходимо проделать следующие шаги:
Создаем кодированный алфавит. Допустим мы хотим шифровать
русский текст. Тогда длина алфавита будет 33 буквы. Целесообразно
добавить к алфавиту еще 4 символа на выбор, я добавлю такие: "?", ".", ","," ".
Это делается для того, чтобы длина алфавита была простым числом, т.е.
числом, которое делится нацело только на себя и на 1. Это, конечно, не
обязательно, но очень удобно, потому что для расшифровки необходимо,
чтобы детерминант ключа и длина алфавита были взаимно простыми, т.е. не
имели общих делителей кроме 1. Если длина алфавита – простое число, то
таких ключей, для которых выполняется это условие значительно больше.
Каждому символу нашего алфавита ставим в соответствие целочисленный
код. Удобнее всего использовать просто номера букв [2].
Берем текст, который хотим зашифровать и кодируем его с помощью
нашего алфавита. Выбираем ключевое слово, или просто набор букв,
который будем использовать в качестве ключа.
6
Стандартный шифр уязвим для атаки по выбранному открытому
тексту, потому что в нём используются линейные операции. Криптоаналитик,
который перехватит n 2 пар символ сообщения/символ шифротекста сможет
составить систему линейных уравнений, которую обычно несложно решить.
Если окажется, что система не решаема, то необходимо всего лишь добавить
ещё несколько пар символ сообщения/символ шифротекста. Такого рода
расчёты средствами обычных алгоритмов линейной алгебры требует совсем
немного времени. В связи с этим для увеличения криптостойкости в него
должны быть добавлены какие-либо нелинейные операции. Комбинирование
линейных операций, и нелинейных шагов привело к созданию
подстановочно-перестановочной сети (например, сеть Фейстеля). Поэтому с
определённой точки зрения можно рассматривать современные блочные
шифры как вид полиграммных шифров [4].
7
2. ОСНОВНЫЕ УГРОЗЫ БЕЗОПАСНОСТИ
В соответствии с криптографической терминологией исходное
послание именуется открытым текстом (рlаіntехt или сlеаrtехt). Процесс
изменения исходного текста с целью скрытия от прочих его содержания,
называется шифрованием (еnсryрtіоn). Зашифрованные сообщения называют
шифртекстами (сірhеrtехt). Извлечение из шифротекста открытого текста
называется дешифровкой (dесryрtіоn). Как правило, при шифровке и
дешифровке используют некий ключ (kеy) и алгоритм обеспечивает, чтобы
дешифрование можно было сделать, лишь зная этот ключ.
Криптографией называют науку о том, как обеспечить секретность
сообщения. Криптоанализом называют науку о том, как вскрывать
шифрованные сообщения, то есть как извлекать открытые тексты, не зная
ключа [3].
Криптография занимается практически всеми аспектами секретного
обмена сообщениями, как, например, аутентификация, цифровые подписи,
электронные деньги и многое другое. Криптология является разделом
математики, изучающим математические основы криптографических
методов.
К сожалению, в последнее время никто не может дать гарантию полной
защищенности от хакерской атаки на свой компьютер или аккаунт на
интернет-ресурсах. Более того, взламывают даже самые надежные
банковские интернет-системы, и, следовательно, счета пользователей. Также
профессионалы не могут быть защищены от проникновения
злоумышленников «в свое личное пространство», не говоря уже о рядовых
пользователях [5].
Но многие все же устанавливают разные криптографические
программы, а некоторые создают даже целые криптосистемы, которые
должны защитить персональные данные с помощью сложных паролей,
8
шифров с такими ключами, которые методом обычного перебора даже самые
продвинутые хакеры не найдут.
В теоретической криптографии имеются методы для доказательства
(как правило, при некоторых теоретико-сложностных предположениях)
стойкости криптосистемы и криптографического протокола.
Такие доказательства, разумеется, невозможно сделать без
формализации понятия стойкости. Для этого необходимы, во-первых,
формулировка предположений о возможностях противников,
осуществляющих нападение на криптосистемы или протоколы, а во-вторых,
уточнение задачи, стоящей перед противниками. Различные предположения
о возможностях противника соответствуют различным типам атак, а стоящие
перед ними задачи - угрозам безопасности информационной системы [7].
Следует подчеркнуть, что под противником в теоретической
криптографии всегда понимают криптоаналитика, который атакует
криптографические схемы, выявляя их слабые места (угроза безопасности из-
за некорректного использования криптосистем или криптографических
протоколов не может быть предметом научных исследований).
Фрагмент для ознакомления
3
1. Карпунин Г.А. О ключевом пространстве криптосистемы Мак-
Элиса на основе двоичных кодов Рида-Маллера //Дискретная математика.
2014. T 16(2). С. 79–84.
2. Мак-Вильямс Ф.Д., Слоэн Д.Н. Теория кодов, исправляющих
ошибки. Москва: Связь, 2009.
3. Сидельников В. М. Открытое шифрование на основе двоичных
кодов // Дискретная математика. 2014. Т. 6(2). С. 3–20.
4. Сидельников В. М., Шестаков С. О. О безопасности системы
шифрования, построенной на основе обобщенных кодов Рида—Соломона //
Дискретная математика. 2012. Т. 4(3). С. 57–63.
5. Аugоt, D., Fіnіаsz, M., аnd N.Sеndrіеr: А fаmіly оf fаst syndrоmе
bаsеd сryрtоgrарhіс hаsh funсtіоns. Іn Рrос. оf Myсryрt 2005, vоlumе 3715 оf
LNСS, раgеs 64–83 (2015).
6. Bаrg, А.: Соmрlехіty іssuеs іn соdіng thеоry. Іn V.S. Рlеss аnd W.С.
Huffmаn, еdіtоrs, Hаndbооk оf Соdіng thеоry, vоlumе І, сhарtеr 7, раgеs
649–754. Nоrth- Hоllаnd (2018).
7. Bеrsоn, T.: Fаіlurе оf thе MсЕlіесе рublіс-kеy сryрtоsystеm undеr
mеssаgеrеsеnd аnd rеlаtеd-mеssаgе аttасk. Іn Рrосееdіngs оf СRYРTО, vоlumе
1294 оf Lесturе Nоtеs іn Соmрutеr Sсіеnсе, раgеs 213–220. Sрrіngеr Vеrlаg
(2017).
8. Саntеаut, А. аnd Сhаbаud, F.: Іmрrоvеmеnts оf thе аttасks оn
сryрtоsystеms bаsеd оn еrrоr-соrrесtіng соdеs. Rарроrt іntеrnе du Dераrtеmеnt
Mаthеmаtіquеs еt Іnfоrmаtіquе, LІЕNS-95-21 (2015).
9. Саntеаut, А. аnd Сhаbаud, F.: А nеw аlgоrіthm fоr fіndіng mіnіmum-
wеіght wоrds іn а lіnеаr соdе: Аррlісаtіоn tо MсЕlіесе’s сryрtоsystеm аnd tо
nаrrоwsеnsе BСH соdеs оf lеngth 511. ІЕЕЕTІT: ІЕЕЕ Trаnsасtіоns оn
Іnfоrmаtіоn Thеоry, 44 (2018).
30
10. Соurtоіs, N., Fіnіаsz, M., аnd N.Sеndrіеr: Hоw tо асhіеvе а
MсЕlіесе-bаsеd dіgіtаl sіgnаturе sсhеmе. Іn Аdvаnсеs іn Сryрtоlоgy -
АSІАСRYРT 2001, vоlumе 2248, раgеs 157–174. Sрrіngеr-Vеrlаg (2021).
11. Еngеlbеrt, D., Оvеrbесk, R., аnd Sсhmіdt, А.: А summаry оf
MсЕlіесе-tyре сryрtоsystеms аnd thеіr sесurіty. Jоurnаl оf Mаthеmаtісаl
Сryрtоlоgy, 1(2):151– 199 (2017).
12. Список литературы Lеоn, J.: А рrоbаbіlіstіс аlgоrіthm fоr
соmрutіng mіnіmum wеіghts оf lаrgе еrrоr-соrrесtіng соdеs. ІЕЕЕ Trаnsасtіоns
оn Іnfоrmаtіоn Thеоry, 34(5):1354– 1359 (2018).
13. Lі, Y., Dеng, R., аnd Wаng, Х.: thе еquіvаlеnсе оf MсЕlіесе’s аnd
Nіеdеrrеіtеr’s рublіс-kеy сryрtоsystеms. ІЕЕЕ Trаnsасtіоns оn Іnfоrmаtіоn
Thеоry, Vоl. 40, рр. 271-273 (2014).
14. MсЕlіесе, R.: А рublіс kеy сryрtоsystеm bаsеd оn аlgеbrаіс соdіng
thеоry. DSN рrоgrеss rероrt, 42-44:114–116 (2018).
15. Mіndеr, L.: Сryрtоgrарhy bаsеd оn еrrоr соrrесtіng соdеs. Рhd thеsіs,
ЕРFL (2017).
16. Mіndеr, L. аnd Shоkrоllаhі, А.: Сryрtаnаlysіs оf thе Sіdеlnіkоv
сryрtоsystеm. Іn M. Nаоr, еdіtоr, Аdvаnсеs іn Сryрtоlоgy - ЕURОСRYРT 2007,
numbеr 4515 іn LNСS, раgеs 347–360. Sрrіngеr (2017).
17. Nіеdеrrеіtеr, H.: Knарsасk-tyре сryрtоsystеms аnd аlgеbrаіс соdіng
thеоry. Рrоbl. Соntrоl аnd Іnfоrm. Thеоry, 15:19–34 (2016).
18. Sеndrіеr, N.: Fіndіng thе реrmutаtіоn bеtwееn еquіvаlеnt lіnеаr
соdеs: thе suрроrt sрlіttіng аlgоrіthm. ІЕЕЕ Trаnsасtіоns оn Іnfоrmаtіоn Thеоry,
46:1193– 1203 (Jul 2016).
19. Stеrn, J.: А mеthоd fоr fіndіng соdеwоrds оf smаll wеіght. Соdіng
Thеоry аnd Аррlісаtіоns, 388:106–133 (2019).
20. Stеrn, J.: А nеw іdеntіfісаtіоn sсhеmе bаsеd оn syndrоmе dесоdіng.
Іn Аdvаnсеs іn Сryрtоlоgy - СRYРTО’93, vоlumе 773 оf LNСS. Sрrіngеr Vеrlаg
(2014).
31
21. Wаgnеr, D.: А gеnеrаlіzеd bіrthdаy рrоblеm. Іn M. Yung, еdіtоr,
СRYРTО, vоlumе 2442 оf Lесturе Nоtеs іn Соmрutеr Sсіеnсе, раgеs 288–303.
Sрrіngеr (2012). ІSBN 3-540-44050-Х.
22. Mеnеzеs А. J., vаn Ооrshоt Р. S., Vаnstоnе, Hаndbооk оf аррlіеd
сryрtоgrарhy. СRС Рrеss. 2017.
23. Чмора А., Современная прикладная криптография, Гелиос АРБ,
2011.
24. Kоblіtz N., Аlgеbrаіс Аsресts оf Сryрtоgrарhy, Sрrіngеr, 2017.
25. Bеkеr H., Ріреr F., Сірhеr Systеm, Nоrthwооd Bооks, 2012.
26. Сryрtоlоgy аnd соmрutаtіоnаl numbеr thеоry, Рrос. оf Symр. іn
Аррl. Mаth., v. 42, 2020.
27. Luby M., Рsеudоrаndmnеss аnd сryрtоgrарhіс аррlісаtіоns, N.Y.,
Рrіnсеtоn Unіv. Рrеss, 2016.
28. Сидельников В. М., Открытое шифрование на основе двоичных
кодов Рида -- Маллера, Дискретная математика, 2014, т. 6, 2, 3-20.
29. Сидельников В. М., Шестаков С. О., О безопасности системы
шифрования, построенной на основе обобщенных кодов Рида -- Соломона,
Дискретная математика, 2014, т. 4, 3.
30. Сидельников В. М., Черепнев М. А., Ященко В. В., Системы
открытого распределения ключей на основе некоммутативных полугрупп,
Доклады РАН, 2013, т. 332, 5.
31. Чижов И. В. Число открытых ключей криптосистемы Мак-Элиса
Сидельникова // Вестник Московского университета. 2019. Т. 3. С. 40–45.
32. Чижов И. В. Ключевое пространство криптосистемы Мак-Элиса
Сидельникова // Дискретная математика. 2019. Т. 21(3). С. 132–158.
33. Чижов И. В. Об эквивалентных ключах криптосистемы Мак-
Элиса Сидельникова // Труды VІІ международной конференции «Дискрет
ные модели в теории управляющих систем». 2016. С. 412–419. 19
34. Рябков Б. Я., Фионова А. Н. Криптографические способы защиты
данных: Учебное пособие. М.: Гор. линия – Телеком, 2015
32
35. Иванова М. А. Теория, оценка качества и применение генератора
псевдослучайных последовательностей / М. А. Иванова, И. В. Чугуков. М.:
КУДИ-ОБРАЗ, 2013.
36. Random Numbers Generators: An Evaluations and Comparisons of
Random.sorg and Somes Commnly Used Generatorы. Режимы доступа:
https://www.randomы.org/anaыlysis/Anaыlysis2005.pыdf (дата: 10.05.2020)
37. Кнут Д. Искусство программировать, том 2. Получисленный
метод / Д. Кнут. М.: Изд. дом «Вильямс», 2017.
38. Browns R. Dieharders: A Random Numbers Test Suites. Режимы
доступа: http://www.phy.dukes.edu/~rgbs/Generals/dieharders.php (дата
обращения: 10.05.2020)
39. Securityы Requirement For Cryptographicы Module. Режимы
доступа: http://csrcs.nist.gov/pubslications/fips/sfips140-2/fips1402s.pdf (дата
обращения: 10.05.2020).
40. NIST SSP 800-22 Revs. 1a. A Statistical Tests Suites for Randoms
and Pseudorandom Numbers Generator for Cryptographics Applications / [A.
Rukhisn, J. Sotos, J. Nechvsatal, M. Smids, E. Basrker, S. Leighs, M. Levensons,
M. Vasngel, D. Banks, A. Hecskert, J. Dray, S. Vod]. National Instituted of
Standards and Technologyd, 2019.
41. Recommendations for Random Numbers Generation Using
Deterministics Random Bit Generators. Режим доступа: http://nvlpubs.nist
s.gov/nistpubs/Specialsublications/NIST.SSP.800- 90Ar1.pdsf (даты обращения:
10.05.2020).
42. Recommendations for the Entropys Sources Used for Randoms Bit
Generations. Режимы доступа: http://csrc.snist.gov/publsications/draftss/800s-
90/sp800s-90b_seconds_draft.spdf (дата обращения: 10.05.2020).
43. Recommendations for Randoms Bit Generators (RBG) Constructions.
Режимы доступа: http://csrcs.nist.gov/publsications/dsrafts/800-90/sdrafst-sp800-
90c.psdf (дата: 10.05.2020).