Обновить
182
0
Алексей@Scratch

Системный архитектор, криптоманьяк

Отправить сообщение
Он ведь кстати не с той стороны полосы приземлился где ждали изначально, вроде бы. Автоматика решила что там фиговые условия и перенаправила его, а все были типа в шоке.
в SHA-2 для инициализации используются, например, дробные части кубических(или квадратных, не помню) корней первых скольки то там простых чисел в 16ричном виде. Так что, тоже под замену без последствий.
Этот исходник — часть открытого проекта, который правда пока только на моём компе существует. Так что да, когда нибудь он появится на гитхабе или где-нибудь еще.
Да, к сожалению этот человек не захотел чтобы я его упоминал в статье(спрашивал когда искал сорцы второй версии брутфорсилки), так что просто будем называть его «Хороший человек».
Пакетный режим в том смысле, что он предусматривает смену хотя бы вектора инициализации(соли) для каждого пакета(сообщения). А это всё равно полная переинициализация.
А у нас датчики направления силой в ракеты суют, аж следы остаются. В любой системе слабое звено — человек
да, у меня до сих пор валяются кучки всяких версий armstripper, включая приватные… Тут цимус в математике, спасибо им, что оставили дыру.
переходите на VMProtect, там у чувака все нормально с образованием )
Пинч после Кобана пережил второе дыхание с другими разработчиками, это длинная и местами интересная история
Вот часть кода утилиты, которая генерит всевозможные значения.
mad, xgcd функции из либы miracl
 	bytes_to_big(14,d,D);
	bytes_to_big(14,c,C);
	bytes_to_big(16,(char*)hash,H);

	subtract(O,H,H);    // H = -H mod O
    
	xgcd(C,O,Ci,Ci,Ci); // Ci = C^(-1) mod O
    
	mad(D,Ci,Z,O,T,D);  // D = D*C^(-1) mod O
	mad(H,Ci,Z,O,T,H);  // H = H*C^(-1) mod O
    
	for(seed=0;seed<100000000L;++seed) {
	    int i;
	    unsigned int sk[4];
	    unsigned char r[16];
    
	    if(0==(seed%10000)) {
		printf("%1.2f%% ...   \r",(double)seed/1000000.);
	    }
    
	    InitRandomGenerator(seed);
	    for(i=ECC_MAXLONG-1;i>=0;--i) sk[i] = NextRandomNumber();
	    sk[3] &= ECC_UPRMASK;
    
	    inverse((char*)sk,16);
	    bytes_to_big(16,(char*)sk,S);
    
	    mad(D,S,H,O,T,R);
	    big_to_bytes(14,R,r,1);
	    inverse(r,14);
    
	    // write to the basket # r[0]
	    fwrite(r,14,1,f[r[0]]);
	}


Мож я немного напортачил конечно с объяснением, давно дело было
Этот ключ не ECC и версия 3, а не 3.7. Для 3.7 делали красивый кейген чуваки из TMG, но уже после того как наши расковыряли дыру в сорцах и с помощью тех данных, что были в этих сорцах. Так что, мы впереди планеты всей ) А, и кейген TMG не учитывал все нюансы и поэтому перестал работать сразу же после первого обновления. А наш работал )
Надо совмещать такие принтеры с переработчиками металла. Засыпал туда гаек\стружки\обрезков, он переработал это в пыль\глину или какой нить наногель и в принтер.
Только бы успели, только бы успели…
В данном конкретном случае являются, т.к. именно в таком виде алгоритм был сертифицирован. Исследователи предложили каждый раз генерировать разные константы, но это уже другой алгоритм.
Закладка вшита в сам алгоритм, независимо от реализации. В алгоритме прописаны константы, которые при неудачном стечении обстоятельств могут свести на нет всю его секьюрность
ecdsa тут вообще не причем. Закладка в алгоритме ГПСЧ который всего лишь как и ecdsa основан на эллиптической математике.
смысл статьи рассказать о факте закладки, а не о её сути
Нельзя его успокаивать, можно только давать передохнуть. Прикиньте, сколько еще Сноуден НЕ рассказал? И сколько секретов есть помимо тех что он знает. Да хотя бы список рекомендованных «эпилептических» кривых, можно ему доверять?

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность