id: Гость   вход   регистрация
текущее время 13:40 28/03/2024
Автор темы: Гость, тема открыта 06/12/2008 23:50 Печать
Категории: криптография, инфобезопасность, алгоритмы, защита email
https://www.pgpru.com/Форум/ПрактическаяБезопасность/СуществуетЛиРеализацияOTPДляКомпьютера
создать
просмотр
ссылки

существует ли реализация OTP для компьютера?


Здравствуйте. Предположим, Алисе и Бобу нужно изредка обмениваться очень конфиденциальными сведениями, которые д.б. конфиденциальны длительное время (например, 50-70 лет). Алиса и Боб опасаются, что их ключи в течении такого срока мокут быть скомпрометированы, или талантливые участники форума PGPRU изобретут таки способ эффективного криптоаналихза PGP и т.д. Более того, Алиса и Боб дошли до такой степени паранои, что опасаются использовать даже Conventional encryption, т.е. чисто симметричный алгоритм. Читая FAQи они узнали, что самый надежный способ шифрования – использование одноразовых блокнотов.


Дальше такая фантазия. Скажем, Боб покупает устройство, генерирующее действительно случайные числа (кажется, Интел выпускал такие для научных применений). Генерирует массив случ. чисел и записывает его на две большие, гигов по 8, флешки (они, кстати, могут быть закриптованы тем же PGP Disk).


Одну флешку Боб передает лично Алисе in privacy and confidence. Дальше, при необходимости отправить по открытым каналам связи секретные сведения, Боб запусти на своем компе (на всякий случай отрезанном от сети) ПО, которое возьмет файл со сведениями, к каждому его байту прибавит очередное случ. число с флешки, использованные числа потом затрет алгоритмом Гутмана с хорошим числом проходов. Алиса сделает обратную операцию и тоже грохнет использованную часть таблицы. Когда флешки закончатся, можно их на всякий пожарный уничтожить – кислота, плавка и т.д.


Или не будем затирать использованную часть таблицы. С шифротекстом будем передавать сдвиг начала использованного для его кодирования массива случ. чисел. Тогда можно будет хранить файлы в закодированном виде, а при необходимости – открывать. Естественно, в ПО предусмотрим контроль "одноразовости" блокнота.


Понятно, что такая процедура крайне неудобна – нужно генерировать таблицы, передать по абс. надежному, закрытому каналу, т.е. лично, ключ (флешку), не забыть потом ее грохнуть. Для каждодневной работы с широким кругом лиц явно не подходит, но зато для обмена небольшими сообщениями между ограниченным числом пользователей (двумя, скорее всего) может применяться.


Как вам такой сценарий в целом? Существует ли такое ПО? Если бы Вы собирались его написать, какую функциональность Вы бы еще заложили? Что нужно предусмотреть в самой процедуре использования таких "электронных" блокнотов? На сколько упадет надежность системы, если будет использоваться програмный датчик случ. чисел, например из PGP? И главное – OTP-действительно идеально надежный шифр?


Заранее благодарю


 
На страницу: 1, 2, 3 След.
Комментарии
— Гость (07/12/2008 06:45)   <#>
Как вам такой сценарий в целом?

Сценарий нормален, но не очень физичен. Скажем так, имхо, стоит ограничить требование невзламываемости крипто сроком в человеческую жизнь (возьмём лет 70 к примеру, полагая что лет 20 вы уже прожили). Тогда можно организовать некий каскадный шифр, который с очень большой вероятностью не будет сломан даже за 70 лет (вы помните, что даже все сообщения, зашифрованные даже слабенькой энигмой, взломаны... до сих пор).

И главное – OTP-действительно идеально надежный шифр?

Согласно терминологии, OTR – это зарезервированное слово для соврешенно конкретной криптосхемы, часть которой – симметричный алгоритм. Я не уверен, что OTR не фиксирует даже алгоритм. Соответственно, то, что вы хотите, называется просто "криптопротоколом с компонентами одноразового блокнота", но не OTR. Касаемо надёжности – да, его надёжность ограничена надёжность генератора случайных чисел, насколько же последняя случайна – это уже отдельный вопрос... Так что ограничение сверху на защиту, конечно, есть :)

Существует ли такое ПО?

