id: Гость   вход   регистрация
текущее время 11:53 23/04/2024
Владелец: unknown (создано 24/03/2008 11:45), редакция от 31/03/2008 21:17 (автор: volandlm) Печать
Категории: криптография, протоколы
http://www.pgpru.com/Новости/2008/КомбинированиеКриптоалгоритмовОтФольклораКТеорииИПрактике
создать
просмотр
редакции
ссылки

24.03 // Комбинирование криптоалгоритмов: от фольклора к теории и практике


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


Если нет доверия одному шифру почему бы не использовать их каскад? Если хэш-функции не стойки, почему бы не использовать их совместно, объединяя полученные значения?


Иногда вопросы комбинирования возникают естественным образом, без желания специально создать запас прочности – как влияет на стойкость вложение подписей или хэшей, как хэшировать данные от двух сторон для выработки общего ключа?


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


Израильский специалист Amir Herzberg в работе Folklore, Practice and Theory of Robust Combiners, начало которой было положено ещё в 2002 году, предпринял очередную попытку классификации и исследования стойкости "фольклорных", основанных только на интуиции, методов комбинирования алгоритмов (так называемых стойких "комбайнеров", "комбинаторов").


Доказательства приведены в рамках идеализированной модели атак для абстрактных алгоритмов. Комбинированный алгоритм рассматривается как чёрный ящик – свойства исходных алгоритмов не рассматриваются. При этом получен ряд интересных выводов.


Так наиболее популярный метод комбинирования – каскадное шифрование (последовательное применение систем шифрования, когда текст сначала шифруется одним, затем другим алгоритмом с разными ключами E = еk1 (ek2 (x))), действительно является стойким против трёх типов атак-различителей (атак на основе подобранных открытых текстов IND-CPA, неадаптивных атак на основе подобранных шифртекстов IND-CCA1 и атак на основе подобранных шифртекстов с повторениями IND-rCCA). Но при этом шифрокаскады нестойки в рамках моделей адаптивных и генерализованных атак с подобраным шифртекстом (IND-CCA2, IND-gCCA). Это первый результат, полученный для каскадов систем шифрования, а не блочных шифров как таковых. Для блочных шифров актуальной остается работа Маурера, в которой доказывается, что в каскаде блочных шифров самым слабым звеном является первый шифр каскада.


Результаты данной работы распространяются как на каскады симметричных так и ассиметричных систем шифрования.


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


Другой простой и интуитивно понятный способ комбинирования – copy-combiner f(x) || g(x) – объединение выходов двух псевдослучайных функций с одинаковым значением входа x является стойким для большинства практических применений, где требуется проверка целостности: коллизионно-стойкое хэширование, коды аутентификации собщений (MAC), цифровые подписи.


А вот parallel-combiner f||f'(<x, x'>) = f(x) || f'(x') может использоваться там где нужна необратимость – если хотя бы одна из функций f или f' необратима, то и комбинированный вариант из двух функций также будет необратим.


А можно ли применять какскад к криптографическим функциям, не связанным с системами шифрования? По аналогии такой каскад будет выглядеть как последовательное применение функций f и g: f*g(x) = f(g(x)).


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


XOR-input combiner П xor П' является в целом стойким для шифрования. Например для систем шифрования с открытым ключём он обладает свойствами IND-CPA, IND-CCA1, но не соответствует спецификациям IND-CCA2, IND-gCCA, IND-rCCA.


Также авторы рассматривают в работе пример построения более сложной схемы комбинирования, расчитанной на противодействия нескольким атакам.


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


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


Источник: Cryptology ePrint Archive


 
— ntldr (24/03/2008 16:14)   профиль/связь   <#>
комментариев: 371   документов: 19   редакций: 20
При последовательном шифровании несколькими алгоритмами на разных ключах стойкость будет не меньше, чем самый сильный алгоритм в цепочке. Этот факт давно известен. Больший интерес представляет комбинирование хэшей со сложением полученых хэш значений. При этом вполне возможно понижение коллизионной стойкости, поэтому хотелось бы почитать работу рассматривающую свойства комбинаций конкретных хэшей.
— unknown (24/03/2008 16:39)   профиль/связь   <#>
комментариев: 9796   документов: 488   редакций: 5664
Если заменить идеальные функции реальными, то естественно всё несколько хуже:
обсуждалось здесь, fileработа вот
— Гость (24/03/2008 19:25)   <#>
fileЗдесь Yaakov Hoch и Adi Shamir доказывают, что для комбинирования хэшей можно использовать любую однозначно обратимую функцию, например XOR :)

We have shown that the construction C(M) = F(M)⊕G(M) (or any n-bit function of F and G which is uniquely invertible when its output and any one of its input parameters is known) is indiferentiable in O(2n/2) queries from a random oracle
— unknown (25/03/2008 10:03, исправлен 25/03/2008 10:04)   профиль/связь   <#>
комментариев: 9796   документов: 488   редакций: 5664

И кому теперь вообще верить? Опять "научному фольклору"?



"On the Impossibility of Efficiently Combining Collision Resistant Hash Functions"

By Dan Boneh and Xavier Boyen.

In Advances in Cryptology (CRYPTO 2006), volume 4117 of Lecture Notes in Computer Science, pages 570-583. Springer, 2006.

Abstract

Let H1, H2 be two hash functions. We wish to construct a new hash function H that is collision resistant if at least one of H1 or H2 is collision resistant. Concatenating the output of H1 and H2 clearly works, but at the cost of doubling the hash output size. We ask whether a better construction exists, namely, can we hedge our bets without doubling the size of the output? We take a step towards answering this question in the negative
we show that any secure construction that evaluates each hash function once cannot output fewer bits than simply concatenating the given functions.





"Non-trivial Black-Box Combiners for Collision-Resistant Hash-Functions Don’t Exist"

Advances in Cryptology – EUROCRYPT 2007, Pages 23-33

Abstract
A (k,ℓ)-robust combiner for collision-resistant hash-functions is a construction which from ℓ hash-functions constructs a hash-function which is collision-resistant if at least k of the components are collision-resistant. One trivially gets a (k,ℓ)-robust combiner by concatenating the output of any ℓ− k + 1 of the components, unfortunately this is not very practical as the length of the output of the combiner is quite large. We show that this is unavoidable as no black-box (k,ℓ)-robust combiner whose output is significantly shorter than what can be achieved by concatenation exists. This answers a question of Boneh and Boyen (Crypto’06).



— Гость (25/03/2008 13:14)   <#>
Ссылка на вышеупомянутую работу (и слайды к ней) Dan Boneh и Xavier Boyen, взятая из(!) вышеупомянутой работы Yaakov Hoch и Adi Shamir. (К их работе тоже есть fileслайды).
— Гость (25/03/2008 13:21)   <#>
file*слайды
— unknown (25/03/2008 15:07)   профиль/связь   <#>
комментариев: 9796   документов: 488   редакций: 5664
Точно. А через пару лет ещё какую-нибудь работу напишут, где докажут, что всё опять наоборот, слайды нарисуют, на конференции выступят, гранты получат ;-)
— Гость (26/03/2008 03:00)   <#>
где докажут, что всё опять наоборот

А что в криптографии доказательства имеют не такую же силу как в среднем в математике? Тогда это вообще не доказательства, а намёки и идеи.
— unknown (26/03/2008 10:17, исправлен 26/03/2008 10:24)   профиль/связь   <#>
комментариев: 9796   документов: 488   редакций: 5664
Максимум что можно доказать в криптографии – это выявить сложную задачу, которую в течении долгого времени никто не мог решить и доказать, что вновь изобретённый протокол или алгоритм взломать столь же сложно, как и решить эту задачу (используя ассимптотическое приближение с учётом моделирования вычислительных мощностей). Вот вам и вся provable security. И хорошо если сама эта задача математичеси реальна (разложение произведения простых чисел на множители). Чаще всего она вымышленна (доказазывается экивалентность или неразличимость к модели несуществующей идеальной функции – random oracle).

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

И этот подход считается ещё невероятным прогрессом! После изобретения provable security количество ошибок в протоколах уменьшилось. Раньше действовали просто методом попыток взлома на основе известных атак с последующими исправлениями.

Сейчас есть возможность захватить широкий спектр атак, включая неизвестные.

Но, как иронизируют криптографы: provable secure, probable not...
Ваша оценка документа [показать результаты]
-3-2-1 0+1+2+3