Что такое расширение файла SEED?
Файлы SEED связаны с два типом (-ами) файлов, и их можно просматривать с помощью Ubuntu, разработанного Open Source. В целом, этот формат связан с два существующим (-и) прикладным (-и) программным (-и) средством (-ами). Обычно они имеют формат Linux Preseed File. В большинстве случаев эти файлы относятся к Executable Files, но они также могут относиться к Data Files.
Файлы с расширением SEED были идентифицированы на настольных компьютерах (и некоторых мобильных устройствах). Они полностью или частично поддерживаются Linux и Mac. Рейтинг популярности файлов SEED составляет «Низкий», что означает, что данные файлы встречаются редко.
Однако следует учитывать, что существует намного больше информации, которую следует знать о файлах SEED; далее представлены лишь савые важные детали в отношении этих типов файлов. Если у вас возникли проблемы с открытием этих файлов, или вы хотите получить более подробную информацию, ознакомьтесь с подробной информацией, представленной ниже.
Что такое SEED фраза | Восстановление Биткоин кошелька
Источник: www.solvusoft.com
Seed4.Me VPN и Proxy
О программе
Seed4.Me VPN и Proxy позволяет безопасно и анонимно пользоваться интернетом и посещать сайты, заблокированные работодателем или провайдером
Что нового
- Добавлены новые локации VPN: Греция и Казахстан.
Системные требования
- Windows 7 и выше
- MacOS 10.12 Sierra и выше
- Linux (L2TP и PPTP VPN)
- Android 4.2 и выше
- iOS 7.0 и выше. Совместимо с iPhone, iPad и iPod touch.
Полезные ссылки
- Seed4.Me VPN и Proxy – бесплатная Premium-подписка (неограниченный трафик)
- Как настроить VPN соединение для популярных операционных систем (официальный сайт)
- Лучший VPN. Сравнительное тестирование AV-Test
Подробное описание
Seed4.Me VPN и Proxy позволяет анонимно посещать любые веб-сайты и онлайн сервисы. Ваш провайдер или системный администратор не будут иметь доступа к списку посещаемых вами интернет страниц. После соединения c VPN сервером, все данные пользователя передаются в шифрованном виде.
Защищённый канал передачи данных обеспечивает защиту от кражи паролей и хакерских атак, при использовании общественных Wi-Fi точек.
Автоматическое включение VPN гарантирует постоянную защиту пользователя от утечки персональных данных и истории работы в интернете.
Преимущества Seed4.Me VPN и Proxy
- 7 дней бесплатного пользования VPN и прокси.
- Доступ к заблокированным сайтам.
- Анонимность в интернете.
- Безлимитный объем данных.
- Легкая настройка VPN прокси.
- Шифрование данных в Wi-Fi сетях.
- Автоматическое подключение.
- Предлагает серверы в более чем 40 странах: Китай, Россия, Беларусь, Латвия, Эстония, Литва, Украина, Финляндия, Молдова, Швеция, Польша, Румыния, Грузия, Венгрия, Чехия, Болгария, Норвегия, Австрия, Германия, Турция, Нидерланды, Казахстан, Греция, Люксембург, Швейцария, Бельгия, Кипр, Италия, Великобритания, Франция, Израиль, Испания, Португалия, Арабские Эмираты, Индия, Корея, Таинланд, Гонконг, Канада, Япония, Тайвань, Сингапур, США, Индонезия, Южная Африка, Мексика, Бразилия, Австралия и Аргентина..
Источник: www.comss.ru
Как создается мнемоническая фраза? (Seed)
Раунды привлечения инвестиций в стартап. Что это такое и в чем особенности?
На этой стадии создатели инвестируют собственные средства. Используют средства от FFF (family, friends, fools). О временных рамках и лимитах финансирования говорить не приходится. Стартаперы стремятся привлечь максимум денег как можно быстрее. На этом этапе исчезает множество проектов.
Сид раунд (Seed-раунд)
На этой стадии привлекают от 25 тыс до 1 млн $.
Деньги нужны для того, чтобы завершить разработку прототипа или довести его до требований рынка. Главный продукт — программа, итогом сид раунда должен стать финальный релиз программы.
Часто на этой стадии компании не способны сами обеспечивать финансирование работы.
Основная сложность — показать инвесторам перспективы проекта и правильно оценить необходимый объем финансирования.
Пример проекта:
Сейчас на Seed раунде находится стартап Vacasa из Орегона. Это сервис для собственников недвижимости, который помогает покупать, продавать и управлять гостевыми домами.
Сид раунд также прошел успешный медиа-стартап The Athletic из Сан-Франциско.
Ангельский раунд
Часто эту стадию объединяют с посевным раундом. Сроки закрытия и суммы примерно одинаковые. Главная особенность ангельского раунда в том, что стартапы привлекают скорее не инвесторов, а менторов. Помощь бизнес-ангелов в организации всех процессов бывает настолько существенной, что финансы часто уходят на второй план.
Ангельский раунд можно назвать и разновидностью seed раунда. Главная сложность здесь — вовремя понять, что вашему стартапу нужны не только деньги, но и организационная поддержка. И, конечно, бывает непросто найти инвестора и ментора в одном лице.
Раунд А (Stage A)
Эта стадия наступает если стартап успешно прошел сид-раунд. Стартапы привлекают суммы от 500 тысяч долларов.
- организовать серийное производство (постоянную работу сервиса);
- нанять полноценную команду.
Раунд А может быть первым для компании, если предыдущие задачи основатели стартапа решили собственными ресурсами.
Пример проекта:
Раунд А давно и успешно прошла компания Cloudflare. Это онлайн сервис, который обеспечивает ускоряет работу и обеспечивает защиту сайтов от DDoS атак.
Раунд B (Stage B)
Объем финансирования на этой стадии от 1 млн долларов.
На этой стадии происходит масштабирование компаний. Раунд B начинается когда стартап достигает финансовых показателей, оговоренных с инвесторами на стадии А.
Среди задач этого этапа:
- рост прибыли;
- завоевание новых рынков сбыта продукции;
- расширение охвата в занятой нише.
- неэффективная работа команды;
- непонимание того, как достичь задач;
- неправильные решения при масштабировании.
Пример проекта:
Раунд B успешно прошла компания Square. Один из ее основателей — Джек Дорси, известный как создатель Twitter. На этой стадии стартап привлек 27,5 миллионов долларов.
Раунд C (Stage C)
В этом раунде стартапы привлекают от одного миллиона долларов. Сумма может достигать 100 млн долларов и более.
Перед компанией и ее создателями стоит задача — достичь самоокупаемости. Стартап становится прибыльным только на стадии раунда C. После этого раунда компания способна существовать самостоятельно.
Главная сложность в том, чтобы наконец превратить смелый эксперимент в стабильный и прогнозируемый бизнес-проект. До этой стадии доходят далеко не все стартапы. Очень многие не достигают успеха из-за недостатка знаний и опыта, неспособности мыслить как бизнесмен, а не просто креативить.
Пример проекта:
Пример компании прошедшей раунд C — Nest Labs. Интересный факт. Для этого стартапа раунд C стал первой и единственной стадией на которой потребовалось привлечение инвесторов. Компания специализируется на производстве высокотехнологичных самообучающихся датчиков дыма и термостатов.
Раунд D (Stage D)
Это финансирование перед продажей стратегическому инвестору или выходом на IPO. Объем финансирования от 1 миллиона. Верхняя граница условна, чаще всего она составляет 50 — 100 млн.
Основная сложность для компаний — привлечь стратегического инвестора, показать покупателям свою ценность.
Пример проекта:
Этот раунд успешно прошел стартап Peloton — производитель тренажеров. Его создатели привлекли 75 миллионов долларов.
Мы описали основные раунды финансирования. Далеко не все стартапы проходят каждый из раундов. Часто раунды объединяют или наоборот, выделяют промежуточные.
Деление на раунды инвестиций дает представление о том, по каким сценариям и с какой динамикой развиваются стартапы.
Если эта статья была интересной и полезной для вас, обязательно поделитесь публикацией в facebook и следите за нашими обновлениями.
Источник: vc.ru
Программа в области развития образования SEED
Программа SEED (Schlumberger Excellence in Education Development) — это международная программа компании «Шлюмберже» в сфере среднего образования, которая направлена на расширение образовательных возможностей в странах присутствия компании.
Цель программы — заинтересовать подрастающее поколение вопросами науки и образования и вдохновить молодёжь на использование научных и технических достижений для решения вопросов повседневной жизни. Программа активно поддерживается сотрудниками и членами их семей.
Основной подход в обучении в рамках этой программы — «Учимся, делая», который объединяет школьников и учителей в практической работе над проектами по решению вопросов водопользования, энергопользования, изменение климата и других.
Узнать больше о программе можно на канале программы SEED на YouTube Перейти по ссылке
При поддержке компании «Шлюмберже» и программы SEED, на базе московского лицея № 1502 при Московском энергетическом институте в июне 2011 года была открыта первая лаборатория FabLab в России, «Экспериментариум 1502 МЭИ».
Эта лаборатория представляет собой образовательное пространство нового типа для обучения в процессе деятельности. Она оснащена цифровым высокотехнологичным оборудованием по производству роботизированных моделей. Проекты лаборатории были представлены на международных конференциях и удостоены признания российского научного сообщества.
Ученики SEED Олег Зобов и Илья Тужилин с проектами Fab Lab «Робот манипулятор на подвижной платформе для производства» и «Тактильное устройство для обнаружения препятствий для слепых людей» стали победителями национальных научных конкурсов и представили Россию на международном конкурсе INTEL ISEF, который прошел в мае 2016 в г. Феникс, штат Аризона, США. Конкурс собрал около 1 700 школьников из 75 стран и представил возможность продемонстрировать свои проекты и научные исследования, а также получить поддержку для их реализации.
Российский школьник Олег Зобов стал лауреатом так называемой «малой Нобелевки» в области робототехники. Так называется престижная премия в сфере научных и инженерных достижений среди юных ученых. Жюри высоко оценило простоту изготовления и низкую себестоимость проекта. Так, части робота Олег напечатал на 3D-принтере, который создал сам. Кроме того, юный ученый сконструировал блок управления машиной и написал к ней программное обеспечение.
Программа SEED действует в России с 2001 года. За это время 226 человек стали волонтерами программы, 21 образовательное учреждение в 18 городах получили гранты. Кроме того, было проведено 43 практических семинара.
В 2015 году было проведено 7 практических семинаров в школах SEED, в которых приняло участие 76 волонтеров, 315 школьников, 91 педагог и 20 родителей из 40 российских школ. В ходе семинарских занятий ребят и учителей обучали навыкам программирования, робототехники и творческого подхода к решению технических задач. Основная цель таких семинаров — развитие практических знаний и навыков командной работы над проектами, направленными на решение вопросов глобального изменения климата, энергосбережения, здоровья, экологии и использования водных ресурсов. Семинары программы SEED стремятся вдохновить участников на то, чтобы в будущем заниматься наукой и выбрать профессию, связанную с естественными и техническими науками.
Другие мероприятия SEED в России включают международные творческие конкурсы, посещение производственных объектов компании «Шлюмберже» и участие в региональных и федеральных научных программах.
Лаборатория Fab Lab в московском лицее № 1502 при Московском энергетическом институте — результат сотрудничества Юана Бейрда, программы SEED, компании «Шлюмберже» при поддержке Центра элементарных частиц и атомов Массачусетского технологического института (Massachusetts Institute of Technology, Cambridge, USA) и Стэндфордского университета (Stanford University, California, USA). Это инновационный образовательный проект, дающий возможность школьникам изучать естественные науки, математику и технологии с использованием высокотехнологичного научного оборудования для компьютерного моделирования, сборки и производства роботизированных моделей.
Ученики 7–11 классов пользуется оборудованием лаборатории на протяжении всего академического года для планирования и выполнения проектов и проведения исследований в таких областях, как физика и робототехника. Учителя используют тщательно разработанные методические программы подготовки, а школьники пользуются возможностью заниматься перспективными проектами в контексте своей школьной программы.
Лицей №1502 МЭИ в 2015 году занял 4 место в рейтинге лучших школ России по качеству подготовки к поступлению в ведущие высшие учебные заведения страны. Получение и освоение нужных компетенций в «Экспериментариуме» — наглядное тому подтверждение.
Согласно рейтингу школ, показавших высокие образовательные результаты, Лицей № 1502 при МЭИ неоднократно входил в лучших школ г. Москвы, коллектив лицея пять раз награждался Грантом Мэра Москвы 1 степени за достижение высоких результатов образовательной деятельности (по итогам 2011–2015 учебных лет), дипломом II степени за выдающиеся достижения в математическом образовании учащихся (2012–2013 учебный год). Предалагаем вам ознакомиться со списком достижений Лицея 1502. Перейти по ссылке
Проекты лаборатории были представлены на международных конференциях и удостоены признания российского научного сообщества.
«Дешифратор международной азбуки жестов»
В 2013 году выпускница лицея № 1502 МЭИ Дарья Якимова с проектом «Дешифратор международной азбуки жестов», разработанным в «Экспериментариуме 1502 МЭИ», стала победительницей в категории «Информационные технологии» конкурса молодых ученых Innostar.
Дарья создала перчатку, способную распознавать жесты международной азбуки глухонемых и выводить буквы на дисплей. Это устройство поможет общению людей с ограниченными возможностями в социуме. Пять датчиков закреплены на перчатке. Рука оператора воспроизводит жесты азбуки и сигналы с датчиков передаются на контроллер, где программно обрабатываются и преобразуются в букву, которая выводится на дисплей. Сейчас Дарья Якимова студентка факультета робототехники и комплексной автоматизации МГТУ им. .
«Школьная робототехника — шаг к автоматизации производства»
В 2015 году ученик 10 класса лицея № 1502 МЭИ Олег Зобов с проектом «школьная к автоматизации производства», созданным в «Экспериментариуме 1502 МЭИ», выиграл IX Всероссийский конкурс проектов для старшеклассников в категории «Лучший социальный проект России». На участие в конкурсе были отобраны 7 творческих проектов из 1101 проектов всех округов России. Олег уверен, что такой принтер может собрать каждый, даже если не обладает специальными техническими навыками.
«Тактильное устройство обнаружения препятствий для слепых людей»
В 2015 году Илья создал проект «тактильное устройство обнаружения препятствий для слепых людей», с которым успешно выступил на фестивале по робототехнике «Arduino» в Турине, Италия, фестивале цифрового производства Fab Lab Тулуза, Франция. Также занял 1 место в секции «Носимая электроника» конкурса проектов, проведенных в рамках проекта Intel под эгидой Всероссийского Фестиваля науки. Ученик уверен, что современные технологии, какие есть в Fab Lab, должны быть использованы для создания устройств, которые могут помочь инвалидам и пожилым людям. Ильи надеется, что его проект сможет помочь слепым людям ориентироваться в небольших помещениях и ходить, избегая препятствий.
Источник: www.slb.ru
Краеугольный камень псевдослучайности: с чего начинается поиск чисел
(с)
Случайные числа постоянно генерируются каждой машиной, которая может обмениваться данными. И даже если она не обменивается данными, каждый компьютер нуждается в случайности для распределения программ в памяти. При этом, конечно, компьютер, как детерминированная система, не может создавать истинные случайные числа.
Когда речь заходит о генераторах случайных (или псевдослучайных) чисел, рассказ всегда строится вокруг поиска истинной случайности. Пока серьезные математики десятилетиями ведут дискуссии о том, что считать случайностью, в практическом отношении мы давно научились использовать «правильную» энтропию. Впрочем, «шум» — это лишь вершина айсберга.
С чего начать, если мы хотим распутать клубок самых сильных алгоритмов PRNG и TRNG? На самом деле, с какими бы алгоритмами вы не имели дело, все сводится к трем китам: seed, таблица предопределенных констант и математические формулы.
Каким бы ни был seed, еще есть алгоритмы, участвующие в генераторах истинных случайных чисел, и такие алгоритмы никогда не бывают случайными.
Что такое случайность
Первое подходящее определение случайной последовательности дал в 1966 году шведский статистик Пер Мартин-Лёф, ученик одного из крупнейших математиков XX века Андрея Колмогорова. Ранее исследователи пытались определить случайную последовательность как последовательность, которая проходила все тесты на случайность.
Основная идея Мартина-Лёфа заключалась в том, чтобы использовать теорию вычислимости для формального определения понятия теста случайности. Это контрастирует с идеей случайности в вероятности; в этой теории ни один конкретный элемент пространства выборки не может быть назван случайным.
«Случайная последовательность» в представлениях Мартина-Лёфа должна быть типичной, т.е. не должна обладать индивидуальными отличительными особенностями.
Было показано, что случайность Мартина-Лёфа допускает много эквивалентных характеристик, каждая из которых удовлетворяет нашему интуитивному представлению о свойствах, которые должны иметь случайные последовательности:
- несжимаемость;
- прохождение статистических тестов для случайности;
- сложность создания прогнозов.
Существование множественных определений рандомизации Мартина-Лёфа и устойчивость этих определений при разных моделях вычислений свидетельствуют о том, что случайность Мартина-Лёфа является фундаментальным свойством математики.
Seed: основа псевдослучайных алгоритмов
Первые алгоритмы формирования случайных чисел выполняли ряд основных арифметических действий: умножить, разделить, добавить, вычесть, взять средние числа и т.д. Сегодня такие мощные алгоритмы, как Fortuna и Yarrow (используется в FreeBSD, AIX, Mac OS X, NetBSD) выглядят как генераторы случайных чисел для параноиков. Fortuna, например, это криптографический генератор, в котором для защиты от дискредитации после выполнения каждого запроса на случайные данные в размере 220 байт генерируются еще 256 бит псевдослучайных данных и используются в качестве нового ключа шифрования — старый ключ при этом каждый раз уничтожается.
Прошли годы, прежде чем простейшие алгоритмы эволюционировали до криптографически стойких генераторов псевдослучайных чисел. Частично этот процесс можно проследить на примере работы одной математической функции в языке С.
Функция rand () является простейшей из функций генерации случайных чисел в C.
#include #include int main() < int r,a,b; puts(«100 Random Numbers»); for(a=0;a<20;a++) < for(b=0;b<5;b++) < r=rand(); printf(«%dt»,r); >putchar(‘n’); > return(0); >
В этом примере рандома используется вложенный цикл для отображения 100 случайных значений. Функция rand () хороша при создании множества случайных значений, но они являются предсказуемыми. Чтобы сделать вывод менее предсказуемым, вам нужно добавить seed в генератор случайных чисел — это делается с помощью функции srand ().
Seed — это стартовое число, точка, с которой начинается последовательность псевдослучайных чисел. Генератор псевдослучайных чисел использует единственное начальное значение, откуда и следует его псевдослучайность. Генератор истинных случайных чисел всегда имеет в начале высококачественную случайную величину, предоставленную различными источниками энтропии.
#include #include int main() < unsigned seed; int r,a,b; printf(«Input a random number seed: «); scanf(«%u», srand(seed); for(a=0;a<20;a++) < for(b=0;b<5;b++) < r=rand(); printf(«%dt»,r); >putchar(‘n’); > return(0); >
srand() принимает число и ставит его в качестве отправной точки. Если seed не выставить, то при каждом запуске программы мы будем получать одинаковые случайные числа.
Вот пример простой формулы случайного числа из «классики» — книги «Язык программирования C» Кернигана и Ричи, первое издание которой вышло аж в 1978 году:
int rand() < random_seed = random_seed * 1103515245 +12345; return (unsigned int)(random_seed / 65536) % 32768; >
Эта формула предполагает существование переменной, называемой random_seed, изначально заданной некоторым числом. Переменная random_seed умножается на 1 103 535 245, а затем 12 345 добавляется к результату; random_seed затем заменяется этим новым значением. Это на самом деле довольно хороший генератор псевдослучайных чисел. Если вы используете его для создания случайных чисел от 0 до 9, то первые 20 значений, которые он вернет при seed = 10, будут такими:
44607423505664567674
Если у вас есть 10 000 значений от 0 до 9, то распределение будет следующим:
0 — 10151 — 10242 — 10483 — 9964 — 9885 — 10016 — 9967 — 10068 — 9659 — 961
Любая формула псевдослучайных чисел зависит от начального значения. Если вы предоставите функции rand() seed 10 на одном компьютере, и посмотрите на поток чисел, которые она производит, то результат будет идентичен «случайной последовательности», созданной на любом другом компьютере с seed 10.
К сожалению, у генератора случайных чисел есть и другая слабость: вы всегда можете предсказать, что будет дальше, основываясь на том, что было раньше. Чтобы получить следующее число в последовательности, мы должны всегда помнить последнее внутреннее состояние генератора — так называемый state. Без state мы будем снова делать одну и ту же математическую операцию с одинаковыми числами, чтобы получить тот же ответ.
Как сделать seed уникальным для каждого случая? Самое очевидное решение — добавить в вычисления текущее системное время. Сделать это можно с помощью функции time().
#include #include #include int main() < int r,a,b; srand((unsigned)time(NULL)); for(a=0;a<20;a++) < for(b=0;b<5;b++) < r=rand(); printf(«%dt»,r); >putchar(‘n’); > return(0); >
Функция time() возвращает информацию о текущем времени суток, значение, которое постоянно изменяется. При этом метод typecasting гарантирует, что значение, возвращаемое функцией time(), является целым числом.
Итак, в результате добавления «случайного» системного времени функция rand() генерирует значения, которые являются более случайными, чем мы получили в первом примере.
Однако в этом случае seed можно угадать, зная системное время или время запуска приложения. Как правило, для приложений, где случайные числа являются абсолютно критичными, лучше всего найти альтернативное решение.
В .net framework есть функция System.Security.Cryptography.RandomNumberGenerator, где в расчетах учитываются следующие факторы:
- ID текущего процесса;
- текущий ID потока;
- количество отсчетов с момента загрузки;
- текущее время;
- различные высокоточные счетчики производительности процессора;
- MD4-хэш среды пользователя (имя пользователя, имя компьютера и т.д.).
Но опять же, все эти числа не случайны.
Лучшее, что вы можете сделать с детерминированными генераторами псевдослучайных чисел — добавить энтропию физических явлений.
Период (цикл) генератора
Одними из наиболее часто используемых методов генерации псевдослучайных чисел являются различные модификации линейного конгруэнтного метода, схема которого была предложена Дерриком Лемером еще в 1949 году:
Xn+1 = (aXn + c) mod m, где m — модуль, a — множитель, c — приращение, mod — операция взятия остатка от деления. Причем m > 0, 0 < a ≤ m, 0 < c ≤ m, также задается начальное значение X0: 0 < X0 ≤ m.
Линейный конгруэнтный метод дает нам повторяющиеся последовательности — конгруэнтная последовательность всегда образует «петли». Этот цикл (период), повторяющийся бесконечное число раз — свойство всех последовательностей вида Xn+1 = f(n).
В языке С линейно-конгруэнтный метод реализован в уже знакомой вам функции rand():
#define RAND_MAX 32767 unsigned long next=1; int rand(void) < next=next*1103515245+12345; return((unsigned int)(next/65536)%RAND_MAX);>void srand(unsigned int seed)
Что вообще такое цикл с точки зрения случайных чисел? Период — это количество чисел, которое генерируется до того, как они вернутся в той же последовательности. Для примера число периодов в шифре А5 в среднем составляет 2 23 , а сложность атаки 240, что позволяет взломать его на любом персональном компьютере.
Рассмотрим случай, когда seed равен 1, а период — 100 (на языке Haskell):
random i = (j, ans) where j = 7 * i `mod` 101 ans = (j — 1) `mod` 10 + 1 — just the ones place, but 0 means 10
В результате мы получим следующий ответ:
random 1 —> ( 7, 7) random 7 —> (49, 9) random 49 —> (40, 10) random 40 —> (78, 8) random 78 —> (41, 1) random 41 —> (85, 5) random 85 —> (90, 10) random 90 —> (24, 4) random 24 —> (67, 7) random 67 —> (65, 5) random 65 —> (51, 1)
Это лишь пример и подобную структуру в реальной жизни не используют. В Haskell, если вы хотите построить случайную последовательность, можно воспользоваться следующим кодом:
random :: StdGen —> (Int, StdGen)
Выбор случайного Int дает вам обратно Int и новый StdGen, который вы можете использовать для получения более псевдослучайных чисел. Многие языки программирования, включая Haskell, имеют генераторы случайных чисел, которые автоматически запоминают свое состояние (в Haskell это randomIO).
Чем больше величина периода, тем выше надежность создания хороших случайных значений, однако даже с миллиардами циклов крайне важно использовать надежный seed. Реальные генераторы случайных чисел обычно используют атмосферный шум (поставьте сюда любое физическое явление — от движения мыши пользователя до радиоактивного распада), но мы можем и схитрить программным методом, добавив в seed асинхронные потоки различного мусора, будь то длины интервалов между последними heartbeat потоками или временем ожидания mutual exclusion (а лучше добавить все вместе).
Истинная случайность бит
Итак, получив seed с примесью данных от реальных физических явлений (либо максимально усложнив жизнь будущему взломщику самым большим набором потоков программного мусора, который только сможем придумать), установив state для защиты от ошибки повтора значений и добавив криптографических алгоритмов (или сложных математических задач), мы получим некоторый набор данных, который будем считать случайной последовательностью. Что дальше?
Дальше мы возвращаемся к самому началу, к одному из фундаментальных требований — тестам.
Национальный институт стандартов и технологий США вложил в «Пакет статистических тестов для случайных и псевдослучайных генераторов чисел для криптографических приложений» 15 базовых проверок. Ими можно и ограничиться, но этот пакет вовсе не является «вершиной» проверки случайности.
Одни из самых строгих статистических тестов предложил профессор Джордж Марсалья из Университета штата Флорида. «Тесты diehard» включают 17 различных проверок, некоторые из них требуют очень длинных последовательностей: минимум 268 мегабайт.
Случайность можно проверить с помощью библиотеки TestU01, представленной Пьером Л’Экуйе и Ричардом Симардом из Монреальского университета, включающей классические тесты и некоторые оригинальные, а также посредством общедоступной библиотеки SPRNG.
Еще один полезный сервис для количественного измерения случайности.
Источник: habr.com