Скорее всего, такого ПО пока нет, но это его легко написать при необходимости. Емнип, это банальный XOR между блокнотом и текстом + автоматизация.

Если бы Вы собирались его написать, какую функциональность Вы бы еще заложили?

Совместимость с jabber'ом. Впрочем, если сообщения передавать редко и небольшие, то можно и командной строкой зашифровать а потмо переслать вручную по любому из стандартных каналов (jabber, mail, etc).

Что нужно предусмотреть в самой процедуре использования таких "электронных" блокнотов?

Вы писали про заводские генераторы шума. Насколько вероятно наличие закладки в нём? Я бы на вашем месте не доверял бы... при таком уровне требований (ибо пренебрежение малостью членов O(1/x) при погоне за членами O(1/x^2), при x->inf – нефизично), но сам собрал бы подобный генератор, либо заказал бы его у людей, которым доверяю. В крайнем случае, можно генераторы объединить в каскад, чтоб даже если один окажется с закладкой – другие не пострадали.

На сколько упадет надежность системы, если будет использоваться програмный датчик случ. чисел, например из PGP?

Зависит от вероятности наличия ошибки в большом-большом куске кода, при условии хорошего его аудита. Ну, скажем так, эта вероятность, оценочно, явно не меньше чем вскрытие всех шифров за 70 лет, так что можно условиться говорить "упадёт ощутимо".

Вообще, по поводу криптографии ну шумах, много чего интересного писал unknown, и в том числе про крипто между двумя участниками, использующими один и тот же природный генератор шума (давно ещё была длинная ветка на pgpru по этой теме). М.б. на природном шуме вам лучше сделать а не на шифроблокноте? (не разбираюсь в теме).
— Гость (07/12/2008 07:03)   <#>
s/взломаны.../не взломаны.../

Вдогонку: не следует пренебрегать вероятностью того, что к вам прийдут домой ранее чем через 70 лет, и заберут флэшку со случайными данными. Если эта вероятность намного выше, чем взлом за 70 лет, заботиться о надёжности шифров не следует... ибо шифроблокнот защищён не лучше, чем совокупность каскадных шифров. Впрочем, флэшку можно хранить где-то далеко и глубоко, нивелировав тем ущерб от "наезда" (опять же, это лишь для случая редких сообщений между участниками, а то устанете каждый раз раскапывать и закапывать :)).
— SATtva (07/12/2008 20:19)   профиль/связь   <#>
комментариев: 11558   документов: 1036   редакций: 4118
Вы писали про заводские генераторы шума. Насколько вероятно наличие закладки в нём?

Закладка в шумящих диодах? Ну это уж слишком. К тому же в практических приложениях даже вывод от аппаратного ГСЧ не применяется в одиночку (используется смесь от нескольких аппаратных генераторов и программных источников случайности), без проверки на случайность и криптографического отбеливания.

при таком уровне требований ..., но сам собрал бы подобный генератор, либо заказал бы его у людей, которым доверяю

Дано: вагон простейших полупроводниковых схем, любую из которых можете купить в первом встречном магазине, и кастомное устройство, собранное по спецзаказу. Со статистической точки зрения, где вероятность закладки выше?

Кстати, хранить гамму на флэшке и пытаться удалить её Гутманом — изначальный провал всей затеи. :-)
— Гость (08/12/2008 00:06)   <#>
Для хранения можно использовать пачку CD-R, уничтожать их можно в обычной микроволновой печке. Лучше с грилем :)
— unknown (08/12/2008 11:20)   профиль/связь   <#>
комментариев: 9796   документов: 488   редакций: 5664

И главное – OTP-действительно идеально надежный шифр?


При правиьном применении да.

Соответственно, то, что вы хотите, называется просто "криптопротоколом с компонентами одноразового блокнота", но не OTR.

Одноразовый блокнот – One Time Pad. OTR – Off-the-Record Messaging. Разные вещи, разные сокращения.

Вообще, по поводу криптографии ну шумах, много чего интересного писал unknown, и в том числе про крипто между двумя участниками, использующими один и тот же природный генератор шума (давно ещё была длинная ветка на pgpru по этой теме). М.б. на природном шуме вам лучше сделать а не на шифроблокноте? (не разбираюсь в теме).

