Рейтинг:0

Существует ли криптосистема с открытым ключом, «без сделки», «все или ничего», «секретная длина сообщения» или какой-то простой способ ее получить?

флаг br

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

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

Допустим, у нас есть S, отправитель, и R, получатель. Когда я говорю, что кто-то «не может», я имею в виду, что они по-прежнему могут задавать вопросы и гадать таким образом и в таком количестве, как описано для IND-CCA2. Я отличаю информацию о концах открытого или зашифрованного текста от любой другой информации о них (которая является содержанием и которую я буду называть информацией об открытом тексте). Знание содержания сильнее в том смысле, что я бы позволил любому вывести хотя бы что-то о концах, если он хоть что-то знает о содержании. Я хотел бы эти свойства:

  1. Только R может отличить зашифрованный текст от случайного шума.
  2. Только S может сгенерировать правильный зашифрованный текст.
  3. Только R может расшифровать.
  4. Только S может шифровать.
  5. Только R и S могут отличить зашифрованный текст от случайного шума, учитывая открытый текст.
  6. Имея зашифрованный текст с поврежденными битами в середине некоторого потока случайных данных, никто не может узнать никакой информации о концах зашифрованного текста или какой-либо информации об открытом тексте.
  7. Имея зашифрованный текст с поврежденными битами в начале или в конце некоторого потока случайных данных, никто не может узнать какую-либо информацию о другом конце зашифрованного текста или какую-либо информацию об открытом тексте.
  8. Учитывая зашифрованный текст с поврежденными битами, зная оба его конца, никто не может узнать никакой информации об открытом тексте.
  9. Имея правильный зашифрованный текст в начале некоторого потока случайных данных, только R может (и то эффективно, за линейное время) найти конец зашифрованного текста, и никто другой не может этого сделать.
  10. Разница между длиной зашифрованного и открытого текста постоянна.

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

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

Здесь это моя попытка.

SAI Peregrinus avatar
флаг si
Требования 2, 4 и неотличимость от случайного делают это довольно сложным. Я бы, вероятно, закончил с чем-то, используя Elligator для сокрытия ключей, Ristretto для обмена ключами и групп подписи, а также систему подписывания и шифрования, в которой открытый текст подписывается, а затем шифруется с помощью схемы Authenticated Hedged Encryption with Associated Data с подписью. открытый ключ и хеш эфемерного секретного ключа в связанных данных. Подушечка с PADMÃ. Это позволило бы R отклонять сообщения от кого-либо, кроме S, предоставлять сообщение, выглядящее случайным образом, и т. д. Однако очень трудно сделать правильно.
kodlu avatar
флаг sa
В чем разница между 2 и 4? Разве они не эквивалентны?
poncho avatar
флаг my
Если требование 9 означает «линейное время в длине открытого текста» (которое может быть значительно короче, чем зашифрованный текст), то возникает противоречие между этим и 8. Чтобы 9 было истинным, дешифратор не может проверить весь зашифрованный текст, чтобы определить длина открытого текста; 8 утверждает, что изменение некоторых битов зашифрованного текста не позволяет никому узнать что-либо об открытом тексте (включая его длину); что, если измененные биты не проверяются при определении длины открытого текста?
donaastor avatar
флаг br
@SAIPeregrinus Большое спасибо! Это много информации, на которую я с удовольствием потрачу время и вернусь к своей задаче и к этому сообщению в более готовом виде.
donaastor avatar
флаг br
@kodlu Не совсем. Теоретически можно создать зашифрованный текст, исходя из чего-то, что не является открытым текстом, и при этом быть уверенным, что то, что он создал, является правильным зашифрованным текстом, но, с другой стороны, невозможно создать зашифрованный текст, исходя из открытого текста. Итак, 4 подразумевает 2, но я очень не уверен, что 2 подразумевает 4.
donaastor avatar
флаг br
@poncho Ты прав, мой плохой. Мне было трудно написать последние 3 свойства, потому что я не мог ясно видеть, как разделить информацию о длине отдельно от всей другой информации (например, содержимого сообщения). Вы заметили противоречие в моей первой попытке, сейчас постараюсь исправить.

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

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