информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Сетевые кракеры и правда о деле ЛевинаЗа кого нас держат?Атака на Internet
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Три миллиона электронных замков... 
 Doom на газонокосилках 
 Умер Никлаус Вирт 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / theory
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
доктор, меня все игнорируют... 26.09.02 12:33  Число просмотров: 2095
Автор: ggg <ggg> Статус: Elderman
<"чистая" ссылка>
...следующий !


разобрался
шифруемое число должно быть меньше n (n=p*q)
т.е. шифровать можно не 512 бит, а только 511

нигде в описаниях RSA я такого ограничения не встречал
<theory>
проблемы с RSA (Cryptlib, который Copyright Peter Gutmann) 25.09.02 16:29  
Автор: ggg <ggg> Статус: Elderman
<"чистая" ссылка>
может я чего то не понимаю, но оно у меня глючит

1) генерирую пару ключей (rsaGenerateKey(); 512 бит)

2) в цикле:
а) генерирую случайные данные (512 бит)
б) шифрую (rsaEncrypt())
в) расшифровываю (rsaDecrypt())
г) сравниваю с тем что было

примерно в 5% случаев результат не совпадает

как такое может быть?


...щас буду пробовать с другой библиотекой
доктор, меня все игнорируют... 26.09.02 12:33  
Автор: ggg <ggg> Статус: Elderman
<"чистая" ссылка>
...следующий !


разобрался
шифруемое число должно быть меньше n (n=p*q)
т.е. шифровать можно не 512 бит, а только 511

нигде в описаниях RSA я такого ограничения не встречал
в OpenSSL та же фигня. в Crypto++ всё работает 25.09.02 21:40  
Автор: ggg <ggg> Статус: Elderman
<"чистая" ссылка>
наверно проблема где то в библиотеке BIGNUM
опять сам с собой разговариваю :) 25.09.02 21:51  
Автор: ggg <ggg> Статус: Elderman
<"чистая" ссылка>
хоть бы кто выразил свои мысли
вдруг что умное появится

ведь обе эти библиотеки очень известны, неужели и правда в них глюк
или это я что то не понимаю
может это кто-нибудь знает... 26.09.02 00:25  
Автор: ggg <ggg> Статус: Elderman
<"чистая" ссылка>
в Crypto++ есть ограничение на размер шифруемого блока (гораздо меньше размера ключей, например не 512 бит, а 22 байта)
и шифруемые данные дополняются другими данными

когда я попытался напрямую засунуть свой блок, то получился эффект как и в cryptlib & openssl (не всегда правильно расшифровывались данные)

разве на вход RSA (в качестве шифруемого текста) можно подавать не любое число ?
я нигде в описаниях RSA не видел ничего об этом
а версии бибок какие? 27.09.02 22:36  
Автор: vaborg <Israel Vaborg> Статус: Elderman
<"чистая" ссылка>
всё свежее 28.09.02 22:24  
Автор: ggg <ggg> Статус: Elderman
<"чистая" ссылка>
я уже разобрался
дело не в реализации

просто шифровать надо не, например, 512 бит, а 511

я потом проверил - глюки были как раз когда превышалось значение n
в обычной реализации все эти библиотеки это или обрабатывают или возвращают ошибку
просто я расковырял их - мне нужен был только RSA - вот они и стали слегка по другому работать :)

почему на один бит меньше - я точно не знаю
я не шарю в этом
но это довольно логично, что после шифрования количество информации не может увеличиваться
а так как число-шифр может быть меньше 2^512-1, то и шифровать надо с запасом меньшее число
Все просто 03.10.02 09:46  
Автор: NickP Статус: Незарегистрированный пользователь
<"чистая" ссылка>
> почему на один бит меньше - я точно не знаю
> я не шарю в этом

Элементарно, Ватсон! Шифрование/дешифрование RSA представляет
собой возведение данных в степень по модулю q. Соответственно если
число превышает q, оно просто обрезается.
Все просто 03.10.02 12:50  
Автор: ggg <ggg> Статус: Elderman
<"чистая" ссылка>
правильно ли я понимаю, что M^e mod n значит, что M возводится в степнь e, а потом обрезается по n ?

если да, то при возведении M в степень, оно же может стать гораздо больше n, даже если сначала было меньше
т.е. в любом случае оно будет обрезаться
Все просто 03.10.02 17:49  
Автор: NickP Статус: Незарегистрированный пользователь
<"чистая" ссылка>
> правильно ли я понимаю, что M^e mod n значит, что M
> возводится в степнь e, а потом обрезается по n ?

Правильно.

> если да, то при возведении M в степень, оно же может стать
> гораздо больше n, даже если сначала было меньше
> т.е. в любом случае оно будет обрезаться

Так-то оно конечно так, но алгоритм на этом и построен. Проблемма не
в том, что он не может обработать число большее n, проблемма в том,
что _на выходе_ не может получиться число больше чем n.
Но если ты например точно знаешь, что шифровалось число большее n,
и после расшифровки к результату просто добавишь n, то должно
получиться то число которое ты шифровал.
дошло :) спасибо 03.10.02 19:35  
Автор: ggg <ggg> Статус: Elderman
<"чистая" ссылка>
1




Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2024 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach