Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
| | | | | | |
А это сложно, опасно, да и «закладка» может не сработать. 30.05.03 16:06 Число просмотров: 3231
Автор: DPP <Dmitry P. Pimenov> Статус: The Elderman Отредактировано 30.05.03 16:11 Количество правок: 1
|
> Начнём с того, что сама железяка генерит 8-битные числа. А > часто требуется 32- или 64-битное, и как ты будешь его > «укладывать» это чисто от тебя зависит. Можно использовать > какое-нибудь «перемежение» получаемых чисел в зависимости > от этих чисел, да всё что угодно. Но я не верю. По > нижеизложенным причинам.
Предполагается, что исходники есть. Алгоритм «перемежения» есть. ВСЕ. Если микруха генерит ПСЧ умеренно длиной периодичности - перебор не такой уж и долгий получиться. А именно не порядка размера ключа, а длины периодичности. Особенно, если сноска 1) и 2) соответствует действительности.
> 1) «закладка» это значит хитрый алгоритм, а этот девайс > имеет генератор просто как дополнительную «фичу» к eeprom, > которая есть основная фишка этого устройства — 128 или 512 > килобайт (зависит от модификации). Само слово «Firmware > hub» в названии девайса говорит о том, что это просто > хранилище eeprom. > 2) Сама микросхемка маленькая, не похоже что там может быть > микроконтроллер чего-либо. > 3) Репутация. Микросхему можно разрезать и проанализировать > (486 процессор когда-то пиратски так «содрали», не то что > этот девайс). А оно Intel надо? > 4) Известный софт PGP может использовать этот девайс, и > говорит, что это есть рулез ;-)
4) - Это ни чего не доказывает.
> Кстати, расскажи мне про какую-нибудь закладку в продуктах > Microsoft. Только не надо про подбор паролей Lanmanager — > это вроде как не закладка ;-)
1) Если не ошибаюсь, то при установленном протоколе НЕТБИОС можно очень много о машине узнать, вплоть до длины парлей юреров. Ди и слышал, что Микрософт тяготеет к симметричным алгоритмам, даже при шифровании паролей. (Здесь могу ошибаться, сам в исходниках не копался, все это со слов третьих людей, но не думаю, что это сплетни)
2) Если известная нам ломалка паролей перебирает их втупую, то не факт, что Микрософт не владеет значительно более быстрой ломалкой, использующей особенности алгоритма шифромания пароля, но мы об этом не догадываемся.
3) Если мы не знаем про закладки, то это не значит, что их нет, просто американцы умеют хранить секреты.
|
<theory>
|
Загадочные вещи с Intel® 82802 FWH. 26.05.03 23:25
Автор: HandleX <Александр М.> Статус: The Elderman Отредактировано 26.05.03 23:49 Количество правок: 1
|
Итак, имеем subj. Программа получает аппаратно сгенерированные случайные числа и печатает их на консоль, причём в последней колонке выводит «сумму» битов по текущему ряду. Как известно, в хорошем генераторе эта «сумма» должна «плавать» около нуля. («Сумма» считается так — если 1 то увеличиваем счётчик, если 0 — уменьшаем.)
Она плавает, и всё вроде бы хорошо, но только «сумма» получается всегда чётная ;-) У кого-нибудь есть какие-нибудь объяснения? Ухудшает ли этот факт криптостойкость, если, к примеру, шифровать текст наложением полученной гаммы?
Насколько я понимаю, абсолютно случайная гамма не подчиняется никаким законам, кроме одного — при достаточно большой выборке количество нулей и количество единиц в гамме приблизительно равно.
Заранее всем спасибо. Код программы ниже.
Program Rng;
Uses Strings;
Type PBYTE = ^Byte;
Const
RNG_STATUS_REG: PBYTE = Pointer($FFBC015F);
RNG_DATASTATUS_REG: PBYTE = Pointer($FFBC0160);
RNG_DATA_REG: PBYTE = Pointer($FFBC0161);
Function IsRngPresent: Boolean;
Const RNG_PRESENT_MASK = 1 shl 6;
Begin
Result := RNG_STATUS_REG^ And RNG_PRESENT_MASK = RNG_PRESENT_MASK;
End;
Procedure InitRng;
Const RNG_ENABLED_BIT = 1;
Begin
RNG_STATUS_REG^ := RNG_STATUS_REG^ Or RNG_ENABLED_BIT;
End;
Function GetRndNum: DWORD;
Type
OutBuff = Packed Array[1..4] Of Byte;
pOutBuff = ^OutBuff;
Var J: Integer;
Begin
For J := 1 to 4 Do
Begin
While RNG_DATASTATUS_REG^ and 1 <> 1 Do ;
pOutBuff(@Result)^[J] := RNG_DATA_REG^;
End;
End;
Function CalcSum(aValue: DWORD): Integer;
Var
J: Integer;
TestMask: DWORD;
Begin
Result := 0;
For J := 0 To 31 Do
Begin
TestMask := 1 shl J;
If aValue And TestMask = TestMask Then Inc(Result)
Else Dec(Result);
End;
End;
Var
OutBuff: Array[1..5] Of DWORD;
BitSum, J: Integer;
begin
WriteLn; WriteLn('True random number generator written by HandleX');
WriteLn('It works with 82802 Intel(R) Firmware Hub (810 or higher chipsets) only');
If IsRngPresent Then
Begin
InitRng;
WriteLn('Random number generator is found and initialized.');
WriteLn('First random number is generated: $', hex(GetRndNum));
Write('Press Enter to generate RND numbers to console...');
ReadLn;
WriteLn;
End
Else Begin
WriteLn('Error: random number generator is NOT present on this computer!');
WriteLn;
Exit;
End;
BitSum := 0;
Repeat
For J := 1 to 5 Do
Begin
OutBuff[J] := GetRndNum;
If J <> 5 Then Write('$', Hex(OutBuff[J]), ' ')
Else Write('$', Hex(OutBuff[J]), ' Sum: ');
BitSum := BitSum + CalcSum(OutBuff[J]);
End;
WriteLn(BitSum);
Until False;
end.
---
Откомпилированная прога.
|
|
логично 28.05.03 21:00
Автор: RElf <M> Статус: Member
|
> Итак, имеем subj. Программа получает аппаратно > сгенерированные случайные числа и печатает их на консоль, > причём в последней колонке выводит «сумму» битов по > текущему ряду. Как известно, в хорошем генераторе эта > «сумма» должна «плавать» около нуля. («Сумма» считается так > — если 1 то увеличиваем счётчик, если 0 — уменьшаем.) > Она плавает, и всё вроде бы хорошо, но только «сумма» > получается всегда чётная ;-) У кого-нибудь есть > какие-нибудь объяснения?
Дык простейшая арифметика. Пусть в 2k-битном числе x единичных битов и, соответственно, 2k-x нулевых. Тогда "сумма" равна
x - (2k-x) = 2x-2k,
что есть четное число.
|
| |
Неверно. Количество битов может быть и нечётным. 29.05.03 08:46
Автор: HandleX <Александр М.> Статус: The Elderman Отредактировано 29.05.03 08:50 Количество правок: 1
|
Сумма битов считается по пяти 32-битным числам. Вот к примеру 5 чисел:
0xFFFFFFFFh
0xFFFFFFFFh
0xFFFFFFFFh
0xFFFFFFFFh
0xFFFFFFFEh
Сумма единичных битов = 32 * 5 - 1, а нулевых = 1.
Ситуация маловероятная из мира случайных чисел, но возможная.
|
| | |
я настаиваю 29.05.03 09:02
Автор: RElf <M> Статус: Member Отредактировано 29.05.03 09:04 Количество правок: 1
|
> Сумма битов считается по пяти 32-битным числам. Вот к > примеру 5 чисел: > > 0xFFFFFFFFh > 0xFFFFFFFFh > 0xFFFFFFFFh > 0xFFFFFFFFh > 0xFFFFFFFEh > > Сумма единичных битов = 32 * 5 - 1, а нулевых = 1.
Напомню Ваши же слова:
> «Сумма» считается так — если 1 то увеличиваем счётчик, если 0 — уменьшаем.
Соответственно, если мы из количества единичных битов вычтем количество нулевых, то получим четное число. В данном случае 32 * 5 - 2.
|
| | | |
А, всё понял. Прошу извинить за невнимательность. Соответственно получается что Intel, как всегда, рулез :-) 30.05.03 10:31
Автор: HandleX <Александр М.> Статус: The Elderman
|
|
| | | | |
Не ужели Интел закладку в этот генератор не вставил?! Чем он хуже Микрософта!? Не будем плохо думать об американцах. 30.05.03 10:50
Автор: DPP <Dmitry P. Pimenov> Статус: The Elderman
|
|
| | | | | |
Поэтому "умные" программы никогда не завязываются на один генератор 30.05.03 19:29
Автор: RElf <M> Статус: Member
|
Интеловский генератор хорош, но только в совокупности с другими источниками случайности (rtdsc, софтварные генераторы, нажатия клавиш, движение мыши и т.п.) Все это сбивается в единую кучу с помощью приличной хеш-функции, и уже потом используется по назначению.
Было бы глупо использовать только Intel'овский генератор в чистом виде, потому как неизвестна его подноготная. Это может быть, например, "хитрый" софтвартный генератор с узвестной "кому надо" формулой и т.п...
|
| | | | | |
А это сложно, опасно, да и «закладка» может не сработать. 30.05.03 14:40
Автор: HandleX <Александр М.> Статус: The Elderman Отредактировано 30.05.03 14:43 Количество правок: 1
|
Начнём с того, что сама железяка генерит 8-битные числа. А часто требуется 32- или 64-битное, и как ты будешь его «укладывать» это чисто от тебя зависит. Можно использовать какое-нибудь «перемежение» получаемых чисел в зависимости от этих чисел, да всё что угодно. Но я не верю. По нижеизложенным причинам.
1) «закладка» это значит хитрый алгоритм, а этот девайс имеет генератор просто как дополнительную «фичу» к eeprom, которая есть основная фишка этого устройства — 128 или 512 килобайт (зависит от модификации). Само слово «Firmware hub» в названии девайса говорит о том, что это просто хранилище eeprom.
2) Сама микросхемка маленькая, не похоже что там может быть микроконтроллер чего-либо.
3) Репутация. Микросхему можно разрезать и проанализировать (486 процессор когда-то пиратски так «содрали», не то что этот девайс). А оно Intel надо?
4) Известный софт PGP может использовать этот девайс, и говорит, что это есть рулез ;-)
Кстати, расскажи мне про какую-нибудь закладку в продуктах Microsoft. Только не надо про подбор паролей Lanmanager — это вроде как не закладка ;-)
|
| | | | | | |
Ходють слухи периодически 30.05.03 16:12
Автор: amirul <Serge> Статус: The Elderman
|
> Кстати, расскажи мне про какую-нибудь закладку в продуктах > Microsoft. Только не надо про подбор паролей Lanmanager — > это вроде как не закладка ;-) Один из которых я вспомнил, связанный с NSA_Key
Вообще то иховские программеры вообще лопухнулись, когда оставили непострипанные символы в релизе. А в частности символ NSA_Key наводил на мысли о том, что сертификаты проверяются не одним ключем, а двумя.
Щас вроде все уляглось, но шуму было довольно много
http://news.zdnet.co.uk/story/0 http:// http://s2073476 http://00.html
|
| | | | | | |
А это сложно, опасно, да и «закладка» может не сработать. 30.05.03 16:06
Автор: DPP <Dmitry P. Pimenov> Статус: The Elderman Отредактировано 30.05.03 16:11 Количество правок: 1
|
> Начнём с того, что сама железяка генерит 8-битные числа. А > часто требуется 32- или 64-битное, и как ты будешь его > «укладывать» это чисто от тебя зависит. Можно использовать > какое-нибудь «перемежение» получаемых чисел в зависимости > от этих чисел, да всё что угодно. Но я не верю. По > нижеизложенным причинам.
Предполагается, что исходники есть. Алгоритм «перемежения» есть. ВСЕ. Если микруха генерит ПСЧ умеренно длиной периодичности - перебор не такой уж и долгий получиться. А именно не порядка размера ключа, а длины периодичности. Особенно, если сноска 1) и 2) соответствует действительности.
> 1) «закладка» это значит хитрый алгоритм, а этот девайс > имеет генератор просто как дополнительную «фичу» к eeprom, > которая есть основная фишка этого устройства — 128 или 512 > килобайт (зависит от модификации). Само слово «Firmware > hub» в названии девайса говорит о том, что это просто > хранилище eeprom. > 2) Сама микросхемка маленькая, не похоже что там может быть > микроконтроллер чего-либо. > 3) Репутация. Микросхему можно разрезать и проанализировать > (486 процессор когда-то пиратски так «содрали», не то что > этот девайс). А оно Intel надо? > 4) Известный софт PGP может использовать этот девайс, и > говорит, что это есть рулез ;-)
4) - Это ни чего не доказывает.
> Кстати, расскажи мне про какую-нибудь закладку в продуктах > Microsoft. Только не надо про подбор паролей Lanmanager — > это вроде как не закладка ;-)
1) Если не ошибаюсь, то при установленном протоколе НЕТБИОС можно очень много о машине узнать, вплоть до длины парлей юреров. Ди и слышал, что Микрософт тяготеет к симметричным алгоритмам, даже при шифровании паролей. (Здесь могу ошибаться, сам в исходниках не копался, все это со слов третьих людей, но не думаю, что это сплетни)
2) Если известная нам ломалка паролей перебирает их втупую, то не факт, что Микрософт не владеет значительно более быстрой ломалкой, использующей особенности алгоритма шифромания пароля, но мы об этом не догадываемся.
3) Если мы не знаем про закладки, то это не значит, что их нет, просто американцы умеют хранить секреты.
|
|
|