существует ли реализация OTP для компьютера?
Здравствуйте. Предположим, Алисе и Бобу нужно изредка обмениваться очень конфиденциальными сведениями, которые д.б. конфиденциальны длительное время (например, 50-70 лет). Алиса и Боб опасаются, что их ключи в течении такого срока мокут быть скомпрометированы, или талантливые участники форума PGPRU изобретут таки способ эффективного криптоаналихза PGP и т.д. Более того, Алиса и Боб дошли до такой степени паранои, что опасаются использовать даже Conventional encryption, т.е. чисто симметричный алгоритм. Читая FAQи они узнали, что самый надежный способ шифрования – использование одноразовых блокнотов.
Дальше такая фантазия. Скажем, Боб покупает устройство, генерирующее действительно случайные числа (кажется, Интел выпускал такие для научных применений). Генерирует массив случ. чисел и записывает его на две большие, гигов по 8, флешки (они, кстати, могут быть закриптованы тем же PGP Disk).
Одну флешку Боб передает лично Алисе in privacy and confidence. Дальше, при необходимости отправить по открытым каналам связи секретные сведения, Боб запусти на своем компе (на всякий случай отрезанном от сети) ПО, которое возьмет файл со сведениями, к каждому его байту прибавит очередное случ. число с флешки, использованные числа потом затрет алгоритмом Гутмана с хорошим числом проходов. Алиса сделает обратную операцию и тоже грохнет использованную часть таблицы. Когда флешки закончатся, можно их на всякий пожарный уничтожить – кислота, плавка и т.д.
Или не будем затирать использованную часть таблицы. С шифротекстом будем передавать сдвиг начала использованного для его кодирования массива случ. чисел. Тогда можно будет хранить файлы в закодированном виде, а при необходимости – открывать. Естественно, в ПО предусмотрим контроль "одноразовости" блокнота.
Понятно, что такая процедура крайне неудобна – нужно генерировать таблицы, передать по абс. надежному, закрытому каналу, т.е. лично, ключ (флешку), не забыть потом ее грохнуть. Для каждодневной работы с широким кругом лиц явно не подходит, но зато для обмена небольшими сообщениями между ограниченным числом пользователей (двумя, скорее всего) может применяться.
Как вам такой сценарий в целом? Существует ли такое ПО? Если бы Вы собирались его написать, какую функциональность Вы бы еще заложили? Что нужно предусмотреть в самой процедуре использования таких "электронных" блокнотов? На сколько упадет надежность системы, если будет использоваться програмный датчик случ. чисел, например из PGP? И главное – OTP-действительно идеально надежный шифр?
Заранее благодарю
комментариев: 11558 документов: 1036 редакций: 4118
"Взвесьте мне грамм семьсот-восемьсот случайных чисел, пожалуйста."
комментариев: 9796 документов: 488 редакций: 5664
комментариев: 105 документов: 20 редакций: 3
комментариев: 11558 документов: 1036 редакций: 4118
Хотя раньше так действительно делали. Пример — известная книга со случайными числами, которую печатал в середине прошлого века... Ранд или Ксерокс? Ну, кто-то там, в общем. В военной сфере выработка шифроключей в специальной надёжной среде тоже практикуется.
комментариев: 105 документов: 20 редакций: 3
ну да, на радиоактивном источнике наверное проще всего собрать. Это, по сути, изотоп + простейший детектор (натрий-йодный например). И мереем интенсивность потока за малый квант времени. главное подобрать интенсивность изотопа и детектор так, чтобы не получилось постоянного среднего значения интенсивности, чтобы разрешение детектора и всей последующей цепи (ФЭУ, АЦП) позволило увидеть дисперсию, и именно временную, а не энергетическую.
В любом случае – радиоактивность это физически "качественный" случайный процесс. я прав?
а есть какие-нибудь сведения об аппаратурном оформлении такого датчика? И еще, какая д.б. постобработка? И как оценить "качество" получаемой последовательности? Для этого достаточно теории и тестов, изложенных у Д. Кнутта?
Уважаемый unknown, я заранее извиняюсь, если задаю вопросы, ответы на которые уже содержатся в указанных Вами описаниях генераторов. Я просто сейчас сижу на очень медленном GPRS канале и еще не смотрел ссылки.
Ну... в нашей вселенной это так :) Другое дело – правильно извлечь эту случайность. Как ещё заметил unknown, есть квантовый шум в оптических приборах – оно из той же категории, но тоже надо уметь правильно извлечь.
Очень смешно, ну просто обхохочешься! Xa-Xa-Xa!
Ну а если серьезно. Если использовать снимки или данные с камеры как случайное число. Камера направлена на белый лист бумаги и в помещение постоянно меняется освещенность, или использовать вспышку – вспомните, как делают нфоцелограмму.
Камера делает снимки с постоянно-изменяемой скоростью; Вспышка моргает с постоянно-изменяемой скоростью; Угол наклона белого листа тоже можно изменять; Можно добавить маятник. А программа выбирает псевдослучайные снимки и тд.
комментариев: 11558 документов: 1036 редакций: 4118
Ещё Как то забыли о звуковой карте. Вот статья Леонида Юрьева. Там же есть хороший генератор на основе звуковой карты, правда без исходников :(
Для обоснования наличия больших массивов случайных данных можно заняться изучением, как бы это поприличнее сказать, реализации дискретных состояний в ходе флуктуаций в макроскопических процессах! (см. также это замечание )
Можно участвовать в каком-нибудь таком проекте.
По этому поводу есть и другие мнения:
http://pavel-znykin.narod.ru/Vorsuhung.html
И вот ещё сборник легенд...
Нафига засирать форум цитатами из лженауки? Это уже давно не смешно.
комментариев: 9796 документов: 488 редакций: 5664
со схемой:
RANDy – A True-Random Generator Based On Radioactive Decay.
Оптический квантовый генератор на одиночных фотонах известен только коммерческий. Подробных и доступных для простого воспроизведения схем мне не встречалось.
Тестирование случайности – тесты DieHard. У Кнута кажется были описаны не все продвинутые тесты и больше критики PRNG-генераторов, которые вообще не имеют отношения к криптостойкости. (PRNG может пройти все тесты и быть тривиально некриптостойким в отличие от TRNG).
Постобработка – randomness extraction. В простейшем случае: сначала алгоритм фон Неймана. отбрасываем соседние одинаковые биты, а пары разных заменяем на один (первый). Затем хэширование большого объёма недостаточно качественных случайных чисел в малый объём, который используется на выходе. Иногда используется не просто хэширование, а более сложные функции.
А вообще то речь шла о том, как обосновать наличие у вас больших массивов случайных данных. В этом случае, как нетрудно понять, важна не истиннось, а правдоподобность.
комментариев: 9796 документов: 488 редакций: 5664
Если было что-то вроде 00 01 11 10 11 01 00 10 11 01 00 10, то да.
комментариев: 9796 документов: 488 редакций: 5664
"Произошла спонтанная связь космического разума со вселенской энтропией", "Бес попутал"...