[Uneex] Задача по изобретению велосипеда на гусеничном ходу

Vladimir Ivanov ivlad на unixgods.net
Пн Июн 27 19:03:35 MSD 2005


Fr. Br. George пишет:
> On Mon, Jun 27, 2005 at 01:05:59PM +0400, Vladimir Ivanov wrote:
> 
>>Ну а кто мешает тебе это число подписать своим ключем? То, что оно само 
>>мало, не мешает тебе использовать на нем ассиметричное крипто в полный рост.
>>То есть. Берем серийный номер продукта. 1. 2. 3. Хешируем его. Шифруем 
>>хеш нашим закрытым ключем. Связку 
>>(поююкано-или-побэйзшысятчетырено(серийный 
>>номер,ElGamal-или-RSA(SHA(серийный номер), секретный-ключ))) выдаем 
>>пользователю.
> 
> 	Какого размера
> ElGamal-или-RSA(SHA(серийный номер), секретный-ключ) ?
> Мне кажется, что далеко за пределами... Тебе несложно просто привести
> пример непосредственно?

Вот смотри. Предположим, для порядкового номера мы ограничимся 4 
байтами. Хеш SHA1 дает на выходе 160 бит - 20 байт. Итого, нам нужно 
зашифровать 24 байта.


sh-2.05b$ openssl genrsa -out rsa 1024
Generating RSA private key, 1024 bit long modulus
.++++++
...........................++++++
e is 65537 (0x10001)
sh-2.05b$ openssl rsautl -inkey rsa -encrypt -hexdump
123456789012345678901234
0000 - 01 3f 3b af c2 33 3e 78-53 82 0b f9 6a cc 06 5e  .?;..3>xS...j..^
0010 - b1 7a 21 78 af a8 03 24-09 7c 34 de f3 57 df e7  .z!x...$.|4..W..
0020 - e4 ef 3d 57 2c ce bc 47-3a 06 39 13 36 26 cf 0e  ..=W,..G:.9.6&..
0030 - 26 a2 03 9d d5 57 04 4d-fd cb 2e 04 a6 4a 1a eb  &....W.M.....J..
0040 - 9d e7 57 ae e8 66 0b 7c-10 8b a3 d4 eb d0 3a 72  ..W..f.|......:r
0050 - d9 0a 06 9f e4 7a 92 fa-f9 e2 3b 3e ef 57 12 d5  .....z....;>.W..
0060 - 76 ca 91 b7 e6 20 be b6-e9 73 44 63 44 69 56 86  v.... ...sDcDiV.
0070 - 18 98 e7 87 b1 f3 f2 db-20 b4 b2 2f f3 46 43 cd  ........ ../.FC.
sh-2.05b$ openssl genrsa -out rsa 512
Generating RSA private key, 512 bit long modulus
.....++++++++++++
......++++++++++++
e is 65537 (0x10001)
sh-2.05b$ openssl rsautl -inkey rsa -encrypt -hexdump
123456789012345678901234
0000 - c5 11 86 00 d6 42 65 a6-39 fc a0 8f 47 b4 f7 0b  .....Be.9...G...
0010 - 75 ea 94 86 7b 8b b9 2c-de 02 d0 78 55 7f 45 62  u...{..,...xU.Eb
0020 - fb 3f 03 ce 1b ef a0 57-62 80 9b 96 07 39 35 3a  .?.....Wb....95:
0030 - 21 d0 68 e7 db 6a 30 10-10 2e ad a3 61 6b de 3a  !.h..j0.....ak.:
sh-2.05b$

Как видишь, при длине ключа 512 бит мы приближаемся к требуемой величине.

Вопрос о надежности ключа в 512 бит в данном случае мне не ясен. Вообще 
говоря, размер открытого текста, прямо скажем, невелик, так что, 
возможно, для атаки он непригоден. А, может, и нет. Тут нужно подумать. ;)

Длину открытого текста можно безболезненно увеличить в пределах блока:

sh-2.05b$ openssl rsautl -inkey rsa -encrypt -hexdump
1234567890123456789012345678901234567890123456789012
0000 - 0b 57 db f1 17 52 c7 22-17 f8 13 3b 0f 32 55 e3  .W...R."...;.2U.
0010 - 24 ae 3c 32 04 6a eb ad-2d 66 59 74 8b c7 4c 44  $.<2.j..-fYt..LD
0020 - 62 5e 8e b2 be 53 bc 9c-0b 2d ef f1 ba ea ee 0c  b^...S...-......
0030 - 7b 62 cc 7c 91 ea 33 ff-52 07 ee c4 8e 10 d0 ba  {b.|..3.R.......

> 
> 
>>Теорию мирового заговора про то, что производителям выгодно, что б их 
>>программы ломали, послушать хочешь? ;)
> 
> 	Причём здесь мировой заговор? Однозначно выгодно. Первая доза
> бесплатно. Причём даже не за счёт компании.
> 
>>На самом деле, одним крипто дело не решить, потому что дебагеры никто не 
>>отменял.
> 
> 	Ты, надеюсь, не путаешь патч с keygen-ом?
> 

Нет. Я говорю о том, что проблему никто не станет решать самым сложным 
методом. Если использовать криптографически стойкие серийные номера, 
крякеры будут ломать дебагером. Возможно, софтверные компании это 
понимают. А, возможно, для их программистов то мысленное напряжение, 
которое было мной проделано, слишком велико. ;) А, может, таки теория 
заговора. ;)


-- 
Vladimir Ivanov
PGP fingerprint: E82A 17D6 1DD4 9E08 66DD ADA7 59C6 A25B AC40 0D02


Подробная информация о списке рассылки Uneex