Страница 1 из 2
Стойкость RAS-шифрования
Добавлено: 08.05.2016 17:11:47
shyub
В криптографии существует понятие "Стойкость шифра" - экономические и временные затраты на расшифровку перехваченного сообщения (разумеется, без ключа). Стойкость RAS-ключа длиной 1024 бита оценивается в 1 млн. $США и временными затратами в 1 год. В сети нашёл библиотеку, позволяющую без особых сложностей на Лазарусе осуществлять шифрование (расшифрование) и генерировать ключи любой длины:
Код: Выделить всё
http://www.submanifold.be/triade/GInt/gint.html
. Написал небольшой тестовый пример и некоторые вещи вызывают у меня подозрение в заявленной стойкости данного метода. Дело в том, что при шифровании одного и того же сообщения получается один и тот же код. Т.е. в отличии от других методов ключ в процессе работы себя не модернизирует. Следовательно при перехвате нескольких последовательно переданных сообщений и, особенно, если они относительно большого размера и в них есть какая-то закономерность (заголовок, дата, должность и т.п.), то у заинтересованной стороны возрастают шансы прочитать сообщение. Для этого абсолютно не требуется "взламывать ключ". Выполняется статистический анализ повторяемости знаков (для каждого разговорного языка есть такая статистика).
Хотелось бы услышать мнение форумчан: на сколько можно доверять RAS-шифрованию и обеспечит ли оно защиту коммерческих интересов компании?
Re: Стойкость RAS-шифрования
Добавлено: 08.05.2016 19:58:13
Снег Север
shyub писал(а):Выполняется статистический анализ повторяемости знаков
Для RAS это вам ничего не даст - из-за сложности вычисления обратной функции для преобразования исходных байтов.
Re: Стойкость RAS-шифрования
Добавлено: 08.05.2016 22:50:58
shyub
Снег Север, спасибо за ответ!
Меня смущает тот факт, что процедура RSAEncrypt(Открый_текст, Открытый_ключ, Модуль, Буффер_для_зашифрованного_текста); для шифрования сообщений на протяжении какого-то времени использует одни и те же ключевые данные. Если бы для каждого сообщения они обновлялись, то - всё нормально. На сколько я знаком с другими методами, то там либо для каждого сообщения вырабатывается свой ключ, либо в процессе шифрования модернизируется сам ключ и для очередного сообщения он уже другоё, чем был для предыдущего. Собственно это и вызывает недоверие...
Re: Стойкость RAS-шифрования
Добавлено: 09.05.2016 06:34:16
Снег Север
В этом методе шифрования с одним и тем же ключом один и тот же байт исходного сообщения будет преобразован в разные байты зашифрованного, для разных сообщений.
Re: Стойкость RAS-шифрования
Добавлено: 09.05.2016 10:54:35
kazalex
Re: Стойкость RAS-шифрования
Добавлено: 09.05.2016 12:01:20
resident
shyubПровокатор?
Пару дней назад писали открыто данные в файл. Я намекнул про шифрование.
viewtopic.php?f=13&t=11094Теперь видите ли публичный ключ чего-то там не обеспечивает.
shyub писал(а):для шифрования сообщений на протяжении какого-то времени использует одни и те же ключевые данные
В моем сообщении там вы увидели только половину.
shyub писал(а):на сколько можно доверять RAS-шифрованию
Абсолютно в вашем случае при 1024, ИМХО.
shyub писал(а):обеспечит ли оно защиту коммерческих интересов компании?
shyub писал(а):т.е. какой-нибудь “доброжелатель” может подойти
У вас компьютеры для сбора данных голой жопой выставлены на проходной двор, а вы о какой-то защите в общем говорите.
Re: Стойкость RAS-шифрования
Добавлено: 09.05.2016 19:47:01
shyub
Абсолютно в вашем случае при 1024
А какая часть ключа должна быть 1024 бита?
Например: формирую 8 случайных 64-х битовых чисел с учётом рекомендаций
https://exelab.ru/art/?action=view&id=136, преобразовываю их при помощи FGIntRandom1() в 8 случайных 96 битовых числа. Из 4-х чисел получаю случайное простое
p и аналогично
q, которые имеют разрядность по 384 бита. Далее получаю
n (1568 бит), открытый ключ
e (192 бита) и закрытый ключ
d (1568 бита).
Так какая часть ключа должна быть 1024 бита?
Re: Стойкость RAS-шифрования
Добавлено: 09.05.2016 23:45:29
resident
Черт его знает, сколько там на самом деле бит, я доверился автору библиотеки, пишет что 1024, значит так и должно быть. Ключи генерируются 15 секунд.
Использовал библиотеку Fundamentals Code Library. Устанавливать ничего не надо, работает сама по себе.
Там есть примеры (внизу модулей) и даже несколько реализаций RSA.
Нужна ли вам эта паранойя с отрытым ключом? Когда я доделал, то понял, что больше никогда. Мало кому известное, мало кем тестированное и как оно себя покажет через месяц или в следующих версиях Лазаруса? У вас вот уже сейчас строки получаются одинаковые. А захотите сменить язык, и ничего не выйдет. Уже гвоздями прибиты к этим библиотекам. Верный вариант - OpenSSL, но его я запустить не смог.
А BlowFish и Base64 уже встроены в Лазарус. От любопытных хватило бы и их. В качестве пароля, например, сегодняшняя дата, если у вас посуточная выгрузка - каждый день новый пароль

