Что такое ключ в криптографии. Криптографические ключи. Какой длины должен быть ключ

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

Конечно, разложение большого числа на множители - задача трудная. Однако сразу возникает резонный вопрос, насколько трудная. К несчастью для криптографов, сложность ее решения уменьшается. И что еще хуже, эта сложность падает значительно более быстрыми темпами, чем ожидалось ранее. Например, в середине 70-х годов считалось, что для разложения на множители числа из 125 цифр потребуются десятки квадрильонов лет. А всего два десятилетия спустя с помощью компьютеров, подключенных к сети Internet, удалось разложить на множители число из 129 цифр. Этот прорыв стал возможен благодаря тому, что за прошедшие 20 лет были не только предложены новые, более быстрые, методы разложения на множители больших чисел, но и возросла производительность используемых компьютеров.

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

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

Чтобы оценить длину открытого ключа, будем измерять доступную криптоаналитику вычислительную мощь в так называемых мопс-годах , т. е. количеством операций, которые компьютер, способный работать со скоростью 1 миллион операций в секунду, выполняет за год. Допустим, что хакер имеет доступ к компьютерным ресурсам общей вычислительной мощью 10000 мопс-лет, крупная корпорация - 10 7 мопс-лет, правительство - 10 7 мопс-лет. Это вполне реальные цифры, если учесть, что при реализации упомянутого выше проекта разложения числа из 129 цифр его участники задействовали всего 0.03% вычислительной мощи Internet, и чтобы добиться этого, им не потребовалось принимать какие-либо экстраординарные меры или выходить за рамки закона.

Предположим еще, что вычислительная мощь возрастает в 10 раз каждые 5 лет, а метод, который используется для разложения больших чисел на множители, позволяет это делать с трудоемкостью, указанной в табл. 6.3.

Таблица 6.3 . Трудоемкость разложения больших чисел на множители.

Сделанные предположения позволяют оценить длину стойкого открытого ключа в зависимости от срока, в течение которого необходимо хранить зашифрованные с его помощью данные в секрете (табл. 6.4). При этом необходимо помнить, что криптографические алгоритмы с открытым ключом часто применяются для защиты очень ценной информации на весьма долгий период времени. Например, в системах электронных платежей или при нотариальном заверении электронной подписи. Идея потратить несколько месяцев на разложение большого числа на множители может показаться кому-то очень привлекательной, если в результате он получит возможность рассчитываться за свои покупки по вашей кредитной карточке. Кроме того, я думаю, что вам совсем не улыбается перспектива быть вызванным через 20 лет на заседание суда, на котором рассматривается дело о наследстве, и отстаивать невозможность подделать электронную подпись вашего дедушки, использованную им для составления завещания в вашу пользу.

Год Хакер Крупная корпорация Правительство
2000 1024 1280 1536
2005 1280 1536 2048
2010 1280 1536 2048
2015 1536 2048 2048

С приведенными в табл. 6.4 данными согласны далеко не все авторитетные криптографы. Некоторые из них наотрез отказываются делать какие-либо долгосрочные прогнозы, считая это бесполезным делом. Другие, например, специалисты из АНБ, чересчур оптимистичны, рекомендуя для систем цифровой подписи длину открытого ключа всего 512-1024 бита, что в свете данных из табл. 6.4 является совершенно недостаточным для обеспечения надлежащей долговременной защиты.

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

Конечно, разложение большого числа на множители - задача трудная. Однако сразу возникает резонный вопрос, насколько трудная. К несчастью для криптографов, сложность ее решения уменьшается. И что еще хуже, эта сложность падает значительно более быстрыми темпами, чем ожидалось ранее. Например, в середине 70-х годов считалось, что для разложения на множители числа из 125 цифр потребуются десятки квадрильонов лет. А всего два десятилетия спустя с помощью компьютеров, подключенных к сети Internet, удалось разложить на множители число из 129 цифр. Этот прорыв стал возможен благодаря тому, что за прошедшие 20 лет были не только предложены новые, более быстрые, методы разложения на множители больших чисел, но и возросла производительность используемых компьютеров.

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

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

Чтобы оценить длину открытого ключа, будем измерять доступную криптоаналитику вычислительную мощь в так называемых мопс-годах, т. е. количеством операций, которые компьютер, способный работать со скоростью 1 миллион операций в секунду, выполняет за год. Допустим, что хакер имеет доступ к компьютерным ресурсам общей вычислительной мощью 10000 мопс-лет, крупная корпорация - 107 мопс-лет, правительство - 109 мопс-лет. Это вполне реальные цифры, если учесть, что при реализации упомянутого выше проекта разложения числа из 129 цифр его участники задействовали всего 0,03\% вычислительной мощи Internet, и чтобы добиться этого, им не потребовалось принимать какие-либо экстраординарные меры или выходить за рамки закона.

Предположим еще, что вычислительная мощь возрастает в 10 раз каждые 5 лет, а метод, который используется для разложения больших чисел на множители, позволяет это делать с трудоемкостью, указанной в табл. 6.3.

Таблица 6.3. Трудоемкость разложения больших чисел на множители

Сделанные предположения позволяют оценить длину стойкого открытого ключа в зависимости от срока, в течение которого необходимо хранить зашифрованные с его помощью данные в секрете (табл. 6.4). При этом необходимо помнить, что криптографические алгоритмы с открытым ключом часто применяются для защиты очень ценной информации на весьма долгий период времени. Например, в системах электронных платежей или при нотариальном заверении электронной подписи. Идея потратить несколько месяцев на разложение большого числа на множители может показаться кому-то очень привлекательной, если в результате он получит возможность рассчитываться за свои покупки по вашей кредитной карточке. Кроме того, я думаю, что вам совсем не улыбается перспектива быть вызванным через 20 лет на заседание суда, на котором рассматривается дело о наследстве, и отстаивать невозможность подделать электронную подпись вашего дедушки, использованную им для составления завещания в вашу пользу.

С приведенными в табл. 6.4 данными согласны далеко не все авторитетные криптографы. Некоторые из них наотрез отказываются делать какие-либо долгосрочные прогнозы, считая это бесполезным делом. Другие, например, специалисты из АНБ, чересчур оптимистичны, рекомендуя для систем цифровой подписи длину открытого ключа всего 512-1024 бита, что в свете данных из табл. 6.4 является совершенно недостаточным для обеспечения надлежащей долговременной защиты.

Криптографические ключи

Известно, что все без исключения алгоритмы шифрования используют криптогра­фические ключи. Именно поэтому одна из задач криптографии - управление ключа­ми, т. е. их генерация, накопление и распределение. Если в компьютерной сети зареги­стрировано п пользователей и каждый может связаться с каждым, то для нее необходимо иметь п*(п-1)/2 различных ключей. При этом каждому из п пользователей следует предоставить (п-1) ключ, т. к. от их выбора в значительной степени зависит надеж­ность защиты конфиденциальной информации. Выбору ключа для криптосистемы при­дается особое значение.

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

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

Выбранные ключи необходимо распределять таким образом, чтобы не было зако­номерностей в изменении ключей от пользователя к пользователю. Кроме того, надо предусмотреть частую смену ключей, причем частота их изменения определяется дву­мя факторами: временем действия и объемом информации, закрытой с их использова­нием.

Криптографические ключи различаются по своей длине и, следовательно, по силе: ведь чем длиннее ключ, тем больше число возможных комбинаций. Скажем, если про­грамма шифрования использует 128-битные ключи, то ваш конкретный ключ будет одной из 2128 возможных комбинаций нулей и единиц. Злоумышленник с большей вероятностью выиграет в лотерею, чем взломает такой уровень шифрования методом «грубой силы» (т. е. планомерно перебирая ключи, пока не встретится нужный). Для сравнения: чтобы подобрать на стандартном компьютере симметричный 40-битный ключ, специалисту по шифрованию потребуется около 6 часов. Даже шифры со 128-битным ключом до некоторой степени уязвимы, т. к. профессионалы владеют изощ­ренными методами, которые позволяют взламывать даже самые сложные коды.



Надежность симметричной криптосистемы зависит от стойкости используемого криптографического алгоритма и от длины секретного ключа. Допустим, что сам ал­горитм идеален: вскрыть его можно только путем опробования всех возможных клю-

чей. Этот вид криптоаналитической атаки называется методом тотального перебора. Чтобы применить данный метод, криптоаналитику понадобится немного шифротек-ста и соответствующий открытый текст. Например, в случае блочного шифра ему до­статочно получить в свое распоряжение по одному блоку шифрованного и соответ­ствующего открытого текста. Сделать это не так уж и трудно.

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

Подсчитать сложность атаки методом тотального перебора достаточно просто. Если ключ имеет длину 64 бита, то суперкомпьютер, который может опробовать 1 млн клю­чей за 1 с, потратит более 5000 лет на проверку всех возможных ключей. При увеличе­нии длины ключа до 128 бит этому же суперкомпьютеру понадобится 1025 лет, чтобы перебрать все ключи. Можно сказать, что 1025 - это достаточно большой запас на­дежности для тех, кто пользуется 128-битными ключами.

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

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

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

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

руете свергнуть «антинародное правительство», вам необходимо всерьез задуматься о стойкости применяемого алгоритма шифрования.

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

Конечно, разложение большого числа на множители - задача трудная. Однако сразу возникает резонный вопрос, насколько трудная. К несчастью для криптографов, ее решение упрощается, и, что еще хуже, значительно более быстрыми темпами, чем ожидалось. Например, в середине 70-х годов считалось, что для разложения на мно­жители числа из 125 цифр потребуются десятки квадрильонов лет. А всего два десяти­летия спустя с помощью компьютеров, подключенных к сети Internet, удалось доста­точно быстро разложить на множители число, состоящее из 129 цифр. Этот прорыв стал возможен благодаря тому, что за прошедшие 20 лет были не только предложены новые, более быстрые, методы разложения на множители больших чисел, но и возрос­ла производительность используемых компьютеров.

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

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

Чтобы оценить длину открытого ключа, будем измерять доступную криптоанали-тику вычислительную мощь в так называемых мопс-годах, т. е. количеством операций, которые компьютер, способный работать со скоростью 1 млн операций в секунду, выполняет за год. Допустим, что злоумышленник имеет доступ к компьютерным ре­сурсам общей вычислительной мощностью 1000 мопс-лет, крупная корпорация - 107 мопс-лет, правительство - 109 мопс-лет. Это вполне реальные цифры, если учесть, что при реализации упомянутого выше проекта разложения числа из 129 цифр его участники задействовали всего 0,03% вычислительной мощи Internet, и чтобы добить­ся этого, им не потребовалось принимать какие-либо экстраординарные меры или выходить за рамки закона. Из табл. 4.6 видно, сколько требуется времени для разло­жения различных по длине чисел.

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

Таблица 4.6. Связь длины чисел и времени, необходимого для их разложения на множители

тежей или при нотариальном заверении электронной подписи. Идея потратить несколь­ко месяцев на разложение большого числа на множители может показаться кому-то очень привлекательной, если в результате он получит возможность рассчитываться за свои покупки по чужой кредитной карточке.

С приведенными в табл. 4.7 данными согласны далеко не все криптографы. Неко­торые из них наотрез отказываются делать какие-либо долгосрочные прогнозы, счи­тая это бесполезным делом, другие - чересчур оптимистичны, рекомендуя для сис­тем цифровой подписи длину открытого ключа всего 512-1024 бита, что является совершенно недостаточным для обеспечения надлежащей долговременной защиты.

Криптоаналитическая атака против алгоритма шифрования обычно бывает направ­лена в самое уязвимое место этого алгоритма. Для организации шифрованной связи часто используются криптографические алгоритмы как с секретным, так и с открытым ключом. Такая криптосистема называется гибридной. Стойкость каждого из алгорит­мов, входящих в состав гибридной криптосистемы, должна быть достаточной, чтобы успешно противостоять вскрытию. Например, глупо применять симметричный алго­ритм с ключом длиной 128 бит совместно с несимметричным алгоритмом, в котором длина ключа составляет всего 386 бит. И наоборот, не имеет смысла задействовать симметричный алгоритм с ключом длиной 56 бит вместе с несимметричным алгорит­мом с ключом длиной 1024 бита.

Таблица 4.8. Длины ключей для симметричного и несимметричного алгоритмов

шифрования, обладающих одинаковой стойкостью

В табл. 4.8 перечисляются пары длин ключей для симметричного и несимметрич­ного криптографического алгоритма, при которых стойкость обоих алгоритмов про­тив криптоаналитической атаки методом тотального перебора приблизительно одина­кова. Из этих данных следует, что если используется симметричный алгоритм с 112-битным ключом, то вместе с ним должен применяться несимметричный алгоритм с 1792-битным ключом. Однако на практике ключ для несимметричного алгоритма шифрования обычно выбирают более стойким, чем для симметричного, поскольку с помощью первого защищаются значительно большие объемы информации и на более продолжительный срок.

Ключ шифрования – это тайная информация (набор цифр и букв), которая используется алгоритмом для шифрования и расшифровки информации.

Надёжность ключа зависит от его длины в битах. В технологии SSL используют шифры 4096 бит для корневого сертификата и 128–256 бит для клиентских. Такая длина достаточна для безопасной передачи данных.

Протокол SSL использует асимметричное шифрование или шифрование с открытым ключом для установки соединения. Несмотря на название, здесь используются 2 ключа: открытый и закрытый. Оба формируются при запросе SSL-сертификата.

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

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

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

Однако асимметричный алгоритм ресурсоемок, а скорость шифрования на 2-3 порядка ниже симметричного алгоритма. Поэтому в SSL-технологии шифрование с открытым ключом используется только для согласования секретного симметричного ключа . С его помощью устанавливается защищённое HTTPS-соединение – данные передаются быстро и безопасно.

Сразу использовать симметричное шифрование ненадежно. В этом алгоритме один и тот же ключ шифрует и расшифровывает информацию. Посетитель сайта и владелец сервера должны договориться о нем без свидетелей.

Передать по почте, телефону или смской не получится – перехватят или подслушают.

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

  1. Чтобы аутентифицировать сервер, браузер посетителя проверяет, подписан ли SSL-сертификат сертификатом доверенного центра.
  2. Чтобы договориться о симметричном ключе шифрования сервер и браузер используют асимметричное шифрование с открытым ключом.

Рассмотрим этот процесс на примере реальных ключей:

Боб отправляет Алисе замок, ключ от которого есть только у него.

Замок здесь – публичный ключ.

Алиса закрывает замком Боба ящик с секретом и посылает обратно.

Так же браузер шифрует сообщение с помощью публичного ключа и передаёт на сервер.

Открыть ящик не сможет никто: ни сама Алиса, ни сотрудники почты.

Мошенник точно так же не может расшифровать сообщение браузера без закрытого ключа.

Боб получает ящик, открывает своим единственным ключом и узнаёт секрет.

Сервер расшифровывает сообщение закрытым ключом, который есть только у него.

Как Алиса и Боб ведут тайную переписку, так браузер и сервер устанавливают защищённое HTTPS-соединение и обмениваются данными.