id: Гость   вход   регистрация
текущее время 11:22 29/03/2024
Автор темы: Гость, тема открыта 20/07/2007 12:59 Печать
https://www.pgpru.com/Форум/Криптография/ПомогитеВытащитьСекретнуючАстьКлючАИзФайла
создать
просмотр
ссылки

Помогите вытащить секретную часть ключа


Есть ключ (RSA 2048) в неизвестном формате, открытая часть известна.
Пробовал с помощью libgcrypt методом перебора, но не смог.
(Первый раз использовал libgcrypt, может что неправильно сделал).


Блок с ключем (содержит и открытую часть).
const unsigned char BlkData[]=
{
0x00,0x20,0x41,0x01,0x07,0xd7,0x04,0x19,0x0c,0x35,
0xcb,0xc1,0x03,0xb0,0x4c,0x49,0x50,0x4d,0x41,0x4e,
0x54,0x53,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x08,0x00,0x01,0x00,0x00,0x02,0x01,0x00,
0x00,0x80,0x00,0x80,0x00,0x80,0x7c,0xda,0xfa,0x31, //Modulus (0x7c,0xda,0xfa,0x31,...,0x6d,0xd3)
0xd0,0xf1,0x42,0x3e,0x06,0xd9,0x79,0x7a,0x32,0x81,
0x4b,0x8b,0xa8,0xef,0x57,0xd3,0x02,0x05,0xbb,0x70,
0x97,0xb7,0x7f,0x02,0xa5,0x11,0xfc,0x5f,0x6b,0x82,
0x16,0x47,0x4a,0xad,0x40,0xf3,0x55,0x5a,0xf2,0xd4,
0x66,0x52,0xe5,0x7c,0xe7,0xc4,0xf5,0x4c,0x4b,0xd9,
0x39,0x36,0xd4,0x7e,0x84,0x30,0xd1,0x1c,0x24,0x72,
0xce,0xee,0x67,0xfe,0x31,0xbe,0x50,0xfe,0x9b,0x23,
0x47,0x13,0x93,0xe3,0x9f,0x68,0xe6,0xc1,0xb9,0x92,
0xa4,0xa2,0xf2,0x7e,0xa0,0x03,0xc8,0xf9,0x4d,0x73,
0xf5,0xbf,0x12,0xa7,0xb5,0x1e,0x52,0x1c,0x28,0x39,
0x3b,0xf5,0xb4,0x6b,0xbd,0x3c,0xb8,0x5a,0x05,0xeb,
0x6e,0x31,0x7a,0x69,0xde,0x00,0xc1,0xa0,0x11,0xef,
0x25,0xae,0x40,0x4f,0x49,0xf8,0x27,0x57,0xe6,0xe7,
0x4d,0xf3,0xf5,0x3b,0x3d,0xe7,0x1d,0xd5,0x6d,0x9f,
0xc3,0x59,0x14,0xc2,0xe6,0x7a,0xcf,0xf0,0xc2,0x69,
0x3c,0x7a,0xcd,0x64,0xa8,0x0e,0xd6,0x59,0xac,0x94,
0xc8,0x8c,0xe8,0x71,0xce,0x32,0xef,0x4c,0x22,0x13,
0x9f,0x18,0x70,0x8d,0x00,0xb1,0xdb,0x31,0x12,0xd0,
0xff,0x74,0x4f,0x68,0x84,0xda,0xbf,0x5e,0x33,0xe4,
0xc2,0x57,0x82,0x8a,0x84,0x7c,0x5d,0xad,0x8f,0x94,
0x8a,0x1a,0x97,0x56,0x8b,0x32,0x68,0x83,0xe9,0x4a,
0x16,0xd8,0x89,0x6f,0x60,0x6f,0x68,0x92,0x2d,0x81,
0xd3,0x03,0x3e,0xa2,0xde,0x50,0xb1,0x9d,0x83,0x93,
0x7f,0xa8,0xee,0x41,0x0b,0xb3,0xfe,0x05,0x98,0x44,
0xbb,0xe9,0x87,0x86,0x3f,0xc1,0x78,0x36,0xe8,0x27,
0x6d,0xd3,0x00,0x07,0x11,0xd6,0x23,0xbd,0xf9,0x47, //Exponent (0x00,0x07)
0x09,0x76,0x93,0x43,0xa3,0xa3,0xbe,0x12,0x78,0x81,
0xaa,0x6b,0x55,0xb0,0x6e,0x00,0xd1,0xa2,0x5e,0xd1,
0x12,0x24,0xf3,0x02,0x91,0xc4,0x7d,0x12,0x95,0x77,
0xe6,0x18,0xc0,0x22,0xc3,0x0c,0xfe,0x1e,0x57,0xc2,
0xb3,0x11,0xd7,0xf7,0x90,0xc1,0xc1,0xb1,0x51,0x50,
0xf9,0xc8,0xee,0x50,0x1d,0xdf,0x72,0xeb,0xd4,0x6b,
0x33,0x6d,0x74,0xd2,0x0b,0x92,0x16,0x29,0x9c,0x70,
0x82,0xd7,0x5f,0xea,0x6a,0x1b,0xac,0xcb,0xce,0x60,
0x6b,0xc8,0xf2,0x49,0xae,0xff,0x0b,0x10,0x90,0xd2,
0x27,0x3c,0x87,0x96,0x9e,0x04,0x05,0xbf,0x08,0x90,
0xd0,0xa1,0xad,0x51,0xd1,0x31,0x6e,0x8f,0x58,0xe2,
0x7f,0x33,0xb2,0x00,0x1b,0xa9,0x27,0x22,0x29,0xf4,
0x52,0x54,0x43,0x59,0x5e,0x41,0xe2,0x58,0x5b,0xb5,
0x58,0x51,0x1e,0x18,0x4d,0xa9,0x4a,0xde,0x17,0xed,
0x58,0xdb,0x33,0x8c,0x21,0x44,0x93,0x5a,0x11,0xf1,
0xf4,0x1e,0x1c,0x09,0x93,0x49,0x71,0x5f,0xdb,0xdf,
0x8b,0x7f,0x0b,0xc2,0xdf,0xd6,0xf9,0x35,0xae,0x5a,
0x82,0xa6,0xc1,0x3c,0xf6,0xeb,0x07,0x0d,0x1b,0x7c,
0xb9,0xa5,0x6c,0xf2,0x76,0xa5,0x22,0x5d,0x52,0xb5,
0x51,0x0e,0x6f,0xdf,0xef,0x8d,0x31,0x96,0xed,0xfc,
0x74,0x53,0xde,0xb6,0xce,0x7e,0xbc,0x62,0xe6,0x8b,
0x81,0xd4,0xc6,0x5d,0x05,0xb0,0x1b,0xeb,0x0f,0x92,
0xf9,0xd4,0xeb,0xfb,0xf1,0xae,0x9e,0x92,0x4a,0x76,
0xce,0x96,0x76,0x39,0x16,0xb0,0xca,0x03,0xe0,0xbd,
0x52,0xa7,0x37,0x2b,0x44,0x76,0x6e,0x7d,0xf5,0xdf,
0xe9,0xd5,0xff,0x34,0x7b,0xa7,0xd5,0x2b,0x18,0xc8,
0x4c,0xb7,0x17,0x5c,0x6b,0x0b,0x6e,0x8e,0x1d,0x90,
0x05,0x65,0xfb,0xf0,0x95,0x27,0x7b,0x9f,0x24,0x3c,
0x83,0xc5,0x28,0xb2,0x96,0x96,0x3b,0xc6,0x06,0x1d,
0xf1,0xba,0x6e,0xcd,0x6b,0x35,0xea,0x71,0x99,0x22,
0xd1,0x8b,0xd6,0x1d,0xc6,0xb7,0x24,0x04,0xbb,0x6b,
0xe9,0x18,0x02,0x7d,0x01,0x6e,0x39,0x9b,0x46,0x8a,
0xf5,0x8f,0x72,0xba,0x97,0xeb,0xc8,0x17,0x08,0x0f,
0xeb,0xf8,0x11,0xf1,0x64,0xbd,0x92,0xc2,0xc6,0xef,
0x6d,0xd5,0x6e,0xb7,0xd0,0xf9,0xcb,0x7d,0xff,0x5e,
0x2f,0x0f,0x0d,0x77,0x41,0xe0,0x96,0xf0,0xf9,0xb9,
0x81,0x23,0x9c,0x7e,0xf3,0x4a,0xb8,0x73,0x88,0x46,
0xb3,0x6f,0xab,0xfb,0x21,0x88,0x3a,0x97,0x88,0xb0,
0x94,0x56,0x3a,0xd4,0xf6,0xd3,0x72,0x3b,0x1e,0x85,
0xe6,0xd7,0xf6,0x81,0xad,0x4d,0x89,0x34,0x78,0x3f,
0xeb,0x20,0x25,0xcb,0x43,0x3d,0xfc,0x55,0x60,0x06,
0xa6,0xa4,0xfc,0x5f,0x89,0xaa,0x11,0xda,0x8a,0x24,
0x61,0x9d,0xe6,0x65,0xf0,0x2d,0x44,0xda,0xe6,0x7b,
0x44,0xa6,0x1a,0xbe,0x1b,0x06,0x80,0x76,0xa1,0x21,
0x7e,0x5d,0x41,0xe9,0x45,0xc7,0x04,0x9a,0x7f,0xcd,
0x5e,0x16,0x9c,0x88,0x40,0x1c,0x60,0xfb,0x88,0x3a,
0xb1,0x1b,0x5d,0xd8,0x36,0x45,0x35,0xae,0x86,0x0e,
0xd2,0x09,0x99,0x1a,0x9a,0x80,0x6a,0x72,0x3b,0x5e,
0x08,0x5f,0xeb,0xb2,0xdf,0x78,0x4e,0x6a,0x4f,0x00,
0xc2,0xb1,0x1e,0xde,0xde,0x48,0xbc,0xad,0x0a,0x22,
0xec,0xfe,0xc1,0x2d,0x7a,0x25,0x62,0x51,0xe5,0x19,
0xe0,0x39,0xc4,0xe4,0x12,0x36,0xf2,0xd4,0x23,0x95,
0x02,0xa0,0xe7,0x4c,0x55,0x40,0x9b,0x6c,0x18,0x68,
0xb0,0x52,0x6a,0x2b,0x81,0xbe,0x8a,0x46,0x69,0x94,
0xc7,0x7c,0x72,0xa3,0x2c,0xb0,0x70,0xe6,0x22,0x49,
0xe4,0x22,0x7b,0xc4,0xef,0xe0,0xc8,0xa4,0x4f,0xd3,
0xc1,0xd8,0x77,0x36,0x5e,0x06,0xb5,0x2b,0xc2,0x6f,
0x35,0x72,0xaf,0x0e,0xcf,0xc6,0x56,0xad,0x44,0x45,
0xab,0xe4,0x07,0x60,0xdc,0x3e,0x5b,0xc3,0x84,0xea,
0xdc,0x4b,0xc3,0x88,0x85,0xf6,0x01,0x94,0xcc,0x91,
0x35,0xbb,0xcd,0x56,0xfa,0x33,0xcb,0xe3,0x03,0xaf,
0x35,0xe7,0x6f,0x02,0x7e,0x59,0x82,0x38,0x24,0x09,
0x68,0x08,0xe4,0xc4,0xcf,0xca,0x42,0xce,0x65,0x75,
0xd3,0x82,0xb4,0x51,
};

Открытая часть ключа
const RSA_PUBLIC_KEY PK=
{
// KeyLength
0x08,0x00,
// Modulus [KeyLength]
0x7c,0xda,0xfa,0x31,0xd0,0xf1,0x42,0x3e,0x06,0xd9,0x79,0x7a,0x32,0x81,0x4b,0x8b,
0xa8,0xef,0x57,0xd3,0x02,0x05,0xbb,0x70,0x97,0xb7,0x7f,0x02,0xa5,0x11,0xfc,0x5f,
0x6b,0x82,0x16,0x47,0x4a,0xad,0x40,0xf3,0x55,0x5a,0xf2,0xd4,0x66,0x52,0xe5,0x7c,
0xe7,0xc4,0xf5,0x4c,0x4b,0xd9,0x39,0x36,0xd4,0x7e,0x84,0x30,0xd1,0x1c,0x24,0x72,
0xce,0xee,0x67,0xfe,0x31,0xbe,0x50,0xfe,0x9b,0x23,0x47,0x13,0x93,0xe3,0x9f,0x68,
0xe6,0xc1,0xb9,0x92,0xa4,0xa2,0xf2,0x7e,0xa0,0x03,0xc8,0xf9,0x4d,0x73,0xf5,0xbf,
0x12,0xa7,0xb5,0x1e,0x52,0x1c,0x28,0x39,0x3b,0xf5,0xb4,0x6b,0xbd,0x3c,0xb8,0x5a,
0x05,0xeb,0x6e,0x31,0x7a,0x69,0xde,0x00,0xc1,0xa0,0x11,0xef,0x25,0xae,0x40,0x4f,
0x49,0xf8,0x27,0x57,0xe6,0xe7,0x4d,0xf3,0xf5,0x3b,0x3d,0xe7,0x1d,0xd5,0x6d,0x9f,
0xc3,0x59,0x14,0xc2,0xe6,0x7a,0xcf,0xf0,0xc2,0x69,0x3c,0x7a,0xcd,0x64,0xa8,0x0e,
0xd6,0x59,0xac,0x94,0xc8,0x8c,0xe8,0x71,0xce,0x32,0xef,0x4c,0x22,0x13,0x9f,0x18,
0x70,0x8d,0x00,0xb1,0xdb,0x31,0x12,0xd0,0xff,0x74,0x4f,0x68,0x84,0xda,0xbf,0x5e,
0x33,0xe4,0xc2,0x57,0x82,0x8a,0x84,0x7c,0x5d,0xad,0x8f,0x94,0x8a,0x1a,0x97,0x56,
0x8b,0x32,0x68,0x83,0xe9,0x4a,0x16,0xd8,0x89,0x6f,0x60,0x6f,0x68,0x92,0x2d,0x81,
0xd3,0x03,0x3e,0xa2,0xde,0x50,0xb1,0x9d,0x83,0x93,0x7f,0xa8,0xee,0x41,0x0b,0xb3,
0xfe,0x05,0x98,0x44,0xbb,0xe9,0x87,0x86,0x3f,0xc1,0x78,0x36,0xe8,0x27,0x6d,0xd3,
// Exponent[KeyLength]
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,
};


PS: Никакого криминала, ключ используется определенной программой для подписи.
Нужно подписать файл формат которого программой не поддерживается.


 
Комментарии
— SATtva (21/07/2007 08:21, исправлен 21/07/2007 10:46)   профиль/связь   <#>
комментариев: 11558   документов: 1036   редакций: 4118
Из того, что я вижу, здесь только публичные параметры n и e. Не зная сомножителей числа n, Вы (равно, никто другой) не сможете восстановить секретный параметр d. Но если Вы всё-таки хотите попробовать это сделать...
— ruff (23/07/2007 09:51)   <#>
Секретная часть ключа точно есть в BlkData, вопрос в том где именно.
Я пробовал методом перебора, начиная с байта после окончания экспоненты варьируя длину предполагаемой секретной части ключа и пробуя зашифровать и расшифровать блок,
но так как опыта работы с libcrypt RSA нет возможно что-то не так сделал.
— ruff (23/07/2007 10:19)   <#>
Более того, только что выяснил что в этом блоке есть также и p, q и u.
— ruff (31/07/2007 11:31)   <#>
Нашел 8)
— SATtva (01/08/2007 17:16)   профиль/связь   <#>
комментариев: 11558   документов: 1036   редакций: 4118
А с нами поделитесь? ;-)
— ruff (02/08/2007 12:57)   <#>
Да пожалуйста :-)
Там оказались 8 лишних байт (что-то типа начала/окончания блока данных) внутри секретной части ключа (начинается сразу за экспонентой), поэтому перебор и не прошел. Правда, мне это все равно не помогло – подпись не воспринимается там где надо, хотя точно подпись правильная...
Ваша оценка документа [показать результаты]
-3-2-1 0+1+2+3