Да и то это никому не надо, я бы сделал постоянный пароль. И не надо мучиться, все решение в одну строчку.
Re: Стойкость RAS-шифрования
Добавлено: 10.05.2016 07:53:02
shyub
Скачал
Fundamentals Code Library https://sourceforge.net/projects/fundementals/files/Fundamentals4/, буду разбираться. Однако во всём русскоязычном сообществе нашёл только 2 упоминания о этой библиотеке: ваше
http://freepascal.ru/forum/viewtopic.php?f=1&t=10434&p=87402&hilit=Fundamentals+Code+Library#p87402 и
http://forum.ru-board.com/topic.cgi?forum=33&topic=10740&start=260 , где некий
Anjin_Kazawa пишет:"
Fundamentals Code Library Из того что проверил, генератор примитивов для RSA глючный, в итоге расшифровать, то что зашифровано не возможно. Заставить его нормально работать мне не удалось. tplockbox справился на ура
http://tplockbox.sourceforge.net".
Спасибо за совет по поводу BlowFish. Вот ссылка по использованию этого метода в Lazarus-е (на русском языке):
http://rucode.3dn.ru/publ/kriptografija/obshhee/lazarus_blowfish/14-1-0-10
Re: Стойкость RAS-шифрования
Добавлено: 10.05.2016 12:25:13
resident
shyub писал(а):где некий Anjin_Kazawa
Вот и нашелся единственный тестер, о чем я и говорю.
А OpenSSL - это вся планета и вереница языков.
shyub писал(а):Вот ссылка по использованию этого метода в Lazarus-е
BlowFish обычный поток шифруется и все.
У него там интересней другое:
"Lazarus - Шифруем и Расшифровываем RSA по средствам OpenSSL"
http://rucode.3dn.ru/publ/lazarus/opens ... l/15-1-0-6Но у меня так и не получилось запустить.
Код: Выделить всё
procedure DoLoadOpenSSL;
var
hlib: TLibHandle;
begin
hlib := LoadLibrary(DLLSSLName + '.so');
PEM_write_bio_RSAPrivateKey :=
TPEM_write_bio_RSAPrivateKey(GetProcAddress(hlib, 'PEM_write_bio_RSAPrivateKey'));
if PEM_write_bio_RSAPrivateKey = nil then
ShowMessage('');
PEM_write_bio_RSAPublicKey :=
TPEM_write_bio_RSAPublicKey(GetProcAddress(hlib, 'PEM_write_bio_RSAPublicKey'));
if PEM_write_bio_RSAPublicKey = nil then
ShowMessage('');
end;
Что это за '.so'? (С ней hlib = 0). У меня Windows, а это наверное для Линукса? Я убрал её, вроде теперь стало hlib = 1899626496. И все равно последующие операторы не проходят и PEM_write_bio_RSAPrivateKey и PEM_write_bio_RSAPublicKey = nil.
Re: Стойкость RAS-шифрования
Добавлено: 10.05.2016 14:34:12
pupsik
Что это за '.so'?
- '.dll'. Т.е. попробуйте:
Re: Стойкость RAS-шифрования
Добавлено: 10.05.2016 16:24:56
shyub
Re: Стойкость RAS-шифрования
Добавлено: 10.05.2016 17:17:49
resident
shyub писал(а):Посмотрите вот эту ссылку
Посмотрел.
Re: Стойкость RAS-шифрования
Добавлено: 12.05.2016 17:29:48
resident
shyubКак ваши эксперименты?
Благодаря Графу, завелся пример от RuCode.
И что?
В коде ставлю
и ключи генерятся мгновенно, а такой длины не могут генерироваться мгновенно. Это первое. Второе - почему-то ключи всегда начинаются с одинаковой комбинации букв "MI..".
Сама OpenSSL по-любому работает, а вот эта обертка неизвестно что делает. Да, она кодирует и раскодирует. Только что и как мне неизвестно.
з.ы. Пробовал копировать ключи из файлов ключей Putty в файлы ключей программы - не хочет загружать.
з.з.ы. Не нужен мне этот RSA по большому счету. Но если припрет, то уж буду лучше Fundamentals использовать, так хоть ключи генерятся долго.
з.з.з.ы. Что касается Хабра и статьи, так там Делфи, а на неё у меня денег нет.
Re: Стойкость RAS-шифрования
Добавлено: 13.05.2016 08:45:31
runewalsh
Почитай про лавинный эффект. Результат шифрования неотличим от шума, никакая статистика повторяемости неприменима.