С Новым годом! Форум программистов, компьютерный форум, киберфорум
Алгоритмы
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/35: Рейтинг темы: голосов - 35, средняя оценка - 4.86
0 / 0 / 0
Регистрация: 21.07.2011
Сообщений: 17

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

11.08.2011, 14:28. Показов 6724. Ответов 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
2382 / 1666 / 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
2382 / 1666 / 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
2382 / 1666 / 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
Ответ Создать тему
Новые блоги и статьи
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути Сочетание глобально распределённой вычислительной мощности и инновационных. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru