![](/user_photo/71224_AGCDL.jpg)
ЛР1 / Криптология._Основные_понятия
.doc
Криптология и ее основные понятия
Наука, занимающаяся вопросами организации безопасной связи и хранения информации, называется Криптологией (kryptos - тайный, logos - наука). Она в свою очередь разделяется на два направления криптографию и криптоанализ. Криптография занимается поиском математических методов преобразования информации с целью её закрытия от посторонних. Криптоанализ исследует возможности прочтения преобразованных сообщений без знания ключа, то по сути дела является «нападением» на чужую информацию. Люди, занимающиеся криптоанализом, называются криптоаналитиками.
Криптогра́фия (от греч. κρυπτός – тайный/скрытый и γράφω - пишу) - наука о математических методах обеспечения конфиденциальности (невозможности прочтения информации посторонним) и аутентичности (целостности и подлинности авторства, а также невозможности отказа от авторства) информации. Изначально криптография изучала методы шифрования информации - обратимого преобразования открытого (исходного) текста на основе секретного алгоритма и/или ключа в шифрованный текст (шифртекст). Традиционная криптография образует раздел симметричных криптосистем, в которых зашифрование и расшифрование проводится с использованием одного и того же секретного ключа. Современная криптография включает в себя также и асимметричные криптосистемы, системы электронной цифровой подписи (ЭЦП), хеш-функции, управление ключами, получение скрытой информации, квантовую криптографию. Следует отметить, что криптография не занимается защитой от подкупа или шантажа законных абонентов/пользователей, кражи ключей и других угроз информации.
Основной целью криптографической защиты (или криптографического закрытия информации) является защита от утечки информации, которая обеспечивается путем обратимого (и взаимно однозначного!) преобразования сообщений (либо хранящихся данных) в форму, непонятную для посторонних или неавторизованных лиц. Преобразование, обеспечивающее подобную криптозащиту, называется шифрованием.
Защита от умышленной модификации информации и навязывания ложных данных, т.е. имитозащита, обеспечивается выработкой имитоприставки. Последняя представляет собой информационную последовательность, полученную по определенным правилам из открытых данных и ключа.
Введем некоторые важные понятия, необходимые в дальнейшем:
алфавит – упорядоченное конечное множество некоторых уникальных (то есть не повторяющихся) знаков, используемых для представления той или иной информации;
текст - упорядоченный по определенным правилам правописания набор знаков алфавита;
шифр – это совокупность обратимых и взаимно однозначных преобразований множества открытых данных (сообщений) на множество закрытых от посторонних (зашифрованных) данных, задаваемых алгоритмом криптографического преобразования (криптоалгоритмом);
ключ к шифру – легко сменяемый секретный элемент шифра, применяемый для закрытия отдельного сообщения от посторонних, то есть это - некоторое (но вполне определенное!) секретное состояние параметров криптоалгоритма, обеспечивающее выбор одного варианта криптографического преобразования из всей совокупности возможных преобразований, предоставляемых алгоритмом криптографического преобразования. То есть конкретный вид результата криптографического преобразования сообщения определяется применённым ключом шифрования. Безопасность защищаемой информации в первую очередь определяется именно ключом к шифру;
зашифрование - преобразование открытых данных в закрытые (зашифрованные) с помощью определённых правил, содержащихся в алгоритме шифрования;
расшифрование - обратный процесс;
шифрование – это процесс зашифрования или расшифрования;
взлом шифра – это попытка прочтения зашифрованного сообщения без знания секретного ключа. Здесь следует особо подчеркнуть разницу между расшифрованием и взломом. Первое действие проводится законным пользователем, знающим секретный ключ к шифру, а второе проводится уже нарушителем - криптоаналитиком противника или хакером.
раскрытие криптоалгоритма - результат работы криптоаналитика, приводящий к возможности эффективного определения любого, зашифрованного с помощью данного алгоритма, открытого текста;
стойкость криптоалгоритма - способность шифра противостоять всевозможным попыткам его раскрытия, то есть атакам на него.
Оценка надежности криптоалгоритмов
Все современные шифры базируются на принципе Киркхоффса, согласно которому секретность шифра должна обеспечиваться секретностью ключа, а не секретностью используемого алгоритма шифрования. В некоторых ситуациях (например, в военных, разведывательных и дипломатических ведомствах) нет никаких причин делать общедоступным описание сути криптосистемы. Сохраняя такую информацию в тайне, можно дополнительно повысить надежность шифра. Однако полностью полагаться на секретность этой информации всё-таки не следует, так как рано или поздно она вполне может быть скомпрометирована. Поэтому анализ надежности таких систем всегда должен проводиться исходя из того, что противник имеет всю информацию о применяемом криптоалгоритме, ему не известен только использованный ключ. В связи с вышеизложенным можно сформулировать общее правило: при создании или при анализе стойкости криптосистем не следует недооценивать возможностей противника. Их лучше переоценить, чем недооценить.
Стойкость криптосистемы зависит от сложности алгоритмов преобразования, длины ключа, а в конечном счете от объема ключевого пространства, а также от метода реализации криптографического преобразования: при программной реализации необходимо дополнительно защищаться от разрушающих программных воздействий («закладок», вирусов и т.п.). Хотя понятие стойкости шифра к взлому и является центральным в криптографии, но задача формализованной количественной оценки криптостойкости до сих пор полностью не решена. Качественный шифр невозможно раскрыть способом более эффективным чем полный перебор по всему ключевому пространству, при этом криптограф должен рассчитывать только на то, что у противника не хватит времени и технических ресурсов, чтобы это сделать.
Криптографическая система - семейство преобразований шифра и совокупность ключей (то есть алгоритм криптографического преобразования + секретные ключи и их получение). Само по себе описание криптографического алгоритма ещё не является криптосистемой. Только дополненное схемами распределения и управления ключами оно становится системой. Примеры криптоалгоритмов - DES, ГОСТ28.147-89. Дополненные алгоритмами выработки секретных ключей к шифру, они превращаются в криптосистемы. Как правило, описание алгоритма шифрования уже включает в себя все необходимые части.
Современные криптосистемы классифицируют следующим образом:
Криптосистемы могут обеспечивать не только секретность передаваемых сообщений, но и их аутентичность (подлинность), а также подтверждение подлинности пользователя.
Симметричные криптосистемы (с секретным ключом - secret key systems) построены на основе сохранения в тайне ключа шифрования. Процессы зашифрования и расшифрования используют один и тот же ключ. Секретность ключа является постулатом. Основная проблема при применении симметричных криптосистем для связи заключается в сложности передачи обоим сторонам секретного ключа. Для этой цели используется отдельный секретный канал связи, по которому секретные ключи шифрования доставляются абонентам. Однако данные системы обладают высоким быстродействием. Раскрытие ключа злоумышленником грозит раскрытием только той информации, что была зашифрована на этом секретном ключе. Стандарты шифрования DES, ГОСТ28.147-89, AES являются представителями симметричных криптосистем.
Асимметричные криптосистемы (системы открытого шифрования, с открытым ключом, public key systems) для зашифрования и расшифрования используют разные ключи. Зашифрование является абсолютно открытым для всех. Расшифрование остается секретным. Таким образом, любой, кто хочет что-либо зашифровать, пользуется открытым преобразованием. Но расшифровать и прочитать это сможет лишь тот, кто владеет секретным преобразованием (ключом). У пользователя есть два ключа - секретный и открытый. Открытый ключ он публикует в общедоступном месте, каждый, кто захочет послать сообщение этому пользователю, зашифровывает сообщение открытым ключом пользователя. Расшифровать сообщение сможет только упомянутый пользователь своим секретным ключом («парным» по отношению к его открытому ключу). В результате отпадает необходимость передачи секретного ключа по секретному каналу связи (как это имеет место в симметричных криптосистемах). Однако, несмотря на все свои преимущества, по сравнению с симметричными криптосистемами эти криптосистемы вычислительно значительно более трудоемки. Стойкость асимметричных криптосистем базируется в основном на алгоритмической трудности решения за приемлемое время какой-либо сложной математической задачи. Если же злоумышленнику удастся построить алгоритм решения этой вычислительно сложной задачи, то вся система шифрования будет дискредитирована, а также и все сообщения, зашифрованые с её помощью. В этом состоит главная опасность асимметричных криптосистем в отличие от симметричных. Пример - система RSA.
Одно из основных правил криптографии (если рассматривать ее коммерческое применение, так как на государственном уровне все несколько иначе) можно выразить следующим образом: взлом шифра с целью прочесть закрытую информацию должен обойтись злоумышленнику гораздо дороже, чем эта информация стоит на самом деле.
Симметричные криптосистемы
Криптограмма С (шифртекст, шифрограмма) - это открытое сообщение, зашифрованное с помощью секретного ключа: С = Ек(М), где М - открытое сообщение, Е - шифрующее преобразование, к - секретный ключ. Обратный процесс называют расшифрованием и пишут М = Dk(C), где D – расшифровывающее (обратное) преобразование. Заметим, что алгоритмы шифрования и расшифрования Е и D - открыты для посторонних. Секретность исходного сообщения М в криптограмме С зависит от секретности ключа к. Обе части этого процесса используют один и тот же секретный ключ к, в связи с чем такие алгоритмы принято называть симметричными криптосистемами, или криптосистемами с секретным ключом. Постулатом для симметричных криптосистем является секретность ключа шифрования к.
Общую схему секретной связи для симметричных криптосистем (систему секретной связи К. Шеннона) можно изобразить следующим образом:
где М - открытое сообщение, к - секретный ключ, передаваемый по закрытому каналу, Ек(М) - операция зашифрования, а Dk(M) - операция расшифрования. Возникает вопрос: почему нельзя передавать данные сразу по закрытому каналу, ведь используется же он для передачи ключа? Ответ прост. Как правило, закрытый канал имеет очень высокую защищенность, но в то же время и очень низкую пропускную способность. Гораздо проще передать по нему короткий ключ (одно двоичное число), чем мегабайты/гигабайты информации-сообщения. Или же в качестве закрытого канала используется курьерская доставка, обмен секретным ключом при встрече и т.д.
К шифрам с симметричным ключом предъявляются следующие требования:
достаточная криптостойкость;
простота процедур зашифрования и расшифрования;
приемлемая надежность.
Под криптостойкостью понимают время, необходимое для раскрытия шифра при использовании наилучшего метода криптоанализа. Надежность - доля информации, дешифруемая при помощи какого-то криптоаналитического алгоритма.
Само преобразование шифра должно использовать следующие принципы (по К. Шеннону):
рассеивание (diffusion) - т.е изменение любого знака открытого текста или ключа влияет на большое число знаков шифротекста, что скрывает статистические свойства открытого текста;
перемешивание (confusion) - использование преобразований, затрудняющих получение статистических зависимостей между шифротектстом и открытым текстом.
Эти два принципа положены в основу построения всех современных шифров с симметричным ключом. Только при их совместном использовании может быть достигнута высокая криптостойкость шифра.
Важнейшим для развития криптографии было доказательство К. Шенноном существования абсолютно стойкого шифра. Этот шифр нельзя взломать даже теоретически.
Для абсолютной стойкости шифра должны выполняться следующие требования:
1) полная случайность (равновероятность) секретного ключа. Это, в частности, означает, что секретный ключ не следует вырабатывать с помощью какого-либо детерминированного устройства;
2) равенство длины секретного ключа длине открытого сообщения;
3) однократность использования секретного ключа.
Однако на практике выполнить эти требования проблематично. Поэтому абсолютно стойкие шифры не нашли широкого распространения. Любой такой шифр подобен так называемой «ленте одноразового использования».
На принципе рассеивания строятся шифры замены (шифры подстановки), а на принципе перемешивания - шифры перестановки. Каждый из этих принципов с точки зрения защиты информации от посторонних имеет свои важные достоинства. Поэтому для получения высокой криптостойкости алгоритмов шифрования оба этих принципа (для построения шифров с симметричным ключом) целесообразно использовать совместно.