1) АНБ в 1970 косвенно приняло участие в разработке S-блоков для алгоритма шифрования DES. На тот момент, методика дифференциального криптоанализа не была известна в широких научных кругах.
В 1990 году независимые исследователи обнаружили, что S-блоки, разработанные в 1970 оказались на удивление устойчивыми к дифференциальному криптоанализу. Вероятность того, что такая устойчивость обоснована какой-либо случайностью — мала. Наиболее закономерный вариант, что S-блоки были каким-либо образом усовершенствованы.
2) Еще раз повторю про секретные S-блоки.
Во время честного шифрования и дешифрования в алгоритме используются самые обычные публичные S-блоки. Секретные же S-блоки есть только у того, что обладает уязвимостью, они позволяют расшифровать данные, не обладая ключом
Говоря о реализации, секретные S-блоки незначительно отличаются от обычных S-блоков, в небольшом количестве параметров. Однако такое незначительное отличие параметров подобрано специальным образом. Если кратко, то почти для всех входных данных выходные данные секретного S-блока и обычного одинаковы, однако для некоторого заранее известного набора входных данных выходные данные секретного S-блока и обычного отличаются. Именно это знание позволяет значительно упростить процесс перебора, необходимого для взлома алгоритма.
Чтобы не быть голословным, для алгоритма BEA-1 для S0, S1, S2 количество входных данных для которых выходные данные секретного S-блока и обычного одинаковы есть 944 (из 1024, так как блоки работают с сегментами данных по 10 бит) для S3 это число 925 (также из 1024)
Сам процесс взлома заключается в том, что при расшифровке зашифрованного сообщения вместо блоков обратных публичным S-блокам используются блоки обратные секретным S-блокам, и параллельно с этим происходит подбор раундовых ключей.
Если кратко, секретные S-блоки используются вместо публичных при расшифровке, и это ускоряет процесс перебора ключей. Ускоряет = уменьшает размер множества, по которому ведется перебор
3) Про «вычислить». Имелось ввиду, найти как раз таки те самые секретные S-блоки, которые и представляют из себя уязвимость, что может быть невероятно сложно и для чего определенно необходимо везение. По поводу заработать, уязвимость можно продать за очень большие деньги, тем же хакерам или спецслужбам, вопрос в том, насколько жато морально.
4) Для бэкдора это хорошо, потому что при обладании такими свойствами доказать его наличие в алгоритме шифрования невозможно
Во время взлома происходит поэтапный процесс перебора раундовых ключей, раунд за раундом. Использование секретных S-блоков в процессе дешифровки позволяет многократно уменьшить то множество ключей, среди которых производится перебор
Прошу прощения, перепутал один момент связанный с ассиметричным шифрованием
"Их используют, например, для создания электронной подписи, где пользователь обладающий приватным ключом может зашифровать сообщение, и любой другой пользователь, обладающий открытым (публичным) ключом может это сообщения......"
Наоборот, публичным ключом сообщение шифруют, а приватным расшифровывают
Однако, стоит заметить, что для генерации электронной подписи необходим приватный ключ
Да и само существование бэкдоров — достаточно скользкая тема, ведь почти все компетентные работы в данной области работы лишь осторожно допускают возможность его существоания в том или ином алгоритме, указывая на детали, которые могут об этом свидетельствовать
Да, абсолютно верно, сами по себе SP-сети уязвимостей не имеют, это просто математическая модель, описывающая алгоритм. Бэкдор может скрываться в конкретной реализации S-блоков.
По поводу вопросов:
1) Сложно сказать, как повлияет увеличение размера S-блоков на изменении вероятности именно НАХОЖДЕНИЯ секретных S-блоков. Это очень запутанная математика конечных полей, в которой чёрт ногу сломит. Вероятнее всего, бэкдор будет найти сложнее, но насколько сложнее, линейно, квадратично, итд — лично мне пока что непонятно.
Вообще, на эту тему не так много работ, всё еще ведутся различные исследования. Алгоритм BEA-1, по заявлению авторов — один из первых в своем роде, планируется дальнейшая работа по созданию более совершенных бэкдоров. Поэтому, опять же сложно оценить, как повлияет увеличение размера S-блоков на сложность разработки уязвимости. Возможно, для S-блоков большего размера уязвимости будет создавать проще, так как больше «пространства для манёвра»
2) Про доказуемо случайные числа. Честно говоря, сходу ответить не могу. Ведь в данном случае требуется математически доказать невозможность существования бэкдора при заполнении таблицы таким образом. Скорее всего, возможность создания уязвимости при таком подходе к создании таблицы значительно уменьшится. Однако, опять же, не факт, что такая возможность исчезнет совсем.
На самом деле, шифрование двумя разными алгоритмами — это классная идея. Про это не так много написано, единственная зацепка — «Software Application GoldBug Messenger», защищеный почтовый клиент.
Так вот, там алгоритм шифрования состоит из трёх стадий с использованием разных методов: -Ассиметричное RSA шифрование
-Симметричное AES-256
-шифрование пакетов на уровне HTTPS (то есть SSL/TLS Tunnel).
Такой подход, вероятно, может защитить от бэкдоров.
Для двойного шифрования одним и тем же алгоритмом ситуация следующая. (Тут уже скорее про обычную криптостойкость, без использования бэкдоров, хотя, это может и усложнить процесс взлома алгоритма даже и использованием бэкдора)
Если речь идет про двойное шифрование с использованием одного и того же ключа, то для некоторых шифров это может скорее ухудшить их криптостойкость.
Если же используются два разных ключа, то это более безопасно, но не намного. Можно провести аналогию с замками из реального мира. Поставив на дверь два физических замка одного типа, вы гарантируете, что вор, который может вскрыть один замок за пять минут, теперь должен потратить десять минут. Но гораздо надёжнее купить замок, который был бы вдвое дороже, и который вор не мог бы взломать вообще.
В криптографии это работает примерно так же: в общем случае вы не можете гарантировать, что шифрование дважды делает его более чем в два раза более трудным для взлома шифрования. Так что если АНБ обычно может расшифровать ваше сообщение за N минут, с двойным шифрованием, им нужно 2 * N минут. Вероятно, вам будет гораздо лучше, если вместо этого вы удвоите длину ключа, что может привести к тому, что им потребуется 100 лет, чтобы взломать шифрование.
В некоторых случаях имеет смысл повторить шифрование, но нужно учитывать некоторые подводные камни математического характера. Например, Triple-DES в основном повторяется трижды с тремя разными ключами (за исключением того, что вы encrypt-decrypt-encrypt, а не просто шифруете три раза). Но это также показывает, насколько неинтуитивно это работает, потому что в то время как Triple-DES утрояет количество шифрований, он имеет только двойную эффективную длину ключа алгоритма DES.
Отвечу поэтапно:
1) АНБ в 1970 косвенно приняло участие в разработке S-блоков для алгоритма шифрования DES. На тот момент, методика дифференциального криптоанализа не была известна в широких научных кругах.
В 1990 году независимые исследователи обнаружили, что S-блоки, разработанные в 1970 оказались на удивление устойчивыми к дифференциальному криптоанализу. Вероятность того, что такая устойчивость обоснована какой-либо случайностью — мала. Наиболее закономерный вариант, что S-блоки были каким-либо образом усовершенствованы.
2) Еще раз повторю про секретные S-блоки.
Во время честного шифрования и дешифрования в алгоритме используются самые обычные публичные S-блоки. Секретные же S-блоки есть только у того, что обладает уязвимостью, они позволяют расшифровать данные, не обладая ключом
Если кратко, секретные S-блоки используются вместо публичных при расшифровке, и это ускоряет процесс перебора ключей. Ускоряет = уменьшает размер множества, по которому ведется перебор
3) Про «вычислить». Имелось ввиду, найти как раз таки те самые секретные S-блоки, которые и представляют из себя уязвимость, что может быть невероятно сложно и для чего определенно необходимо везение. По поводу заработать, уязвимость можно продать за очень большие деньги, тем же хакерам или спецслужбам, вопрос в том, насколько жато морально.
4) Для бэкдора это хорошо, потому что при обладании такими свойствами доказать его наличие в алгоритме шифрования невозможно
Во время взлома происходит поэтапный процесс перебора раундовых ключей, раунд за раундом. Использование секретных S-блоков в процессе дешифровки позволяет многократно уменьшить то множество ключей, среди которых производится перебор
Прошу прощения, перепутал один момент связанный с ассиметричным шифрованием
"Их используют, например, для создания электронной подписи, где пользователь обладающий приватным ключом может зашифровать сообщение, и любой другой пользователь, обладающий открытым (публичным) ключом может это сообщения......"
Наоборот, публичным ключом сообщение шифруют, а приватным расшифровывают
Однако, стоит заметить, что для генерации электронной подписи необходим приватный ключ
за ремарку спасибо polearnik
Да и само существование бэкдоров — достаточно скользкая тема, ведь почти все компетентные работы в данной области работы лишь осторожно допускают возможность его существоания в том или ином алгоритме, указывая на детали, которые могут об этом свидетельствовать
Да, абсолютно верно, сами по себе SP-сети уязвимостей не имеют, это просто математическая модель, описывающая алгоритм. Бэкдор может скрываться в конкретной реализации S-блоков.
По поводу вопросов:
1) Сложно сказать, как повлияет увеличение размера S-блоков на изменении вероятности именно НАХОЖДЕНИЯ секретных S-блоков. Это очень запутанная математика конечных полей, в которой чёрт ногу сломит. Вероятнее всего, бэкдор будет найти сложнее, но насколько сложнее, линейно, квадратично, итд — лично мне пока что непонятно.
Вообще, на эту тему не так много работ, всё еще ведутся различные исследования. Алгоритм BEA-1, по заявлению авторов — один из первых в своем роде, планируется дальнейшая работа по созданию более совершенных бэкдоров. Поэтому, опять же сложно оценить, как повлияет увеличение размера S-блоков на сложность разработки уязвимости. Возможно, для S-блоков большего размера уязвимости будет создавать проще, так как больше «пространства для манёвра»
2) Про доказуемо случайные числа. Честно говоря, сходу ответить не могу. Ведь в данном случае требуется математически доказать невозможность существования бэкдора при заполнении таблицы таким образом. Скорее всего, возможность создания уязвимости при таком подходе к создании таблицы значительно уменьшится. Однако, опять же, не факт, что такая возможность исчезнет совсем.
На самом деле, шифрование двумя разными алгоритмами — это классная идея. Про это не так много написано, единственная зацепка — «Software Application GoldBug Messenger», защищеный почтовый клиент.
Так вот, там алгоритм шифрования состоит из трёх стадий с использованием разных методов: -Ассиметричное RSA шифрование
-Симметричное AES-256
-шифрование пакетов на уровне HTTPS (то есть SSL/TLS Tunnel).
Такой подход, вероятно, может защитить от бэкдоров.
Для двойного шифрования одним и тем же алгоритмом ситуация следующая. (Тут уже скорее про обычную криптостойкость, без использования бэкдоров, хотя, это может и усложнить процесс взлома алгоритма даже и использованием бэкдора)
Если речь идет про двойное шифрование с использованием одного и того же ключа, то для некоторых шифров это может скорее ухудшить их криптостойкость.
Если же используются два разных ключа, то это более безопасно, но не намного. Можно провести аналогию с замками из реального мира. Поставив на дверь два физических замка одного типа, вы гарантируете, что вор, который может вскрыть один замок за пять минут, теперь должен потратить десять минут. Но гораздо надёжнее купить замок, который был бы вдвое дороже, и который вор не мог бы взломать вообще.
В криптографии это работает примерно так же: в общем случае вы не можете гарантировать, что шифрование дважды делает его более чем в два раза более трудным для взлома шифрования. Так что если АНБ обычно может расшифровать ваше сообщение за N минут, с двойным шифрованием, им нужно 2 * N минут. Вероятно, вам будет гораздо лучше, если вместо этого вы удвоите длину ключа, что может привести к тому, что им потребуется 100 лет, чтобы взломать шифрование.
В некоторых случаях имеет смысл повторить шифрование, но нужно учитывать некоторые подводные камни математического характера. Например, Triple-DES в основном повторяется трижды с тремя разными ключами (за исключением того, что вы encrypt-decrypt-encrypt, а не просто шифруете три раза). Но это также показывает, насколько неинтуитивно это работает, потому что в то время как Triple-DES утрояет количество шифрований, он имеет только двойную эффективную длину ключа алгоритма DES.