Почему рекомендуется делать криптоалгоритмы общедоступными?

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

Мой вопрос: зачем нам раскрывать наш алгоритм, если он зависит в основном от длины ключа, если мой ключ был достаточно длинным и действительно рандомизированным, так в чем же польза от знания алгоритма?


person Dorgham    schedule 31.03.2013    source источник
comment
безупречный алгоритм так же хорош (машет руками), как и упомянутые вами элементы. Алгоритм несовершенный можно сломать с помощью ярлыков, не требующих изучения всего пространства ключей. Разоблачение вашего алгоритма поможет определить, является ли он ошибочным.   -  person Michael Petrotta    schedule 31.03.2013
comment
В криптографии, где предположительно важная информация скрыта, не существует такой вещи, как безопасность через неясность. Алгоритм может иметь тривиальные недостатки, выходящие за рамки простого манипулирования длиной ключа. Например, возьмем простой алгоритм XOR — возьмем большую длину ключа. Подайте ряд данных и наблюдайте за выходом. Трескаться. Помните, что даже некоторые отраслевые безопасные протоколы оказались взломанными — помните WEP?   -  person    schedule 31.03.2013
comment
но дело в том, что рассмотренный алгоритм сейчас выставлен на всеобщее обозрение, как я понимаю, поэтому каждый хакер знает алгоритм и как его реверсировать, а значит ничем не отличается от моего скрытого алгоритма при взломе. если я что-то неправильно понимаю, скажите мне. @Тихоокеанское стандартное время   -  person Dorgham    schedule 31.03.2013
comment
@MohammadDorgham Тило уже объяснил это (дважды) в ответных комментариях, которые он оставил на свои собственные ответы.   -  person    schedule 31.03.2013
comment
Если вы проанализируете и поймете ошибочный алгоритм, вам, возможно, будет легче отменить его, чем если бы вы его не просматривали. Понимание безупречного алгоритма не поможет вам изменить его совсем. Своего рода красота (хорошей) криптовалюты.   -  person Michael Petrotta    schedule 31.03.2013


Ответы (1)


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

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

Противоположный подход называется «безопасность до неизвестности» и полностью зависит от того, что никто никогда не узнает, как все работает. И если они это сделают (как это обычно делают хакеры), у вас есть проблема.

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

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

person Thilo    schedule 31.03.2013
comment
Я имею в виду .. они выставляют предложенный алгоритм для его проверки, чтобы он был известен сейчас ... так какая будет разница, когда я скрою свой собственный алгоритм и был взломан криптоаналитиками и знал его детали ?? в конце концов, это будет зависеть от длины ключа, чтобы предотвратить атаку грубой силы, и истинного случайного ключа, чтобы предотвратить математический анализ. - person Dorgham; 31.03.2013
comment
Нет! Дело в том, что безопасный алгоритм может быть атакован только методом грубой силы (что невозможно сделать с помощью длинных ключей). Но не все алгоритмы безопасны. Их можно взломать с гораздо меньшими усилиями, чем ключи грубой силы. Если вы не проверите свой алгоритм, мы не поверим вам, что он безопасен (и вы тоже не поверите, блестящие умы потерпели неудачу в этих вещах раньше). - person Thilo; 31.03.2013
comment
но дело в том, что рассмотренный алгоритм теперь доступен для всех, как я понимаю, поэтому каждый хакер знает алгоритм и как его отменить, если я что-то не так понимаю, скажите мне. - person Dorgham; 31.03.2013
comment
Вы знаете все детали AES. Теперь иди и сломай его. Если алгоритм безопасен, вы не сможете отменить его, даже если вам известны все детали. Только знание ключа поможет вам. Это определение безопасного алгоритма. - person Thilo; 31.03.2013
comment
Теоретически не имеет значения, делитесь ли вы деталями безопасного алгоритма с кем-либо еще или нет. Но на практике это единственный способ узнать, действительно ли он безопасен, и единственный способ заставить других доверять вашему алгоритму. - person Thilo; 31.03.2013
comment
Я новичок в криптографии и не знаю деталей AES, но вы имеете в виду, что алгоритм разработан таким образом, что его нельзя отменить? - person Dorgham; 31.03.2013
comment
@ Мохаммад, если AES спроектирован хорошо, его нужно будет принудительно перевернуть (конечно, при условии, что у вас нет ключа). С большими ключами это займет некоторое время. Несколько возрастов Вселенной. - person Michael Petrotta; 31.03.2013
comment
В качестве последнего комментария, чтобы закруглить ситуацию (и, возможно, добавить к вашему замешательству), самого безупречного алгоритма может быть недостаточно, если ключевое пространство слишком мало. Рассмотрим MD5. С алгоритмом проблем вообще нет (я так думаю). Но его больше нельзя использовать для приложений с высоким уровнем безопасности, потому что современное оборудование может просто переборщить. Таким образом, вам всегда нужны оба: хороший алгоритм и достаточная сложность ключа, чтобы сделать перебор (единственный способ атаки на него) невозможным. - person Thilo; 31.03.2013
comment
@Thilo: MD5 на самом деле имеет серьезный базовый алгоритмический недостаток. - person Michael Petrotta; 31.03.2013
comment
спасибо за ответы и комментарии от всех вас, я принял ответ после того, как получил идею из обсуждения в комментариях, поэтому не могли бы вы отредактировать свой ответ и перефразировать всю информацию в комментариях, чтобы она была в одном месте для всех, кто придет после @thilo - person Dorgham; 31.03.2013
comment
@MichaelPetrotta: Ой. Плохой пример тогда. Но я думаю, что точка зрения остается в силе. И, конечно же, хороший пример того, как сложно сделать хороший алгоритм. - person Thilo; 31.03.2013
comment
О, тут не до шуток. Если кто-то думает о создании собственного криптоалгоритма, не делайте этого. Используйте что-то уже существующее. Если вы действительно хотите, поразмышляйте над прикладной криптографией в горах Непала в течение десяти лет, тогда возможно, подумайте об этом. - person Michael Petrotta; 31.03.2013