Рейтинг:5

Может ли произвольный физический образ быть ключом?

флаг ng

Предположим, есть произвольное секретное физическое изображение¹, например, изготовленный в частном порядке химический полароид, подобный этому. кабели

Существует ли осуществимый и безопасный способ использования этого физического изображения в качестве криптографического ключа, функционально эквивалентного ключу AES или закрытому ключу RSA, без «сопровождения ² других цифровых данных» помимо физического изображения? Предположим, что сканер оцифровывает физическое изображение при каждом использовании, а все остальное обрабатывается в цифровом виде.

Мы можем выделить 4 варианта использования

  • Симметричное шифрование и дешифрование сообщений
  • Симметричная аутентификация и проверка сообщений
  • Асимметричное дешифрование зашифрованного текста секретного сообщения, зашифрованного с использованием ранее сделанного открытого ключа
  • Асимметричная/цифровая подпись сообщения, публично проверяемая с использованием открытого ключа, предполагаемого подлинным.

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

Предположим, нам нужна как минимум защита CPA и безопасность подписи EUF-CMA; и мы готовы мириться с тем, что криптограммы и открытые ключи велики, алгоритмы медленны и что легитимная расшифровка или проверка подписи терпят неудачу с некоторой малой, но заметной вероятностью.

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

Позднее обновление (08.09.2021): Теперь мне интересно, можем ли мы для симметричного шифрования использовать комбинацию


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

² Под «сопровождением» я подразумеваю сохранение изображения с той же секретностью и целостностью. Таким образом, вопрос исключает, например. делать отметки на физическом изображении.Но включение в зашифрованный текст некоторых данных, полученных в результате сканирования физического изображения, было бы игрой.

³ Мы также хотели бы, чтобы шифрование оставалось безопасным при условии, что злоумышленник может передать произвольные зашифрованные тексты оракулу дешифрования и узнать, было ли расшифрование успешным или нет. Это равносильно безопасности CCA.

Основная проблема заключается в том, что результаты сканирования могут быть разными, и ни один алгоритм не может исправить (в обоих смыслах этого термина) его (по крайней мере, для всех произвольных изображений) во что-то, что можно непосредственно использовать в качестве ключа в стандартной криптосистеме, без каких-либо «других данных». Я подозреваю (надежные?) нечеткие экстракторы могут в какой-то степени помочь, но я признаю, что мои знания о них сами по себе нечеткие. Таким образом, кажется невозможным определить функцию, которая превращает сканирование в ключ для стандартной немодифицированной симметричной криптосистемы, такой как AES-CTR или AES-GCM, и обеспечивает ее безопасность и приемлемую надежность. Чтобы проиллюстрировать сложность, я отсканировал фотографию (не ту, что выше) 5 раз, используя один и тот же сканер с одинаковыми настройками (ч/б 8-бит), просто перемещая изображение при каждом сканировании и вручную перемещая прямоугольник выделения постоянного размера. Вот сканы. Я считаю, что любой детерминированный алгоритм, который превращает эти сканирования в стабильный ключ, либо должен содержать данные, извлеченные из одного из сканирований, чтобы получить стабильный вывод для других (и не будет надежно работать для большинства других наборов сканирований, сделанных из разные изображения) или будет иметь недостаточную энтропию на выходе.

fgrieu avatar
флаг ng
Предыдущий комментарий был интересен, но устарел или стал слишком длинным. Они были [перемещены в чат](https://chat.stackexchange.com/rooms/128733/discussion-on-question-by-fgrieu-can-a-physical-image-be-a-key), что подходит для обсуждения.
jjj avatar
флаг cn
jjj
Насколько необходима терпимость? Когда я вас правильно понимаю, мы не можем предположить, что можно снова сделать точно такой же снимок.
fgrieu avatar
флаг ng
@jjj: я не знаю, как просто выразить «насколько нужна терпимость». Вообще говоря, я хочу что-то безопасное и с приемлемой надежностью. Возможно, последнее означает частоту отказов
Рейтинг:4
флаг in

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

Для подписи с «зашумленным закрытым ключом» можно было бы избежать фактического исправления, сосредоточившись на решениях «небольшого расстояния / метрики» над частными данными во время проверки. Одна конкретная схема исправления ошибок, коды Гоппа, может быть удобно комбинировать с протоколом Шнорра для получения такой подписи. МАКР 2008/359.

Сходство последовательностей может быть еще одной метрикой, которую иногда называют коротким тандемным повтором (STR), и существуют некоторые базы данных криминалистической идентификации STR. Можно было бы приблизиться к такой метрике с полиномиальной моделью характеристик последовательности и подсчетом вставок/удалений (членство в наборе). Заменив последовательности полиномами, можно было бы объединить это с Шнорром, получив доказательство сходства ДНК, МАКР 2008/357.

Представление полиномиального графа было предшественником полинома характеристики последовательности (МАКР 2008/363 и МФЦ 2012), достижение изоморфизма графов, гамильтонность и раскрашивание доказательств с «большими» задачами (не бинарными, как 0 или 1); пока нет ошибок или метрик подобия.

Секретные полиномы привлекли бы протокол Шнорра с полиномами более высокой степени (более линейной, степени-1) в задаче верификатора. Наконец, все упомянутые результаты потребуют некоторого помощника/библиотеки компьютерной алгебры, реализованной для обработки этих полиномов более высокой степени.

fgrieu avatar
флаг ng
Спасибо за подтверждение и ссылки на вашу работу в домене. Я был бы признателен, если бы вы могли уточнить, считаете ли вы ответ на мой основной/первый вопрос (возможность полностью избежать «дополнительных данных») «да» или «нет», возможно, различая симметричное шифрование, шифрование с открытым ключом и подпись, если это необходимо. Кроме того, если для «Исправления ошибок» необходимы «дополнительные данные», менее ясно, если это только это или есть какая-то криптография сверху; если он может быть публичным; если ему нужно доверять, чтобы избежать нападения; и есть ли для него стандартное имя.
Vadym Fedyukovych avatar
флаг in
Что ж, шифрование с «зашумленными ключами» кажется мне более сложным, чем подпись/идентификация. Вероятно, это означало бы каким-то образом реализовать полное исправление ошибок в частных данных; это не было моей точкой зрения (приоритетом).
Рейтинг:2
флаг in

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

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

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

Тогда вопрос, какая модель ошибок у нас для результатов сканирования? Ожидаем ли мы гауссовский шум? соль и перец? шум выравнивания? вращение? добавление больших непрерывных кусков шума? световой шум? С каждым типом шума можно бороться по-разному.

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

Мы будем достаточно агрессивно дискретизировать и выбирать достаточно редкие действительные точки, чтобы мы могли надежно добраться до нулевого шума. На этом этапе у нас все еще должно быть намного больше требуемой длины ключа, но в пространстве, все еще тесно связанном с исходным изображением, и поэтому биты будут смещены и коррелированы. Применение криптографического хэша к этим данным должно упорядочить их и позволить нам получить достаточное количество высококачественного ключевого материала, надежно полученного, и получать один и тот же ключ точно при каждом сканировании. Это может быть использовано, например, как ключ AES.

Если вы хотите создать ключ RSA, вам понадобится гораздо больше случайных битов. Однако вы можете извлечь столько битов, сколько сможете извлечь, при этом каждый раз надежно получая одни и те же биты, и использовать их для заполнения криптографического PRNG и использовать его для создания закрытого ключа RSA.

Редактировать: я не пытался реализовать полное решение, но я открыл блокнот и поиграл с предложенной моделью шума, гауссовский шум и сдвиги, которые, как мне кажется, легко исправляются, поэтому я проверил, что произойдет, если я поверну изображение (с причудливым интерполяции) на 2 градуса и повернуть назад на 1,8 градуса. Я получил максимальную разницу (на изображении выше) 33%, это подтверждает мое утверждение о том, что путем определения наилучшего поворота и сдвига счетчика, снижения разрешения и агрессивного квантования, игнорируя края, мы должны быть в состоянии получить 1-2 бита на канал на ~ 25 областей пикселей. Для приведенного выше изображения получается не менее 36 КБ бит, и после хэширования, я уверен, у него будет 128 бит фактической энтропии.

Edit2: я загрузил предоставленные изображения сканов в оттенках серого и поиграл с ними, я полуавтоматически выровнял первые два изображения.

img = io.imread("сканы/scan078.tif")
img2 = io.imread("сканы/scan079.tif")
imgr = transform.rotate (img, угол = -0,78)
imgr2 = transform.rotate (img2, угол = -0,805)
tr1=transform.rescale(imgr[:-10,:-6],0.1)[20:-20,20:-20]
tr2=transform.rescale(imgr2[10:,6:],0.1)[20:-20,20:-20]

Это чтение поворачивает каждое выравнивание и кадрирование, понижает разрешение в 10 раз и кадрирует, чтобы избавиться от краев, которые могут иметь артефакты. Это дает максимальную разницу менее 6% на значение пикселя. Что очень хорошо. Однако эта разница в 6% легко может быть около любой выбранной нами отсечки, поэтому даже агрессивное квантование не дает 0 ошибок.

бин1 = тр1> 0,5
бин2 = тр2> 0,5

Это дало разницу в 103 бита из 27248 бит или 0,37%. Эти ошибки кажутся разумно разбросанными. Это агрессивное изменение размера и квантизация приводит к потере большого количества информации, но, вероятно, у нас ее еще достаточно. Вот как выглядит изображение: введите описание изображения здесь

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

Если мы уменьшим масштаб в 5 раз вместо 10, мы получим 816 различных битов. но получите в 4 раза больше битов с разницей 0,6%. Можно поиграть с этим и найти оптимум.

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

fgrieu avatar
флаг ng
Комментарии не для расширенного обсуждения; этот разговор был [перемещен в чат](https://chat.stackexchange.com/rooms/129266/discussion-on-answer-by-meir-maor-can-an-arbitrary-physical-image-be-a- ключ).
Рейтинг:2
флаг es

Если вы используете хотя бы 7 перетасовок чтобы разложить колоду из 52 карт случайным образом и сфотографировать колоду, разложенную ровно настолько, чтобы каждая буква/набор была четко видна, что даст вам (журнал2 (52!)) == 225-битный секретный ключ для использования в симметричном шифровании. Затем вы можете использовать растяжку клавиш, чтобы подняться немного выше, если это необходимо.

Вы можете придумать подобные схемы, если у вас достаточно контроля над фотографируемыми предметами, чтобы не было двусмысленности. Например, вы можете бросить коробку с зубочистками на пол, а затем вручную отрегулировать каждую зубочистку так, чтобы она находилась примерно под углом 0, 45 или 90 градусов, прежде чем делать снимок. Затем для извлечения ключа будет использоваться угол каждой зубочистки с точностью до 45 градусов.

fgrieu avatar
флаг ng
Это правда. Мы также можем закодировать ключ в QR-код. Ни один из них на самом деле не отвечает на вопрос, как я предполагал. Я добавил "произвольный"
knaccc avatar
флаг es
@fgrieu Я согласен, что его нельзя использовать на произвольном изображении.Тем не менее, это решает проблему, позволяющую сделать фотографию без помощи компьютера, чего не было бы, если бы вы просто сфотографировали QR-код.
fgrieu avatar
флаг ng
Хорошая точка зрения! Это интересный способ вручную сгенерировать и закодировать ключ и передать его в виде изображения, которое затем может быть прочитано машиной.

Ответить или комментировать

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