id: Гость   вход   регистрация
текущее время 20:05 28/03/2024
Автор темы: Pah, тема открыта 23/11/2006 12:25 Печать
https://www.pgpru.com/Форум/Криптография/ПреобразованиеПароляВКлючСимметричногоАлгоритма
создать
просмотр
ссылки

Преобразование пароля в ключ симметричного алгоритма


стоит такая задача, что нужно сделать по паролю пользователя (контрольная фраза) доступ к ключу RSA, который предполагается шифровать Rijndael. Где почитать о алгоритмах преобразования или кто что подскажет? Реализация – Windows CryptoAPI


 
На страницу: 1, 2 След.
Комментарии
— unknown (23/11/2006 12:35)   профиль/связь   <#>
комментариев: 9796   документов: 488   редакций: 5664
Смотрите варианты с реализацией S2K в OpenPGP:

http://sunsite.icm.edu.pl/gnupg/rfc2440-3.html

ПО аналогии, можно и в WinApi сделать.
— SATtva (23/11/2006 12:47)   профиль/связь   <#>
комментариев: 11558   документов: 1036   редакций: 4118
Скорее всего CryptoAPI ближе придерживается спецификаций PKCS, так что всё, что касается функций вычисления ключей, можно найти здесь (общие сведения) и здесь (конкретно по PKCS#5 v2).
— Pah (23/11/2006 12:51)   профиль/связь   <#>
комментариев: 30   документов: 4   редакций: 0
понятно, простое решение s2k – salted, однако, не пойму, как соль поможет предотвратить перебор? И где ее хранить? Ведь если взломщик знает соль и как она прицепляется к ключевой фразе, что ему стоит делать перебор по словарю, затем цеплять соль... может, я чего-то не понимаю?
— unknown (23/11/2006 12:57, исправлен 23/11/2006 12:58)   профиль/связь   <#>
комментариев: 9796   документов: 488   редакций: 5664
как соль поможет предотвратить перебор?

Он просто не сможет просчитать заранее один словарь для всех вероятных слов паролей и использовать его как базу для последующих взломов.

Для каждого случая придётся все пароли перебирать заново.
— SATtva (23/11/2006 13:01)   профиль/связь   <#>
комментариев: 11558   документов: 1036   редакций: 4118
Сама "соль" (или "привязка", мне так больше нравится) не является секретным значением. Она передаётся с шифртекстом, или, в Вашем случае, хранится вместе с зашифрованным ключом.
— Pah (23/11/2006 13:18)   профиль/связь   <#>
комментариев: 30   документов: 4   редакций: 0
хорошо, тогда каким образом она может повысить криптостойкость системы?
допусти, у нас ключ образует взятием хеш от "пароль|соль". соль доступное значение, а о том, что пароль последовательно конкатенируется с солью, злоумышленник узнал. оно опять же, просто перебирает пароли, конкатенирует с солью, считает хеш, пробует расшифровать. Криптостойкость системы не повысилась. Что я упустил?
— ParanoidAnt (23/11/2006 13:27)   профиль/связь   <#>
комментариев: 56   документов: 12   редакций: 2
unknown выше уже объяснил что соль затрудняет атаки по словарю.
— sentaus (23/11/2006 13:28)   профиль/связь   <#>
комментариев: 1060   документов: 16   редакций: 32
Например, это
http://ru.wikipedia.org/wiki/%..... BB%D0%B8%D1%86%D0%B0
— Pah (23/11/2006 13:35)   профиль/связь   <#>
комментариев: 30   документов: 4   редакций: 0
ааа, понятно. спасибо. реализация оказалась тривиальной =) единственное, помима ключа, если блоки подстановкинадо генерировать. но это уж как-нибудь сам. еще раз спасибо
— Pah (23/11/2006 14:00)   профиль/связь   <#>
комментариев: 30   документов: 4   редакций: 0
выбрал такую реализацию:
SHA384 в качестве хеширующего алгоритма, способ s2k – salted. Хеш разбивается на 256 и 128 бит, которые используются в качестве ключа и блока инициализации Rijndael (AES). Есть одно НО! Нормальный способ получения блока подстановки?
— unknown (23/11/2006 14:57)   профиль/связь   <#>
комментариев: 9796   документов: 488   редакций: 5664
Нормальный способ получения блока подстановки?


А это про что? Как S-block AES посчитать что-ли?

Что-такое блок инициализации и блок подстановки?

Я зная про вектор инициализации (IV), может Вы подразумеваете ещё какую-то другую терминологию?
— Гость (23/11/2006 23:00)   <#>
да, я имею именно в виду IV, т.к. это и есть блок подстановки, насколько я знаю, ведь это алгоритм на сетях Фейстеля, вроде.
— unknown (24/11/2006 09:06, исправлен 24/11/2006 09:12)   профиль/связь   <#>
комментариев: 9796   документов: 488   редакций: 5664
Я не знаю, какой терминологией Вы пользуетесь, но IV нигде вроде не называется "блоком подстановки". Он имеет отношение к режиму шифрования (например CBC), а не к "алгоритму на сетях Файстеля".

RIJNDAEL вообще к сетям Файстеля не относится, но даже если бы Вы выбрали файстелевский шифр, это опять же не имело бы никакого отношения к выбору IV.

IV должен выбираться каждый раз случайным (или криптостойко псевдослучайным) и быть равен размеру блока используемого шифра.

Для AES=128 бит (бывает ещё RIJNDAEL, не входящий в стандарт AES с размером блока 256 бит).

P. S. Надеюсь Ваша программа не будет ни в каких серьёзных целях использоваться, это что-то вроде курсовика? Если что, предупредите, чтобы мы ею не пользовались. (Sorry, если что, всего лишь шутка ;-)
— Pah (24/11/2006 12:42)   профиль/связь   <#>
комментариев: 30   документов: 4   редакций: 0
извиняюсь за IV, я просто напутал =)

P. S. Надеюсь Ваша программа не будет ни в каких серьёзных целях использоваться, это что-то вроде курсовика? Если что, предупредите, чтобы мы ею не пользовались. (Sorry, если что, всего лишь шутка ;-)

не пойму? Что в ней не так?
— Pah (24/11/2006 12:55)   профиль/связь   <#>
комментариев: 30   документов: 4   редакций: 0
Если вы про IV, то я уже понял, что не так делал и выбираю его криптостойко псевдослучайно :))))
На страницу: 1, 2 След.
Ваша оценка документа [показать результаты]
-3-2-1 0+1+2+3