Это экзотический метод, близкий к квантовой криптографии. Требует аналоговой проводной или радио- линии связи и измерительного оборудования за отслеживанием параметров канала. Широко коммерческого применения не предвидится (хотя попытки были), поэтому открытых исследований мало.

На сколько упадет надежность системы, если будет использоваться програмный датчик случ. чисел, например из PGP?

До уровня генератора псевдослучайных чисел, в пределе – до уровня обычного потокового шифра.

Как генерировать гамму? Самое простое оцифровывать и хэшировать (или использовать более сложные алгоритмы экстракции энтропии) шумы. Есть генераторы не на оцифровке аналоговых шумов (они могут иметь нестабильность и войти в малошумящий режим), а на явлении джиттера в цифровых схемах. Тоже можно сделать, скорость будет намного выше, но вероятность всяких неслучайных режимов тоже велика. И то и другое было повторено любителями из простейших деталей.

Критично в OTP отсутствие повторений одного и того же участка гаммы для шифрования.
Бумажные блокноты для этого запечатывались в коверты – было видно что вскрывали, одноразовые перфоленты заправляли в кэртриджи, в которых размотанную перфоленту нельзя засунуть обратно. Использованные части тут же можно было уничтожить.
Как это реализовать на электронных носителях – неясно.

Ещё одна проблема – аутентификация. Если противнику известна часть открытого текста, то он может заменить её другим текстом. Для аутентификации потребуется или ещё одна гамма или какие-то более сложные схемы.
— _owl (08/12/2008 12:14)   <#>
Спасибо за развернутые ответы.

Согласно терминологии, OTR – это зарезервированное слово для соврешенно конкретной криптосхемы,...

я имел в виду OTP = One Time Pads, т.е. реализацию одноразового блокнота в чистом виде. а что такое OTR? Не дадите ссылку?

Вы писали про заводские генераторы шума. Насколько вероятно наличие закладки в нём? Я бы на вашем месте не доверял бы... при таком уровне требований (ибо пренебрежение малостью членов O(1/x) при погоне за членами O(1/x^2), при x->inf – нефизично), но сам собрал бы подобный генератор, либо заказал бы его у людей, которым доверяю.

Не могли бы Вы прокомментировать, как построены оценки? Или это чисто образное выражение?

генератор я бы с удовольствием собрал, но к сожалению не обладаю должной квалификацией, чтобы его разработать. Мне на ум приходило разве что собрать устройство, регистрирующее какие-то природные явления, например время между падениями капель дождя на пластину, замыкающую сухой контакт.

м.б. существуют проверенные сообществом открытые схемы электронных генераторов, по которым можно было бы его изготовить?

Вообще, по поводу криптографии ну шумах, много чего интересного писал unknown, и в том числе про крипто между двумя участниками, использующими один и тот же природный генератор шума

очень интересно. а не дадите ссылочку на ветку?

На счет того, что флешку с блокнотом могут изъять Вы конечно правы. Наверное нужно все-таки затирать использованные куски блокнота. Но как? Господин SATva конечно прав, Гутман не является гарантией, а размагнитить часть флешки не возможно. Вариант – раздробить "блокнот" на "страницы", например CD-R -ки. Кстати, их что действительно можно уничтожать в СВЧ? А измельчение в шредере пойдет?

по любому, держать коробку с дисками очень не удобно, а провозить ее через таможню – вообще беда. Может есть еще варианты?

Господин SATva, а провал – именно в уничтожении использованной страницы Гутманом, или и в хранении блокнота на флэшке в принципе?

Вобщем, наверное я попробую написать такую программу. Открытую, конечно. Может, кому еще будет полезно. Очень нуждаюсь в ваших советах и обсуждении протокола, ТЗ и самого ПО ))
— Гость (08/12/2008 13:54)   <#>
я имел в виду OTP = One Time Pads, т.е. реализацию одноразового блокнота в чистом виде. а что такое OTR? Не дадите ссылку?

Так уж сложилось, что в русском языке одноразовый блокнот называют именно одноразовым блокнотом, а OTR – OTR'ом, но OTR=ОТР (калька из-за произношения).
Придуман был OTR вот этими товарищами, есть инфа и в вики.

Не могли бы Вы прокомментировать, как построены оценки? Или это чисто образное выражение?

