2011-01-14 5 views
1

Я читал о шифровании я думал об этих свойствах AES (что я использую):Улучшение проверка свойств здравомыслия шифра

  1. же сообщение = же Ouput
  2. нет сообщений длины тайны
  3. возможна незащищенность если вы знаете, сообщения (это на самом деле относятся к AES?)

Я слышал, что AES является безопасным, но , что если я хочу, чтобы theoritcaly улучшить эти свойства?

Я думал, что я мог бы сделать это:

  1. применяется алгоритм шифрования A
  2. XOR со случайными данными D (убедившись, что результат выглядит случайным образом в случае любого шифра)
  3. генерировать случайные данные длиннее исходного сообщения
  4. использовать функцию хеширования F для распределения слотов в случайных данных (это сбивает байты порядка)

Входы: Шифрование Алгоритм Построения A, данные для XOR с D и функцией хеширования F

Мои вопросы

  • ли предложенное решение помочь теоретически возможный мои проблемы?
  • Этот подход используется где-то?

Возможных усовершенствования этого подхода

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

Если бы я использовал это для общения с кем-то, данные в XOR с могут быть последним сообщением от другого человека, но, вероятно, это уязвимость.

Я с нетерпением жду ваших мыслей! (Это только теоретическое, я не нуждаюсь в более безопасном шифровании, просто пытаюсь узнать у вас, ребята.)

+0

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

ответ

4

Да.

Посмотрите. Если вы хотите узнать о криптографии, я предлагаю вам прочитать Applied Cryptography. На самом деле, просто сделай это. Вы получите отличные окончательные знания и получите представление о том, что подходит, а что нет. В нем конкретно говорится о реализации, и это то, что вам нужно.

Некоторые Эмпирические правила:

  • Не составляют собственную схему. Это почти повсеместно.Могут быть исключения, но справедливо сказать, что вы должны изобретать свою собственную схему, только если вы тщательно проанализировали все существующие схемы и определили конкретные количественные причины, по которым они недостаточно хороши.
  • Модель вашего нападающего. Узнайте, какие сценарии вы намерены защищать, и структурируйте свою систему, чтобы она работала для смягчения потенциальных атак.
  • Сложность - ваш враг. Не делайте вашу систему более сложной, чем она должна быть.
  • Будьте в курсе последних новостей. Вы можете найти несколько mailing lists, связанных с криптографией, и (и hashing) присоединиться к ним. Оттуда вы узнаете интересные детали реализации и узнаете о последних атаках.

Что касается конкретного решения вашего вопроса, ну, это сбивает с толку. Я не понимаю вашу цель и не понимаю шаги 3 и 4. Возможно, вам стоит взглянуть на here, чтобы получить представление о различных способах использования данного алгоритма шифрования.

Надеюсь, это поможет.

+0

Спасибо, я в настоящее время читаю книгу по криптографии, и я, вероятно, прочитаю AC, когда я получу ее. – hakunin

+0

Что касается правил - большое спасибо за них! То, что я искал. – hakunin

+0

Если бы я мог, я бы отдал эти два аванса. –

0

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

Если случайные биты генерируются псевдослучайно, маловероятно, что ваши усилия принесут дополнительную безопасность. Подумайте, как много талантливых математиков были вовлечены в проектирование АЭС ...

EDIT: И я тоже очень рекомендую Applied Cryptography, что это на самом деле очень читаемый и интересная книга, а не сухой, как это может показаться.

+0

Спасибо за вход, XOR там, чтобы испортить зашифрованное сообщение. Например, AES предоставит мне такое же зашифрованное сообщение, если я дам ему одно и то же сообщение дважды. Если I XOR выйдет с бесконечно длинным случайным числом (из семени), и я буду отслеживать, где я ушел, это приведет к появлению другого зашифрованного сообщения каждый раз для того же входного сообщения. – hakunin

+0

XOR не «испортит» что-либо, его просто обратимую математическую операцию. То, что вы делаете, - это добавить немного более секретную информацию (семя и позицию в случайном потоке), но если такое шифрование было бы хорошим, оно было бы использовано. псевдослучайные генераторы не очень безопасны - их можно «взломать» (не так уж сложно выяснить, что такое семя и где в потоке вы, по мнению эксперта). поэтому основная причина в том, что вы не добавляете никакой безопасности над AES, которая была разработана людьми, которые хорошо знают этот предмет. Попробуйте эту книгу, вам понравится. – sinelaw

2

Ваши предположения неверны.

  1. же сообщение! = Же выход
    Выход не будет таким же, если вы шифровать же сообщение дважды.
    Это потому, что вы можете использовать разные IVs.
  2. Длина сообщения может быть скрыта путем добавления случайных данных в открытый текст.
  3. Атаки были продемонстрированы против AES с меньшим количеством раундов. Полноценная AES никоим образом не была скомпрометирована.

Помимо этого я предлагаю вам следовать рекомендациям Noon Silks и читать прикладную криптографию.

+0

1. Спасибо! Что такое «IV»? 2. с хэш-таблицей я пытался это сделать, но «умнее» – hakunin

+0

@hakunin: IV обозначает вектор инициализации. Это то, что алгоритм шифрования «звезд». При обработке одних и тех же данных IV должен быть одинаковым. Узнайте больше о Википедии: http://en.wikipedia.org/wiki/Initialization_vector –

Смежные вопросы