Студопедия — Лабораторная работа №9
Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

Лабораторная работа №9

 

Тема:

Создание ПП для шифрования и дешифрования, используя алгоритмы замены. Криптографические механизмы.

Цель работы:

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

Теоретические сведения:

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

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

· Перед отправлением данных по линии связи или перед помещением на хранение они подвергаются шифрованию;

· Для восстановления исходных данных из зашифрованных к ним применяется процедура расшифровке.

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

· Шифруемое сообщение содержит большую избыточность;

· Процесс шифрования хорошо "перемешивает" структурные единицы сообщения (биты, символы и т.д.).

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

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

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

 

T = D(E(T)).

 

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

Отправленное сообщение до поступления к получателю является для него и, естественно, для злоумышленника неопределенным - если это было бы не так, тогда не было бы вообще никакого смысла его посылать. Пусть возможна отправка сообщений T1,T2,...,Tn с вероятностью p1,p2,...,pn соответственно. Тогда мерой неопределенности сообщения для всех, кто обладает этой априорной информацией, может служить величина математического ожидания логарифма вероятности одного сообщения, взятая со знаком "минус"; по некоторым соображениям в качестве основания логарифма удобно выбрать 2.

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

 

H(T) = -2N·2-N·log2(2-N) = N = | T |,

 

где через |X| обозначен размер блока данных X в битах. А если об исходном тексте неизвестно вообще ничего, даже его размер? В этом случае все равно необходимо принять за основу какую-либо модель распределения. Как правило, в реальности подобных трудностей не возникает, поскольку многие весьма стойкие шифры "не считают нужным" скрывать размер шифруемого сообщения, - в этом действительно почти никогда нет особой необходимости, - и эта характеристика априорно считается известной злоумышленнику. Там же, где этот размер все же реально необходимо скрыть, все сообщения перед шифрованием преобразуются в массивы данных одной и той же длины, и опять получается рассмотренная выше ситуация.

После перехвата шифртекста характеристика неопределенности открытого текста изменится - она станет апостериорной ("после-опытной") условной неопределенностью - условием здесь является перехваченное шифрованное сообщение T'.

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

 

I = H(T) - H(T | T').

 

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

В наилучшем для разработчиков шифра случае обе эти неопределенности равны:

 

H(T | T') = H(T),

 

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

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

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

Для простоты предположим, что исходное сообщение имеет ту же длину. Если у злоумышленника нет никаких априорных сведений о зашифрованном сообщении, для него каждый из 212 исходных вариантов равновероятен, и, таким образом, вероятность правильно определить исходное сообщение простым угадыванием равна 2-12. Предположим теперь, что злоумышленнику априорно известно, что шифрование является наложением одной и той же 4-битовой маски на каждую 4-битовую группу сообщения с помощью операции побитового исключающего или. Очевидно, возможно 16 = 24 различных вариантов битовой маски, соответственно, возможно 16 различных значений исходного текста:

 

маска исходный текст

0000 100101110101

0001 100001100100

0010 101101010111

......

1111 011010001010

 

Таким образом, теперь вероятность правильно угадать исходный текст равна 1/16 - знание особенности использованного способа шифрования повысило ее в 256 раз. Отсюда следует интересный вывод: чем больше неопределенность в шифрующем преобразовании для постороннего лица, тем дальше оно стоит от разгадки шифра, тем шифр надежнее. Шифр, полностью неопределенный для злоумышленника (H(E) =) является нераскрываемым для него, то есть абсолютно стойким! Получается, что надежность шифра зависит исключительно от его секретности и не зависит от прочих его свойств.

Самое интересное, что это верно, и парадокс здесь только кажущийся. Все дело в том, что на практике невозможно сохранить полную неопределенность относительно шифра у злоумышленника - он может получить информацию о шифре следующими путями:

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

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

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

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

1. Анализ зашифрованных данных не должен давать злоумышленнику никаких сведений о внутреннем устройстве шифра. В шифртексте не должно прослеживаться никаких статистических закономерностей - например, статистические тесты не должны выявлять в зашифрованных данных никаких зависимостей и отклонений от равновероятного распределения битов (символов) шифртекста.

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

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

T' = E(T) = EK(T),

 

здесь K - ключ шифра.

Использование принципа Кирхгофа позволяет получить следующие преимущества в построении шифров:

· Разглашение конкретного шифра (алгоритма и ключа) не приводит к необходимости полной замены реализации всего алгоритма, достаточно заменить только скомпрометированный ключ;

· Ключи можно отчуждать от остальных компонентов системы шифрования - хранить отдельно от реализации алгоритма в более надежном месте и загружать их в шифрователь только по мере необходимости и только на время выполнения шифрования - это значительно повышает надежность системы в целом;

· Появляется возможность для точной оценки "степени неопределенности" алгоритма шифрования - она просто равна неопределенности используемого ключа:

 

H(EK) = H(K).

 

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

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

 

H(T) = |T|.

 

Максимально возможная неопределенность блока данных фиксированного размера достигается, когда все возможные значения этого блока равновероятны - в этом случае она равна размеру блока в битах. Таким образом, неопределенность ключа K не превышает его длины:

 

H(K) |K|.

 

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

 

|K|H(K) = H(EK) = H(E)H(T) = |T|.

 

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

 

|K|T|.

 

Точное равенство возможно только в том случае, если все возможные значения ключа равновероятны, что эквивалентно условию, что биты ключа равновероятны и статистически независимы друг от друга.

Примером абсолютно стойкого шифра может служить одноразовая гамма Вернама - наложение на открытые данные (T) ключа (K) такого же размера, составленного из статистически независимых битов, принимающих возможные значения с одинаковой вероятностью, с помощью некоторой бинарной операции " ":

 

T' = TK.

 

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

По указанной причине для практического использования обычно выбирают наиболее удобную в реализации операцию - побитовое суммирование по модулю 2 или побитовое исключающее ИЛИ, так как она обладает следующими свойствами:

· Требует для своей реализации минимальной по сложности логики;

· Обратна самой себе, поэтому для шифрования и расшифровки применяется одна и та же процедура.

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

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

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

Все дело в том, что повысить вероятность успешного дешифрования и сделать ее равной единице не одно и то же.

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

· Если ключ равен 0, то инвертируются нечетные по номеру биты исходного текста, нумерация слева направо;

· Соответственно, если ключ равен 1, то инвертируются четные по номеру биты исходного текста;

Таким образом, E0(01) = 11, E1(01) = 00. Очевидно, что наш шифр не обладает абсолютной стойкостью. Предположим, что перехвачена шифровка "10". Каков исходный текст? Понятно, что он может быть как 00 так и 11 в зависимости от значения ключа, и без дополнительной информации однозначно определить это невозможно, что и требовалось доказать. Конечно, приведенный пример "игрушечный", но он верно отражает суть дела: для более серьезных шифров у криптоаналитика будет просто больше "вариантов выбора" открытого текста, и никаких указаний на то, какой из них предпочесть.

Таким образом, вопрос о возможности однозначного дешифрования сообщения, зашифрованного несовершенным шифром, остается открытым. Когда же такое дешифрование возможно? Шеннон в своих работах подробно исследовал этот вопрос.

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

1. Функция ненадежности ключа - неопределенность ключа при известных n битах шифртекста:

 

f(n) = H(K | T'), где |T'| = n.

 

Понятно, что функция ненадежности ключа f(n) может быть неопределена для некоторых n.

 

2. Расстояние единственности шифра - такое значение n, при котором функция ненадежности, то есть неопределенность ключа становится близкой к 0.

 

U(E) = n, где f(n) ~ 0.

 

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

 

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

 

H(T) = H(K) = |K|.

 

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

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

 

Выполнение работы:

1. Изучить теоретический материал.

2. Выделить из текста основные определения.

3. Законспектировать информацию о качестве шифра и методах его достижения.

4. Найти в справочной системе информацию о надёжности шифров.

5. Ответить на контрольные вопросы.




<== предыдущая лекция | следующая лекция ==>
Основные характеристики производственного освещения | Основы терапевтической деятельности в сестринской практике

Дата добавления: 2015-03-11; просмотров: 1154. Нарушение авторских прав; Мы поможем в написании вашей работы!



Функция спроса населения на данный товар Функция спроса населения на данный товар: Qd=7-Р. Функция предложения: Qs= -5+2Р,где...

Аальтернативная стоимость. Кривая производственных возможностей В экономике Буридании есть 100 ед. труда с производительностью 4 м ткани или 2 кг мяса...

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

Расчетные и графические задания Равновесный объем - это объем, определяемый равенством спроса и предложения...

Классификация и основные элементы конструкций теплового оборудования Многообразие способов тепловой обработки продуктов предопределяет широкую номенклатуру тепловых аппаратов...

Именные части речи, их общие и отличительные признаки Именные части речи в русском языке — это имя существительное, имя прилагательное, имя числительное, местоимение...

Интуитивное мышление Мышление — это пси­хический процесс, обеспечивающий познание сущности предме­тов и явлений и самого субъекта...

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

Примеры задач для самостоятельного решения. 1.Спрос и предложение на обеды в студенческой столовой описываются уравнениями: QD = 2400 – 100P; QS = 1000 + 250P   1.Спрос и предложение на обеды в студенческой столовой описываются уравнениями: QD = 2400 – 100P; QS = 1000 + 250P...

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

Studopedia.info - Студопедия - 2014-2024 год . (0.01 сек.) русская версия | украинская версия