Скорее образное. Математический частный пример поговорки про "поглощение слона и отцеживание комара". Вы же строете модель угрозы. Идеальная модель (описывающая реальность) непомерно сложна, и потому непостроима, а, значит, вы берёте какое-то к ней приближение, т.е., выражаясь математическим языком, разлагаете по малому параметру и опускаете члены, порядок которых меньше некоторых. Если вы учили когда-то математику в вузе, вам это должно быть очень понятно – сие не более, чем матанализ...

генератор я бы с удовольствием собрал, но к сожалению не обладаю должной квалификацией

Ну вот выше SATtva п0ржалпосмеялся над... хотя я не вижу никакой проблемы в изготовлении приборов, дающих "псевдослучайный шум". Конечно, из-за того что их шум всегда будет смешиваться ещё и с программными источниками шума, адже наличие закладки вряд ли даст какие-либо преимущества оппоненту в практическом смысле на данный момент. Вы же опираетесь на то, что вам недостаточен программный источник шума – доселе такие сильные требования не рассматривались. Но если уж их рассмотреть... то пожалуй и генератор стоит свой делать. Возвращаясь же к большей конкретике, я не думаю что вам стоит заморачиваться с отдельным источником шума в принципе. На практие их используют лишь тогда, когда нужно постоянно генерить большие объёмы случайных данных, с чем программные источники шума надёжно не могут справиться (а это не ваш случай), во всех же остальных ситуациях все используют программные датчики... В некоторых из них находили уязвимости – тоже было дело, но так чтобы это позволило скомпрометировать сгенерированные ключи я слышал лишь единственный раз, да и там проблема была не из-за слабого источника шума, а лишь из-за банальной ошибки в программе...

м.б. существуют проверенные сообществом открытые схемы электронных генераторов, по которым можно было бы его изготовить?

Думаю, что существуют, но конкретикой не интересовался, равно как и электроникой.

очень интересно. а не дадите ссылочку на ветку?

Я, пожалуй, не найду... я там не флудил, а потому ключевых слов оттуда не помню :) Надо попросить unknown'а – если он смилостивится, то даст.

Господин SATva конечно прав, Гутман не является гарантией, а размагнитить часть флешки не возможно.

Здесь дело именно во "внутренней физике" флэш-накопителей. Почитайте начиная с этого поста весь тот топик, там обсуждалось. А что вам мешает хранить блокнот на жёстком диске, затирая использованные части Шредером? Там таких проблем нет.

А измельчение в шредере пойдет?

Не очень. Каждый мелкий кусочек потом можно будет лазером считать на спецоборудовании. Лучше сжечь, или потереть в порошок :)

по любому, держать коробку с дисками очень не удобно, а провозить ее через таможню – вообще беда. Может есть еще варианты?

Шифроблокнот на криптофс на обычно жёстком диске (можно даже на внешнем USB-диске, но не флэш только!).

Вобщем, наверное я попробую написать такую программу. Открытую, конечно.

XOR делается в одну строку. Всё остальное – автоматизация процесса и интегрирование его с естественным окружением пользователя, включая какие-то протоколы типа jabber.
— SATtva (08/12/2008 14:16)   профиль/связь   <#>
комментариев: 11558   документов: 1036   редакций: 4118
Вариант – раздробить "блокнот" на "страницы", например CD-R -ки. Кстати, их что действительно можно уничтожать в СВЧ? А измельчение в шредере пойдет?

Лучше всего и то, и другое. :-)

Господин SATva, а провал – именно в уничтожении использованной страницы Гутманом, или и в хранении блокнота на флэшке в принципе?

"Метод Гутмана" — это набор паттернов, предложенных Питером Гутманом более десяти лет назад (в 96-м) для уничтожения данных с жёстких дисков. Паттерны были специально подобраны под алгоритмы кодирования данных контроллерами жёстких дисков того времени. Как писал сам Гутман в более поздних дополнениях к той статье, сейчас та методика уничтожения бессмысленна: алгоритмы кодирования теперь другие, а плотность записи такова, что даже простой многократной (3-7 раз) перезаписи псевдослучайным потоком достаточно, чтобы сделать данные невосстановимыми (если не требуются исключительные меры, для которых достаточно только физического уничтожения магнитных пластин).

К флэшкам эта методика принципиально неприменима. Поскольку многократная запись быстро выводить флэш-накопители из строя, их микроконтроллеры производят отложенную запись; так что даже при многократной перезаписи файла реально записан будет только последний проход. Более того, контроллеры оптимизируют запись, распределяя данные по физическим доменам, чтобы все домены проходили примерно равное количество циклов перезаписи; поэтому фактически тот поток, которым Вы пытаетесь перезаписать файл, может быть записан в совершенно другую физическую часть флэш-памяти, а данные файла останутся на прежнем месте.

В более поздней работе "Data Remanence in Semiconductor Devices", посвящённой вопросам остаточных данных в полупроводниковых устройствах хранения данных (флэшки, ОЗУ, EEPROM), Гутман приводит такой способ стирания. Поскольку флэш-память (в отличие от магнитных накопителей) не нуждается в многократной перезаписи, достаточно однократно заполнить всё свободное пространство флэшки случайными данными.

А лучше всего записывать данные на флэшку только в зашифрованном виде, а при необходимости уничтожить их — уничтожать ключ, хранящийся на обычном диске.
— SATtva (08/12/2008 14:23)   профиль/связь   <#>
комментариев: 11558   документов: 1036   редакций: 4118
А что вам мешает хранить блокнот на жёстком диске, затирая использованные части Шредером?

Разбираем винчестер, достаём оттуда пластину с использованной частью блокнота и спускаем в шреддер? :-)))
— Гость (08/12/2008 14:37)   <#>
Зачем пластину? Блокнот между пластинами спрятан, его нужно только вытащить и сжечь, а корпус жёсткого диска – лишь как футляр для блокнота.
— unknown (08/12/2008 15:02, исправлен 08/12/2008 15:20)   профиль/связь   <#>
комментариев: 9796   документов: 488   редакций: 5664
Noisy Crypto обсуждалось отсюда и до конца той ветки.

Схемы генераторов шумов:

На полупроводниках:
fileRandom Number Generation with a Simple Transistor. Junction Noise Source

На эффекте осцилляции в микросхемах:
Whirlygig RNG

Есть схемы на радиоактивных источниках и доступные для воспроизведения квантово-оптические схемы, но это уже не для любителей, а для исследователей-студентов. Самые перспективные квантовоптические – почти не требуют постобработки данных.

В некоторых из них находили уязвимости – тоже было дело, но так чтобы это позволило скомпрометировать сгенерированные ключи я слышал лишь единственный раз

Не следует путать сгенерированные ключи с гаммой одноразового блокнота.

— SATtva (08/12/2008 15:08)   профиль/связь   <#>
комментариев: 11558   документов: 1036   редакций: 4118
От Джона Калласа ещё поступала такая идея. Взять простейшую, самую дешёвую CMOS-матрицу, какие устанавливали в первые фотокамеры в мобильных телефонах. Направить её на белый лист бумаги. Вывод такой матрицы уже будет результатом квантовых свойств.
— еще_один_гость (08/12/2008 15:24)   <#>
Взять простейшую, самую дешёвую CMOS-матрицу

А обычная вэб-камера подойдет? Ну, например Genius NB 100K?
— unknown (08/12/2008 15:37)   профиль/связь   <#>
комментариев: 9796   документов: 488   редакций: 5664
Вывод такой матрицы уже будет результатом квантовых свойств.

Не совсем корректно. Квантовые датчики считают отдельные фотоны, а не интегральный шум, который всегда имеет неравномерное распределение.

В простейшем квантовом детекторе фотоны пролетают через сваренное оптоволокно – в зависимости от поляризации он полетит или по короткому пути или по скрученому в спираль длинному. Микросекундые задержки фиксируются датчиками. И то не всё идеально (постэффекты какие-то, это уже к spinore на эту тему).

В большинстве случаев достаточно и плохого датчика (если не нужны гигансткие скорости генерации), но с хорошей постобработкой.
— unknown (08/12/2008 15:39)   профиль/связь   <#>
комментариев: 9796   документов: 488   редакций: 5664

А обычная вэб-камера подойдет? Ну, например Genius NB 100K?

Звучит как вопрос к продавцу в магазине: "Скажите вот эта модель подойдёт для генерации одноразовых блокнотов"?
На страницу: 1, 2, 3 След.
Ваша оценка документа [показать результаты]
-3-2-1 0+1+2+3