На главную

On-line справка по Win32 API

Написать письмо
БЕСПЛАТНАЯ ежедневная online лотерея! Выигрывай каждый день БЕСПЛАТНО!
Список всех статей A-B-C-D-E-F-G-H-I-J-K-L-M-N-O-P-Q-R-S-T-U-V-W-X-Y-Z | Скачать Вниз

Key Derivation Sample



This data was generated using the Microsoft RSA Base Provider. Your session key length and salt length may be different, but the basic process should be the same.

Let's assume that an application has a password ("1134-kelp") that it wants to derive a session key from. It would first hash the password with the CryptHashData function, in this case specifying the MD5 hash algorithm. The following hash value is generated and held internal to the CSP.

0x00000000 73 40 e6 e2 74 b8 ea 39 s@..t..9
0x00000008 93 95 aa 29 d6 38 b5 2a ...).8.*


The application would then call the CryptDeriveKey function in order to create a session key, in this case an RC4 stream cipher key. The CSP uses the first five bytes of the above hash value as the key itself:

0x00000000 73 40 e6 e2 74 s@..t


Because the CRYPT_CREATE_HASH flag was not specified, the key is given a salt value of zero.
If the session key is used to encrypt the following plaintext buffer:

0x00000000 00 01 02 03 04 05 06 07 ........
0x00000008 08 09 0a 0b 0c 0d 0e 0f ........
0x00000010 10 11 12 13 14 15 16 17 ........
0x00000018 18 19 1a 1b 1c 1d 1e 1f ........


The following ciphertext data is generated:

0x00000000 26 59 de 24 44 fa 36 9c &Y.$D.6.
0x00000008 11 0c bb 9d b6 a2 bd 24 .......$
0x00000010 04 2e e3 ba 72 76 f3 27 ....rv.'
0x00000018 8d d5 b4 2f 56 cf f8 c9 .../V...


If the application does specify the CRYPT_CREATE_HASH flag during the CryptDeriveKey function call, then the key is given the following 11 byte salt value:

0x00000000 b8 ea 39 93 95 aa 29 d6 ..9...).
0x00000008 38 b5 2a 8.*


In this case, the following ciphertext data is generated when the above plaintext buffer is encrypted:

0x00000000 47 f4 5d e2 cc 3b 87 1b G.]..;..
0x00000008 95 bc fc 39 fb 86 d3 05 ...9....
0x00000010 da a2 91 fb 80 f1 2a 22 ......*"
0x00000018 c3 b9 ec 91 dd 9f af 50 .......P



Пригласи друзей и счет твоего мобильника всегда будет положительным!
Предыдущая статья
 
Сайт Народ.Ру Интернет
Следующая статья
Пригласи друзей и счет твоего мобильника всегда будет положительным!

Ключевой Образец Вывода



Эти данные были сгенерированы используя Базового Поставщика Микрософт RSA. Ваша сеансовая ключевая длина и соленая длина могут быть другими, но основной процесс должен быть тем же.

Давайте допустим что приложение имеет пароль ("1134-kelp"), что оно хочет получать сеансовую клавишу из. Это должно сначала обсуждать пароль с функцией CryptHashData, в этом случае, определяющем алгоритм хэша MD5. Величина хэша следующего сгенерирована и признанный внутренний на CSP.

0x00000000 73 40 e6 e2 74 b8 кажд. 39 s@..t..9 0x00000008 93 95 aa 29 d6 38 b5 2a...).8.*


Приложение должно затем называть функцию CryptDeriveKey для того, чтобы создавать сеансовую клавишу, в этом случае код потока RC4. CSP Использует первые пять байтов хэша вышеуказанного оценивать как сама клавиша:

0x00000000 73 40 e6 e2 74 s@..t


Поскольку флаг CRYPT_CREATE_HASH не был определен, клавиша дана соленая величина нуля.
Если сеансовая клавиша использована, чтобы кодировать следующий буфер открытого текста:

0x00000000 00 01 02 03 04 05 06 07........
0x00000008 08 09 0a 0b 0c 0d 0e 0f........
0x00000010 10 11 12 13 14 15 16 17........
0x00000018 18 19 1a 1b 1c 1d 1e 1f........


Следующие данные зашифрованного текста сгенерированы:

0x00000000 26 фа 59 de 24 44 36 9c &Y.$D.6.
0x00000008 11 0c bb 9d b6 a2 bd 24.......$.$ 0x00000010 04 2e e3 ba 72 76 f3 27....rv.'
0x00000018 8d d5 b4 2f 56 ср. f8 c9.../V...


Если приложение определяет флаг CRYPT_CREATE_HASH в течение функционального вызова CryptDeriveKey, тогда клавиша дана следующие 11 байтовых соленых величин:

0x00000000 b8 кажд. 39 93 d6 95 aa 29..9...).
0x00000008 38 b5 2a 8.*


В этом случае, следующие данные зашифрованного текста сгенерированы когда вышеуказанный буфер открытого текста закодирован:

0x00000000 47 f4 5d e2 cc 3b 87 1b G.]..;.;..
0x00000008 95 bc fc 39 fb 86 d3 05...9....
0x00000010 da a2 91 fb 80 f1 2a 22......*" 0x00000018 c3 b9 ec 91 dd 9f af 50.......P



Вверх Version 1.3, Oct 26 2010 © 2007, 2010, mrhx Вверх
 mrhx software  Русский перевод OpenGL  Русский перевод Win32 API
 
Используются технологии uCoz