[Информационная безопасность, Криптография, Алгоритмы] Группа разработчиков создала постквантовый алгоритм шифрования
Автор
Сообщение
news_bot ®
Стаж: 6 лет 9 месяцев
Сообщений: 27286
С появлением достаточно мощных квантовых компьютеров, многие криптографические алгоритмы становятся уязвимыми и перестают обеспечивать необходимую секретность данных. Есть один алгоритм, который будет работать и в постквантовую эру - шифр Вернама или одноразовые шифроблокноты. Но у него есть существенный недостаток - длина ключа должна быть равна количеству шифруемых данных.ВведениеДля связи шифроблокноты мало пригодны - необходимо хранить большой объем случайных данных, обновлять шифроблокноты по мере исчерпания. Хотя в наше время не проблема для каких-нибудь дипломатических миссий иметь хранилище с ключами на пару петабайт, но хлопоты на организацию защиты хранилища не избавят от проблемы исчерпания ключей. Для хранения Новый способ шифрования позволяет увеличить продолжительность использования предварительно созданных ключей при помощи генератора случайных чисел. В идеальных условиях даже двух бит хватит для бесконечного использования.ОпределенияШифроблокнот - предварительно сгенерированные случайные данные.Поток сообщений - зашифрованные данные, передаваемые последовательно или параллельно между собеседниками.Базовый ключ - очередная часть шифроблокнота, используемая для шифрования первого сообщения в потоке.Ключ сессии - ключ шифрования следующего сообщения в потоке, создается при помощи ГПСЧ по мере необходимости.Поле данных - полезная нагрузка, шифруемая ключом предыдущей сессии.АлгоритмМинимальное количество передаваемой информации определяет блок данных в сообщении, это может быть один бит или байт, или гигабайт, это зависит от конкретной реализации. Ключ должен быть длинной два блока, т. к. он шифрует блок данных и первую часть следующего ключа, вторая часть ключа шифруется первой частью предыдущего. Благодаря тому, что для ключей используются случайные данные, расшифровать настоящий ключ не получится, ибо все возможные комбинации равновероятны.
Алиса и Боб создают общий шифроблокнот.Чтобы передать сообщение, Алиса берет символ из шифроблокнота в качестве базового ключа, создает ключ для следующей сессии, шифрует данные и ключ базовым ключем. Передает шифротекст Бобу.Боб расшифровывает сообщение, используя тот же символ из шифроблокнота, получает данные и ключ сессии. После этого шага шифроблокнот не используется.Боб использует ключ сессии вместо базового ключа, создает ключ следующей сессии, шифрует его и данные текущим ключом, отправляет шифротекст Алисе. Алиса повторяет те же действия, что и Боб.Шифроблокнот с базовыми ключами используетя для инициализации сеанса или восстановлении связи при обрыве.Алиса и Боб могут использовать индивидуальные сессионные ключи (т. е. генерировать их только для своего потока сообщений), тогда они могут передавать данные асинхронно, не ожидая ответа собеседника с новым ключом.Для контроля целостности шифротекста при передаче, в поле данных можно передавать биты, указывающие на текущую сессию и информацию, компактно описывающую зашифрованные данные.ПримерСамый простой случай для однобитного сообщения.Алиса и Боб создают одинаковые шифроблокноты, первый ключ [10]Алиса хочет послать Бобу бит [1]. Генерирует два случайных бита для ключа следующей сессии [00]. Шифрует данные и ключ базовым ключом.101 xor 100 => 001Получает шифротекст [001] и отправляет его Бобу.Боб берет первый ключ из своего блокнота (тот же, что у Алисы) и расшифровывает полученное сообщение.101 xor 001 => 100, 00Теперь Боб хочет отправить Алисе бит [1]. Создает ключ следующей сессии [01]. Берет ключ, полученный из сообщения Алисы и шифрует им свое сообщение.000 xor 101 => 101Дальше алгоритм повторяется по такой же схеме.Более сложный пример. Зашифруем слово habr. Каждое слово это один байт в кодировке ASCII.h = 68, a = 61, b = 62, r = 72В качестве базового ключа пусть будет [01 23]Создаем для первого сообщения в качестве полезной нагрузки случайные данные [B6]Создаем ключ сессии, ГПСЧ выдает [5C E4]Шифруем...012301 xor b65ce4 => b77fe5Ключ текущей сессии известен, теперь генерируем ключ для следующей [b4 cd], начинаем шифровать сообщение.5CE45C xor 68B4CD => 345091Повторяем предыдущий шаг, генератор выдал новый ключ [A4 E8]B4CDB4 xor 61A4E8 => D5695CПродолжаем операции для оставшихся символов с ключами сессии [E0 9A] и [B0 51]. И получаем следующую последовательность в качестве результата.B77FE5345091D5695CC6083EC26382Достаточно удалить первые два байта и даже имея доступ к шифроблокноту расшифровать исходное сообщение не получится из-за того, что каждый ключ зашифрован предыдущим.А вот интересное сообщение, зашифрованное тем же способом, в качестве базового ключа [7B D0]33A7C016D2519BF4EBDF241ACED9541CCEDCD77108B6BD7858475C19B9475A4D5B85415DEE28A02F1F5250C04C55398F6CB561469291654E74BA19D98C104440913755
===========
Источник:
habr.com
===========
Похожие новости:
- [Информационная безопасность, 1С] Учет умер, да здравствует учет
- [Информационная безопасность, Разработка под iOS, Разработка под Android, Исследования и прогнозы в IT] Исследование: Android отправляет в Google в 20 раз больше данных, чем iOS — в Apple
- [Информационная безопасность, DevOps] Валидные сертификаты и DNS для сервисов в локальных сетях без удостоверяющего центра
- [Информационная безопасность, Криптография, История IT, Научно-популярное, Старое железо] Криптофронт Второй Мировой Войны, часть 2
- [Информационная безопасность, IT-компании] Как я получил награду Facebook по баунти-программе дважды (перевод)
- [Информационная безопасность, Спортивное программирование, IT-инфраструктура] Открыт набор атакующих и защитников для участия в кибербитве The Standoff на Positive Hack Days
- [Python, Алгоритмы, Машинное обучение, Искусственный интеллект] DialoGPT на русском
- [Настройка Linux, Информационная безопасность] Linux Sandbox
- [Информационная безопасность, Научно-популярное] Что делать, если украли смартфон
- [Информационная безопасность, Машинное обучение] Атаки на компьютерное зрение
Теги для поиска: #_informatsionnaja_bezopasnost (Информационная безопасность), #_kriptografija (Криптография), #_algoritmy (Алгоритмы), #_shifrovanie (шифрование), #_shifr_vizhenera (шифр виженера), #_kriptograficheskie_algoritmy (криптографические алгоритмы), #_kriptografija (криптография), #_informtsionnaja_bezopasnost (информционная безопасность), #_algoritm (алгоритм), #_pervoe_aprelja (первое апреля), #_informatsionnaja_bezopasnost (
Информационная безопасность
), #_kriptografija (
Криптография
), #_algoritmy (
Алгоритмы
)
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 20:03
Часовой пояс: UTC + 5
Автор | Сообщение |
---|---|
news_bot ®
Стаж: 6 лет 9 месяцев |
|
С появлением достаточно мощных квантовых компьютеров, многие криптографические алгоритмы становятся уязвимыми и перестают обеспечивать необходимую секретность данных. Есть один алгоритм, который будет работать и в постквантовую эру - шифр Вернама или одноразовые шифроблокноты. Но у него есть существенный недостаток - длина ключа должна быть равна количеству шифруемых данных.ВведениеДля связи шифроблокноты мало пригодны - необходимо хранить большой объем случайных данных, обновлять шифроблокноты по мере исчерпания. Хотя в наше время не проблема для каких-нибудь дипломатических миссий иметь хранилище с ключами на пару петабайт, но хлопоты на организацию защиты хранилища не избавят от проблемы исчерпания ключей. Для хранения Новый способ шифрования позволяет увеличить продолжительность использования предварительно созданных ключей при помощи генератора случайных чисел. В идеальных условиях даже двух бит хватит для бесконечного использования.ОпределенияШифроблокнот - предварительно сгенерированные случайные данные.Поток сообщений - зашифрованные данные, передаваемые последовательно или параллельно между собеседниками.Базовый ключ - очередная часть шифроблокнота, используемая для шифрования первого сообщения в потоке.Ключ сессии - ключ шифрования следующего сообщения в потоке, создается при помощи ГПСЧ по мере необходимости.Поле данных - полезная нагрузка, шифруемая ключом предыдущей сессии.АлгоритмМинимальное количество передаваемой информации определяет блок данных в сообщении, это может быть один бит или байт, или гигабайт, это зависит от конкретной реализации. Ключ должен быть длинной два блока, т. к. он шифрует блок данных и первую часть следующего ключа, вторая часть ключа шифруется первой частью предыдущего. Благодаря тому, что для ключей используются случайные данные, расшифровать настоящий ключ не получится, ибо все возможные комбинации равновероятны. Алиса и Боб создают общий шифроблокнот.Чтобы передать сообщение, Алиса берет символ из шифроблокнота в качестве базового ключа, создает ключ для следующей сессии, шифрует данные и ключ базовым ключем. Передает шифротекст Бобу.Боб расшифровывает сообщение, используя тот же символ из шифроблокнота, получает данные и ключ сессии. После этого шага шифроблокнот не используется.Боб использует ключ сессии вместо базового ключа, создает ключ следующей сессии, шифрует его и данные текущим ключом, отправляет шифротекст Алисе. Алиса повторяет те же действия, что и Боб.Шифроблокнот с базовыми ключами используетя для инициализации сеанса или восстановлении связи при обрыве.Алиса и Боб могут использовать индивидуальные сессионные ключи (т. е. генерировать их только для своего потока сообщений), тогда они могут передавать данные асинхронно, не ожидая ответа собеседника с новым ключом.Для контроля целостности шифротекста при передаче, в поле данных можно передавать биты, указывающие на текущую сессию и информацию, компактно описывающую зашифрованные данные.ПримерСамый простой случай для однобитного сообщения.Алиса и Боб создают одинаковые шифроблокноты, первый ключ [10]Алиса хочет послать Бобу бит [1]. Генерирует два случайных бита для ключа следующей сессии [00]. Шифрует данные и ключ базовым ключом.101 xor 100 => 001Получает шифротекст [001] и отправляет его Бобу.Боб берет первый ключ из своего блокнота (тот же, что у Алисы) и расшифровывает полученное сообщение.101 xor 001 => 100, 00Теперь Боб хочет отправить Алисе бит [1]. Создает ключ следующей сессии [01]. Берет ключ, полученный из сообщения Алисы и шифрует им свое сообщение.000 xor 101 => 101Дальше алгоритм повторяется по такой же схеме.Более сложный пример. Зашифруем слово habr. Каждое слово это один байт в кодировке ASCII.h = 68, a = 61, b = 62, r = 72В качестве базового ключа пусть будет [01 23]Создаем для первого сообщения в качестве полезной нагрузки случайные данные [B6]Создаем ключ сессии, ГПСЧ выдает [5C E4]Шифруем...012301 xor b65ce4 => b77fe5Ключ текущей сессии известен, теперь генерируем ключ для следующей [b4 cd], начинаем шифровать сообщение.5CE45C xor 68B4CD => 345091Повторяем предыдущий шаг, генератор выдал новый ключ [A4 E8]B4CDB4 xor 61A4E8 => D5695CПродолжаем операции для оставшихся символов с ключами сессии [E0 9A] и [B0 51]. И получаем следующую последовательность в качестве результата.B77FE5345091D5695CC6083EC26382Достаточно удалить первые два байта и даже имея доступ к шифроблокноту расшифровать исходное сообщение не получится из-за того, что каждый ключ зашифрован предыдущим.А вот интересное сообщение, зашифрованное тем же способом, в качестве базового ключа [7B D0]33A7C016D2519BF4EBDF241ACED9541CCEDCD77108B6BD7858475C19B9475A4D5B85415DEE28A02F1F5250C04C55398F6CB561469291654E74BA19D98C104440913755 =========== Источник: habr.com =========== Похожие новости:
Информационная безопасность ), #_kriptografija ( Криптография ), #_algoritmy ( Алгоритмы ) |
|
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 20:03
Часовой пояс: UTC + 5