0 / 0 / 0
Регистрация: 21.07.2011
Сообщений: 17

Блочный алгоритм шифрования

11.08.2011, 14:28. Показов 6865. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем доброго времени суток. Данная тема является своего рода представлением моего творения, а точнее курсовой работы по дисциплине Компьютерной безопасности, входе которой я разработал блочный алгоритм и хочу сейчас Вам его показать и выслушать Ваше мнение по поводу него.

Описание алгоритма (взято из описания к программе)

В данной программе используется самодельный алгоритм блочного шифрования. Шифрование происходит блоками по 64 бита. В случае, если файл не кратен 8 байтам(64 бита), последний блок расширяется случайной последовательностью. Величина этого расширения запоминается при шифровании и встраивается в шифрованный файл. При расшифровке последний блок сокращается на соответствующую величину.
В качестве ключа шифрования используется последовательность бит длиной 256. Её пользователь может задать как самостоятельно в виде шестнадцатиричной последовательности, либо воспользоваться генератором псевдослучайных чисел.
В основе самого алгоритма лежит сеть Фейстеля, состоящая из 16 раундов. В начале шифрования каждого блока, исходный блок разбивается на два блока длиной 32 бита. Далее в каждом раунде происходит генерация P-блока на основе соответсвующей раунду части ключа(16 бит). Затем применяется перестановка на левую(L) и правую(R) часть исходного блока. После этого правая часть и результат работы образующей функции F подвергаются операции исключающего ИЛИ(XOR). В конце раунда происходит "обмен частями".
В результате 16 раундов на выходе получается шифрованный блок данных. Для шифрования каждого нового блока данных используется новый ключ, сгенерированный на основе ключа шифрования предыдущего блока и предыдущего открытого блока данных. Генерация нового ключа также происходит на основе генерации P-блоков и последующего их применения к частям старого ключа.

На рисунке 1 представлена схема шифрования одного блока данных:
----------------------------------------------------------------------
Project1.rar - Файл программы.
----------------------------------------------------------------------
Если есть желание, могу дать исходники.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
11.08.2011, 14:28
Ответы с готовыми решениями:

Блочный алгоритм шифрования, который использует только xor
Я только начал учить криптографию в университете, прочитал про абсолютно криптостойкие системы (блокноты). Немного поразмыслил, в голове...

Алгоритм шифрования RC4
Кто-то может человеческим языком объяснить алгоритм шифрования RC4, а также привести исходный код на С# или на Java? А также привести...

Алгоритм блочного шифрования
Здравствуйте, подскажите пожалуйста, может у кого уже было что-то подобное: разработать свой алгоритм блочного шифрования.

14
 Аватар для Olga_
848 / 190 / 18
Регистрация: 01.08.2011
Сообщений: 505
20.08.2011, 08:48
И чем ваш алгоритм лучше стандарта ГОСТ-89?
0
0 / 0 / 0
Регистрация: 21.07.2011
Сообщений: 17
20.08.2011, 12:56  [ТС]
Цитата Сообщение от Olga_ Посмотреть сообщение
И чем ваш алгоритм лучше стандарта ГОСТ-89?
Для Вас может быть и ничем, а для меня тем, что он мой собственный =) И вообще так ли это важно...

Прочитал про тот алгоритм и вроде как там ключ постоянный на каждом блоке, что должно давать одинаковые последовательности шифротекста при одинаковых блоках исходного текста.
0
 Аватар для Olga_
848 / 190 / 18
Регистрация: 01.08.2011
Сообщений: 505
20.08.2011, 18:05
Цитата Сообщение от CooperX Посмотреть сообщение
Для Вас может быть и ничем, а для меня тем, что он мой собственный =) И вообще так ли это важно...

Прочитал про тот алгоритм и вроде как там ключ постоянный на каждом блоке, что должно давать одинаковые последовательности шифротекста при одинаковых блоках исходного текста.
Алгоритм ГОСТ-89 можно использовать в нескольких режимах. Соответственно ключ меняется от блока к блоку во всех режимах, кроме режима ECB.
То, что ключ у вас меняется от блока к блоку это еще не гарантирует надежность, есть масса шифров с таким свойством, но очень легко вскрываемых.
CooperX, никто не принижает ваш алгоритм. Просто если уж вы готовы поделиться им с другими, то подумайте насколько ваш шифр надежен, да и вам пища для размышления.
0
Эксперт С++
 Аватар для grizlik78
2383 / 1667 / 279
Регистрация: 29.05.2011
Сообщений: 3,402
20.08.2011, 18:24
Цитата Сообщение от Olga_ Посмотреть сообщение
Соответственно ключ меняется от блока к блоку во всех режимах, кроме режима ECB.
Строго говоря ключ там от блока к блоку не меняется. Но шифротекст действительно получается разным даже для одинаковых исходных блоков.
0
 Аватар для Olga_
848 / 190 / 18
Регистрация: 01.08.2011
Сообщений: 505
20.08.2011, 18:52
Цитата Сообщение от grizlik78 Посмотреть сообщение
Строго говоря ключ там от блока к блоку не меняется. Но шифротекст действительно получается разным даже для одинаковых исходных блоков.
Как раз то, уважаемый grizlik78, и меняется, а иначе что меняется в режиме гаммирования, как не ключ, который мы накладываем на текст? Да, его изменение зависит от открытого текста, но это и называется изменением ключа Хотя, вопрос в терминологии, не более того

Добавлено через 3 минуты
Спорить о терминологии нет смысла. Но некоторые авторы пишут, что ключ зависит от открытого текста, вот

Добавлено через 4 минуты
Да и что дает изменение (расширение) ключа. Вопрос о надежности AES с длиной ключа 256 бит до сих пор открыт. Есть предположение, что он слабее AES 128 и AES 192, а все из-за алгоритма расширения ключа (или, в терминологии CooperX, изменения ключа)

Добавлено через 1 минуту
Цитата Сообщение от grizlik78 Посмотреть сообщение
Но шифротекст действительно получается разным даже для одинаковых исходных блоков.
Это уже зависит от вектора инициализации.

Добавлено через 1 минуту
Ладно, подумав, все же вы правее меня в данной терминологии - ключ не меняется в ГОСТ-89
0
Эксперт С++
 Аватар для grizlik78
2383 / 1667 / 279
Регистрация: 29.05.2011
Сообщений: 3,402
20.08.2011, 18:58
Ну чтобы предметно спорить, то стоит определиться, о каком режиме идёт речь: CBC (для которого у ГОСТ нет аналога), CFB (в ГОСТ гаммирование с обратной связью) или OFB (в ГОСТ аналогом является режим гаммирования, хотя и с некоторыми отличиями).
Впрочем, во всех режимах алгоритм шифрования работает с одним и тем же 256-битным ключом для каждого блока.
Цитата Сообщение от Olga_ Посмотреть сообщение
а иначе что меняется в режиме гаммирования, как не ключ, который мы накладываем на текст?
Ну вот гамма и меняется.

Добавлено через 1 минуту
Цитата Сообщение от Olga_ Посмотреть сообщение
Ладно, подумав, все же вы правее меня в данной терминологии - ключ не меняется в ГОСТ-89
Да он и в DES не меняется, и в AES Но именно для самой процедуры (за/рас)шифрования
0
 Аватар для Olga_
848 / 190 / 18
Регистрация: 01.08.2011
Сообщений: 505
20.08.2011, 19:04
Цитата Сообщение от grizlik78 Посмотреть сообщение
Ну чтобы предметно спорить, то стоит определиться, о каком режиме идёт речь: CBC (для которого у ГОСТ нет аналога)
Как это нет, да режим сцепления блоков можно в любом блочном шифре применить. Странная у вас формулировочка.

Цитата Сообщение от grizlik78 Посмотреть сообщение
Ну вот гамма и меняется.
А гамма разве не является ключом grizlik78, по поводу терминологии я уже написала, что вы более правее для шифра ГОСТ.

Добавлено через 1 минуту
Цитата Сообщение от grizlik78 Посмотреть сообщение
Да он и в DES не меняется, и в AES Но именно для самой процедуры (за/рас)шифрования
Ну про AES вы уже заблуждаетесь, там расширение ключа происходит
0
Эксперт С++
 Аватар для grizlik78
2383 / 1667 / 279
Регистрация: 29.05.2011
Сообщений: 3,402
20.08.2011, 19:18
Цитата Сообщение от Olga_ Посмотреть сообщение
Как это нет, да режим сцепления блоков можно в любом блочном шифре применить. Странная у вас формулировочка.
Да я разве спорю? Просто сам стандарт ГОСТ28147-89 описывает 4 режима работы шифра, причём для шифрования предназначены три: простая замена, гаммирование и гаммирование с обратной связью. Никто, конечно, не запрещает и CBC использовать, и режим счётчика. Только это будут уже нестандартные режимы для ГОСТ.

Цитата Сообщение от Olga_ Посмотреть сообщение
А гамма разве не является ключом
Ну разве что для шифра гаммирования Я про блочный шифр.
Цитата Сообщение от Olga_ Посмотреть сообщение
Ну про AES вы уже заблуждаетесь, там расширение ключа происходит
Не думаю, что заблуждаюсь. Расширение ключа производится внутри цикла шифрования, чтобы получать разные раундовые ключи. Но для каждого блока они получаются из одного и того же ключа шифрования. Раундовые ключи есть и в ГОСТ, хотя и получаются из ключа шифрования примитивным образом.

Добавлено через 2 минуты
Цитата Сообщение от CooperX Посмотреть сообщение
Для шифрования каждого нового блока данных используется новый ключ, сгенерированный на основе ключа шифрования предыдущего блока и предыдущего открытого блока данных.
Вообще это интересный момент. Правильно ли я понимаю, что любая ошибка (случайная или пренамеренная) в процессе передачи приводит к невозможности расшифровать всю последующую часть шифротекста?
0
 Аватар для Olga_
848 / 190 / 18
Регистрация: 01.08.2011
Сообщений: 505
20.08.2011, 19:44
Цитата Сообщение от grizlik78 Посмотреть сообщение
Да я разве спорю?
А мы собственно о чем спорим?

Добавлено через 3 минуты
Цитата Сообщение от grizlik78 Посмотреть сообщение
Ну разве что для шифра гаммирования Я про блочный шифр.
А собственно гамму можно получать по разному, и с помощью блочного шифра.
0
0 / 0 / 0
Регистрация: 21.07.2011
Сообщений: 17
21.08.2011, 02:38  [ТС]
Цитата Сообщение от grizlik78 Посмотреть сообщение
Вообще это интересный момент. Правильно ли я понимаю, что любая ошибка (случайная или пренамеренная) в процессе передачи приводит к невозможности расшифровать всю последующую часть шифротекста?
Если для каждого блока данных требуется свой ключ, то получается да - необходимо иметь весь текст целиком.
0
0 / 0 / 0
Регистрация: 13.04.2013
Сообщений: 4
13.11.2013, 00:52
Можно пожалуйста исходники и Рисунок если можно?
Очень интересна эта тема.
0
0 / 0 / 0
Регистрация: 20.01.2015
Сообщений: 1
20.01.2015, 12:23
CooperX, пришлите пожалуйста исходник. Очень нужен.
0
0 / 0 / 0
Регистрация: 18.06.2013
Сообщений: 7
30.03.2016, 10:09
CooperX, пришлите пожалуйста исходник. Очень нужен. yenimailim@mail.ru
0
0 / 0 / 0
Регистрация: 01.03.2017
Сообщений: 1
01.03.2017, 11:19
CooperX, Здравствуйте, уважаемый Cooper можете ли выслать мне исходный код Блочный алгоритм шифрования на этот мэйл: Sarsenbekov.sultan.s7@mail.ru буду очень благодарен!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
01.03.2017, 11:19
Помогаю со студенческими работами здесь

Алгоритм шифрования графических данных
Какой можно составить план к курсовой "Разработка алгоритма шифрования графических данных"?

Алгоритм шифрования Lucifer. Литература
Всем доброго времени суток! Никак не могу найти стоящий источник информации по алгоритму шифрования Lucifer. Интересует именно сам...

LameCrypt - алгоритм шифрования и плагин к DarkCrypt
Пример написания (реализации) симметричного криптоалгоритма плюс пример плагина блочного шифра к DarkCrypt. Сам алгоритм очень прост...

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

Симметричный блочный алгоритм: RC6
С алгоритмом RC6, можно ознакомиться на википедии. У меня возникло недопонимание в реализации данного алгоритма. На этапе расширения...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

Новые блоги и статьи
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2. Задача: показать затраченные материалы за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом. В качестве. . .
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определённом условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru