|
Поточное шифрование ATA |
|
|
|
 |
Ответов
(15 - 29)
|
Jan 11 2005, 19:02
|

Гуру
     
Группа: Свой
Сообщений: 3 041
Регистрация: 10-01-05
Из: Москва
Пользователь №: 1 874

|
Цитата(jeka @ Nov 21 2004, 02:55) Да, устройства интересные. Но немного смутило отсутствие радиатора и строчка: - "Real-time" transparent automatic encryption with 1.6 Gigabit per second throughput. Слабо мне верится в устойчивость от взлома данного метода кодирования хотя-бы потому что данные по всей видимости не сжимаются, а на диске некоторые сектора содержат стандартный код. Безусловно, для защиты от "дурака" сойдет на ура, но в серьезных системах такую штуку вряд-ли можно применять. Можно было б какую-никакую избыточность сделать, предварительно архивировать данные, а еще лучше кодировать их по случайному избыточному коду. Для нормальных алгоритмов шифрования это совершенно некритично.
--------------------
Пишите в личку.
|
|
|
|
|
Jan 13 2005, 20:36
|
Местный
  
Группа: Свой
Сообщений: 434
Регистрация: 20-10-04
Пользователь №: 921

|
То есть Вы хотите сказать, что для нормального алгоритма шифрования даже если мне и известна часть расшифрованных данных, то это мне ни в коей мере не может помочь найти ключ для расшифровки остальной части? Верно?
Если, например, Blowfish при шифровании создает в зависимости от выбранного ключа 10 основных и 2 дополнительные матрицы, затем разбивает входные данные блоками по 64 байта (кажется) и затем шифрует эти данные (перестановкой) используя значения элементов в этих матрицах, то я НИКАК по куску известных мне данных не могу "восстановить" сами матрицы и, соответственно, ключ (хотя найдя матрицы - и ключ не нужен, ведь это и есть ключ, если известен, конечно, метод шифрования).
Если это не так, тогда однозначно нужно после разбивки данных на фрагменты сжимать каждый фрагмент (пусть по LZH), и сколько "свободного" места остается в каждом фрагменте - заполнять случайным мусором, а потом шифровать. Хотя, сдругой стороны злоумышленник (люблю это слово) имея кусок данных, зная места разбиения фрагментов (это из алгоритма шифрования) может точно также сжать кусок по LZH, и, если мусор был добавлен не произвольно, а в конце, например, использовать такой фрагмент без окончания для дальнейших действий. Можно, правда, и мусор раскидывать, используя определенные значения матриц шифрования, и сами значения мусоров (*))) тоже генерить исходя из ключа. Так, чтобы цикл получился. Тогда, даже и имея известную часть данных, использование их будет безсмысленно.
Я понимаю - что, в общем то - пустословлю по отношению к конкретике - то есть все не на формулах а на догадках. И тем не менее это помагает потом определиться с выбором и засесть за конуретную литературу.
Поправте, в чем не прав. Критика поддерживается!
--------------------
Жизнь не такая долгая, чтобы писать программы на ассемблере...
|
|
|
|
|
Jan 14 2005, 07:05
|
Местный
  
Группа: Свой
Сообщений: 459
Регистрация: 15-07-04
Из: g.Penza
Пользователь №: 326

|
Цитата(koziy_mf @ Jan 13 2005, 23:36) Для нормального алгоритма шифрования даже если мне и известна часть расшифрованных данных, это не может помочь найти ключ для расшифровки? Не совсем. Есть такие понятие как линейный и дифференциальный криптоанализ. Для гарантированного вскрытия ключа для нормальных алгоритмов необходимо определённое количество пар зашифрованного и открытого текста. Если количество пар текстов очень велико, то набрать их просто невозможно. Таким образом, решение простым перебором "в лоб" наиболее простое.
|
|
|
|
|
Jan 17 2005, 12:46
|

Гуру
     
Группа: Свой
Сообщений: 3 041
Регистрация: 10-01-05
Из: Москва
Пользователь №: 1 874

|
Цитата(ASN @ Jan 14 2005, 11:05) Цитата(koziy_mf @ Jan 13 2005, 23:36) Для нормального алгоритма шифрования даже если мне и известна часть расшифрованных данных, это не может помочь найти ключ для расшифровки? Не совсем. Есть такие понятие как линейный и дифференциальный криптоанализ. Для гарантированного вскрытия ключа для нормальных алгоритмов необходимо определённое количество пар зашифрованного и открытого текста. Если количество пар текстов очень велико, то набрать их просто невозможно. Таким образом, решение простым перебором "в лоб" наиболее простое. Про понятия я в курсе. Говоря простыми словами, в настоящее время нормальным считается только тот шифр, для которого для произвольного ключа из любого заданного подкласса ключей, защитого внутри черного ящика, реализовывающего шифрование и расшифровку этим ключем, не существует известного алгоритма определения зашитого ключа, более эффективного, чем полный перебор возможных ключей. Криптоаналитик при этом может произвольным образом и в произвольном порядке генерировать входы черного ящика и смотреть, что появляется на выходе. Если такое свойство выполняется - тогда, очевидно, знание только некоторых пар вход-выход (как в рассматриваемом случае) ему не слишком может помочь. Сжатие позволяет дополнительно застраховаться на случай, если, вдруг, такой алгоритм будет когда-либо открыт. BTW AES, например, доказуемо устойчив к линейному и дифференциальному криптоанализу.
--------------------
Пишите в личку.
|
|
|
|
|
Jan 17 2005, 21:10
|
Местный
  
Группа: Свой
Сообщений: 459
Регистрация: 15-07-04
Из: g.Penza
Пользователь №: 326

|
OldringУважаемый, про понятия я, конечно же, не Вам отписал.  Извиняюсь, что не указал адресат.  IMHO, просто сжимать исходные данные - это, по существу, выполнить дополнительное зашифрование. То есть достаточно зашифровать одним алгоритмом, и зашифровать этот же текст ещё раз другим (наподобие TripleDES). Если при этом, использовать различные ключи (или один ключ длиной 128 бит), то сложность даже для атаки «встреча посередине» становиться слишком большой, а дешифрование данных невозможным. Сжатие данных – это способ снизить расход ключа, но ценой значительного увеличения вычислительных мощностей. Тем более, что это эффективно только если исходные данные принципиально сжимаемы. IMHO, для современных форматов хранения аудио- и видео- записей (а также для исполняемых файлов) это свойство исходных данных отсутствует. Так что, ничего проще и надёжней, чем генератор гаммы, IMHO, предложить нереально. Тут ведь речь идёт о скорость в единицы мегабит в секунду. jekaТо, что слабо вериться устойчивость ко взлому 1,6 Гбит в секунду, IMHO, верно. Тут вот какое дело – ключ размазан по шифруемому тексту и объём зашифрованной информации является критичным. То есть теоретически, на достаточно большом промежутке зашифрованных данных начнёт проявляться статистическая зависимость, и ключ станет уязвим к корреляционной атаке. Как это возможно сделать я лично себе не представляю, но умные дядьки (на подобие Б. Шнаера, В. Столлингса и прочих) уверены, что возможно. koziy_mfРазрабатывать, (в смысле, «исследовать» для собственного образования) различные алгоритмы преобразования информации (например, с целью повышения «достоверности хранения» или «устойчивости к передачи») Вам никто запретить не может. Это Ваше право. В том числе и в USA. Вы даже можете публиковать Ваши наработки в открытой печати, но не в электронном виде. Вы не имеет право также продавать или сдавать в аренду Ваши устройства. Если уж встала задача аппаратного зашифрования, то, IMHO, проще скачать с opencores.org пару корок, купить Evolution board и всю критичную инфу гонять бы через сей девайс. Хотя, ежели кому-то очень надо «хакнуть» Вашу инфу, то они это сделают очень просто: либо просто считают всё информацию прямо с экрана монитора, либо выкрадут ключ – ведь 128 бит абсолютно случайной информации не в голове же хранить.  . Так что, IMHO, Вы всё правильно делаете – простецкий программный маскиратор и «случайная» длинная фраза, захешированная в пароль – самое то.
|
|
|
|
|
Jan 27 2005, 17:28
|

Гуру
     
Группа: Свой
Сообщений: 3 041
Регистрация: 10-01-05
Из: Москва
Пользователь №: 1 874

|
Цитата(ASN @ Jan 18 2005, 01:10) То, что слабо вериться устойчивость ко взлому 1,6 Гбит в секунду, IMHO, верно. Тут вот какое дело – ключ размазан по шифруемому тексту и объём зашифрованной информации является критичным. То есть теоретически, на достаточно большом промежутке зашифрованных данных начнёт проявляться статистическая зависимость, и ключ станет уязвим к корреляционной атаке. Как это возможно сделать я лично себе не представляю, но умные дядьки (на подобие Б. Шнаера, В. Столлингса и прочих) уверены, что возможно. Возьмем, например, AES-128. 1.6 ГБит в секунду - это 80 ns на блок. Что же в этом невероятного? Особенно, с учетом хорошей конвейеризуемости алгоритма? Или я что-то пропустил, и AES уже скомпрометирован? IMHO шеноновские теоретические границы, связанные с equivocation, не имеют никакого отношения к _практической_ возможности взлома современных шифров. Допустим, нам известен результат шифрования AES-128 с некоторым неизвестным ключем блока из 128 нулевых бит. Очевидно, этих 128 бит достаточно для определения ключа. Полным перебором. Но какая от этого практическая польза?
--------------------
Пишите в личку.
|
|
|
|
|
Jan 27 2005, 18:05
|
Частый гость
 
Группа: Свой
Сообщений: 165
Регистрация: 27-08-04
Из: Moscow
Пользователь №: 554

|
Цитата(Oldring @ Jan 27 2005, 20:28) Возьмем, например, AES-128. 1.6 ГБит в секунду - это 80 ns на блок. Что же в этом невероятного? Особенно, с учетом хорошей конвейеризуемости алгоритма? Я бы не сказал, что 80 нс на блок - это так уж тривиально. Обработка блока в AES - 43 раунда, кажется. Если взять наш ГОСТ - 32 раунда. 2 нс на такой раунд вряд ли представляются тривиальной задачей. Особенно если делать на FPGA, а не на ASIC. Кроме того, очень хотелось бы услышать - что имеется в виду в данном случае под конвееризацией алгоритма шифрования?
|
|
|
|
|
Jan 27 2005, 20:18
|
Частый гость
 
Группа: Свой
Сообщений: 165
Регистрация: 27-08-04
Из: Moscow
Пользователь №: 554

|
Цитата(makc @ Jan 27 2005, 21:17) А кто-нибудь пробовал реализовать наш ГОСТ на ПЛИС?  Если пробовал, то очень интересно, какая получалась рабочая частота проекта при учете того, что шифрование блока выполняется за 32 такта. Т.е. раунд за такт. Я думаю, что пробовали многие. Лично у меня выходило 132 МГц такт, 35 тактов на блок. Использовал Xilinx Virtex-2. Задачи добиться более высокой частоты не было.
|
|
|
|
|
Jan 28 2005, 08:09
|

Гуру
     
Группа: Админы
Сообщений: 3 621
Регистрация: 18-10-04
Из: Москва
Пользователь №: 904

|
Цитата(lvitaly @ Jan 27 2005, 23:18) Цитата(makc @ Jan 27 2005, 21:17) А кто-нибудь пробовал реализовать наш ГОСТ на ПЛИС?  Если пробовал, то очень интересно, какая получалась рабочая частота проекта при учете того, что шифрование блока выполняется за 32 такта. Т.е. раунд за такт. Я думаю, что пробовали многие. Лично у меня выходило 132 МГц такт, 35 тактов на блок. Использовал Xilinx Virtex-2. Задачи добиться более высокой частоты не было. А каким образом в этом случае реализовывались сумматор по модулю 32 и узел замены? Ведь, если я правильно понимаю, проблема скорости подобного шифратора лежит в большой длине комбинаторных путей, которые получаются из этого самого узла замены и сумматоров.
--------------------
BR, Makc В недуге рождены, вскормлены тленом, подлежим распаду. (с) У.Фолкнер.
|
|
|
|
|
Jan 28 2005, 09:42
|
Частый гость
 
Группа: Свой
Сообщений: 165
Регистрация: 27-08-04
Из: Moscow
Пользователь №: 554

|
Цитата(makc @ Jan 28 2005, 11:09) А каким образом в этом случае реализовывались сумматор по модулю 32 и узел замены? Ведь, если я правильно понимаю, проблема скорости подобного шифратора лежит в большой длине комбинаторных путей, которые получаются из этого самого узла замены и сумматоров. Да, это самый длинный путь. Но есть нормальный способ решения именно этой проблемы. Большего, увы, я Вам не скажу, поскольку начинаются конкретные know how. Я занимаюсь ГОСТом (и сопутствующими ГОСТами) уже несколько лет, так что если нужно что-то сделать в этой области - милости просим в мыло.
|
|
|
|
|
Jan 28 2005, 09:46
|
Местный
  
Группа: Свой
Сообщений: 459
Регистрация: 15-07-04
Из: g.Penza
Пользователь №: 326

|
makcПросто, без изысков  Код variable Math33: Math_32_Type; variable CY: std_logic; ... PM := PERMUTE_4x4(C.CM1); Math33:= ADDC_32(C.N4,N6,CY); CY := Math33(KEY_VECTOR_LENGTH); ... Что такое PERMUTE_4x4 по предыдущей ссылке. На выходе KeyData - триггеры, тогда путь становиться минимально возможным. Поэтому и 35 тактов (данные, то в CM1 := ADD_32(KD,N1) будут только на следующем такте)  .
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|