Функции-"источники энтропии" для качественного рандома? + пример

Applications development, KoOS API questions
  • Как уже писал вон там http://board.kolibrios.org/viewtopic.ph ... 729#p70839 можно использовать инструкцию rdtsc.
  • 0CodErr wrote:Как уже писал вон там http://board.kolibrios.org/viewtopic.ph ... 729#p70839 можно использовать инструкцию rdtsc.
    Если я правильно понимаю, rdtsc эквивалентно SysFn26.10 . Может быть и одной этой функции более чем достаточно, но хочется собрать как можно больше источников энтропии
  • floppy121 wrote:rdtsc эквивалентно SysFn26.10
    У меня в VirtualBox значения старших слов сильно не совпадают(хотя они явно как-то связаны, отличаются примерно в 3 раза).
    Вот такой код:

    Code: Select all

    ..................................
    szFormat       db "%u",10,0
    ..................................
            rdtsc        
            push   edx
            push   szFormat
            call   [con_printf]
            add    esp, 8
    
            mov    eax, 26
            mov    ebx, 10
            int    64
            push   edx
            push   szFormat
            call   [con_printf]
            add    esp, 8        
    ..................................
    floppy121 wrote:Может быть и одной этой функции более чем достаточно,
    А зачем делать системный вызов, если можно его не делать? В качестве энтропии вполне подошёл бы результат rdtsc.
  • floppy121 wrote:Если я правильно понимаю, rdtsc эквивалентно SysFn26.10
    Всё же нет, не эквивалентно.
    Вот функция в ядре KolibriOS, возвращающая наносекунды http://websvn.kolibrios.org/filedetails ... 6#line-443
    А инструкция rdtsc возвращает 64-bit time-stamp counter, вот из мануалов AMD и Intel(про наносекунды ни слова):
    Spoiler:
    amd.PNG
    amd.PNG (97.14 KiB)
    Viewed 8634 times
    intel.PNG
    intel.PNG (83.02 KiB)
    Viewed 8634 times
  • 0CodErr wrote:Всё же нет, не эквивалентно
    Большое спасибо за информацию, возможно добавлю rdtsc в качестве 6 источника энтропии:
    ведь много энтропии не бывает, чем её больше тем трава зеленее и рандом рандомнее :P
  • А почему бы SysFn3:GetSystemTime и SysFn29:GetSystemDate не использовать?
    Или по каким-то причинам не подходит?
    При наличии сети, думаю, можно использовать ещё SysFn74.6:GetSentPackets и SysFn74.7:GetReceivedPackets.
  • Who is online

    Users browsing this forum: No registered users and 1 guest