Я хочу создать алгоритм шифрования, который был бы безопасным во многих отношениях, что мне трудно представить, поэтому я придумал несколько идей о том, как реализовать его, используя некоторые известные мне примитивы, и на самом деле я нашел в Интернете несколько похожих на это, но я подумал, что пришло время проконсультироваться на форуме об этом.
Во-первых, я должен определить свою цель. Все участники имеют свои закрытые и открытые ключи. Коммуникация должна быть возможной без какой-либо предварительной сделки (без секрета, симметричные ключи). Это не является незначительным из-за другого свойства...По сути, я хочу, чтобы участники, которые находят сообщения, адресованные им случайным образом, неожиданно, по-прежнему могли расшифровывать их, сохраняя при этом все уровни безопасности.
Допустим, у нас есть S, отправитель, и R, получатель. Когда я говорю, что кто-то «не может», я имею в виду, что они по-прежнему могут задавать вопросы и гадать таким образом и в таком количестве, как описано для IND-CCA2. Я отличаю информацию о концах открытого или зашифрованного текста от любой другой информации о них (которая является содержанием и которую я буду называть информацией об открытом тексте). Знание содержания сильнее в том смысле, что я бы позволил любому вывести хотя бы что-то о концах, если он хоть что-то знает о содержании. Я хотел бы эти свойства:
- Только R может отличить зашифрованный текст от случайного шума.
- Только S может сгенерировать правильный зашифрованный текст.
- Только R может расшифровать.
- Только S может шифровать.
- Только R и S могут отличить зашифрованный текст от случайного шума, учитывая открытый текст.
- Имея зашифрованный текст с поврежденными битами в середине некоторого потока случайных данных, никто не может узнать никакой информации о концах зашифрованного текста или какой-либо информации об открытом тексте.
- Имея зашифрованный текст с поврежденными битами в начале или в конце некоторого потока случайных данных, никто не может узнать какую-либо информацию о другом конце зашифрованного текста или какую-либо информацию об открытом тексте.
- Учитывая зашифрованный текст с поврежденными битами, зная оба его конца, никто не может узнать никакой информации об открытом тексте.
- Имея правильный зашифрованный текст в начале некоторого потока случайных данных, только R может (и то эффективно, за линейное время) найти конец зашифрованного текста, и никто другой не может этого сделать.
- Разница между длиной зашифрованного и открытого текста постоянна.
Ничего страшного, если вы расскажете мне о какой-нибудь криптосистеме, которая обеспечивает некоторые, а может быть, и не все из этих свойств. Может быть, я смогу понять, как это закончить. И можно добавить свою собственную интерпретацию разницы информации о концах и открытом тексте.
Мне потребуется некоторое время, чтобы перевести на английский мои файлы с моими текущими представлениями об алгоритмах, но почти ничего нет. Я заметил OAEP++ и увидел некоторое сходство с моими идеями, но это все. Я постоянно не могу удержать столько деталей в голове...
Здесь это моя попытка.