Криптология (от греч. cryptos – тайный и logos – слово) – наука, занимающаяся шифрованием и дешифрованием. Криптология состоит из двух частей – криптографии и криптоанализа. Криптография – наука о построении криптографических систем, используемых с целью защиты информации. Криптоанализ – наука о методах анализа криптографических систем, цель анализа – разработка методов раскрытия информации, защищаемой криптосистемой . На протяжении всей истории человечества основным фактором развития криптологии было противоборство методов защиты информации и методов её раскрытия.

Contents

Оновные задачи криптографии

В настоящее время криптогарфические функции применяются для решения следующих задач защиты информации:
1. Обеспечение конфиденциальности информации .
2. Обеспечение целостности информации .
3. Аутентификация информации .
4. Удостоверение авторства по отношению к сообщению или документу.
5. Обеспечение неотслеживаемости информации .

Основные понятия криптографии.

Криптография – самостоятельная наука с особым предметом исследований и специфическими методами исследования, и, несомненно, эта наука имеет математическую природу. Наиболее отчётливо многообразие связей криптологии с математикой проявилось в двадцатом веке. Большое влияние на это имел выход в свет фундаментальный труд К. Шеннона «Теория связи в секретных системах». Впрочем и до этого события история криптологии была отмечена замечателльными научными трудами и практическим вкладом в криптоаналитические разработки многих математиков, таких, как Л. Б. Альберти(XVв.), Б. Виженер, Ф. Виета(XVI-XVII вв.), Л. Эйлер(XVIII в.) и др.

Современная криптология

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

Криптографическая система

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

Ключ криптосистемы

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

Аутентификация сторон

Для аутентификации сторон протокола используется система идентификации, для аутентификации сообщений – система имитозащиты, для обеспечения неотказуемости от авторства – система электронной цифровой подписи (ЭЦП).
Сообщение, к которому применяется криптографическая функция шифра, называют открытым текстом, а само применение функции шифра к открытому тексту называется шифрованием или зашифрованием. Результат шифрования открытого текста называется шифрованным текстом или криптограммой.
Шифр E можно рассматривать как семейство отображений , биективных по первой переменной, где X* и Y* - соответственно множество открытых и шифрованных текстов. Биективность функций шифра обеспечивает возможность восстановления открытого текста по шифрованному тексту. Применение к криптограмме обратного отображения с использованием известного ключа называется расшифрованием.
Раскрытие криптоаналитиком информации, защищаемой шифром, называют дешифрованием (ключ расшифрования криптоаналитику неизвестен, т.е. неизвестно, какое именно отображение из семейства E использовано для шифрования). Разработанный криптоаналитиком метод раскрытия шифра или информации , защищаемой шифром, называют криптоаналитической атакой.

Стойкость

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

Классификация криптосистем .

По принципам использования ключей криптосистемы разделены на системы с секретным и открытым ключом.

Симметричные криптосистемы

Системы с секретным ключом (основная статья "Симметричная криптосистема") используются на протяжении нескольких тысячелетий до настоящего времени и основаны на классическом принципе обеспечения конфиденциальности и информации: а именно, на секретности используемого ключа для всех, кроме лиц, допущенных к информации. Такие криптосистемы называют также симметричными в связи с тем, что ключи, используемые в них для реализации прямых и обратных криптографических функций, обладают определённой симметрией (часто они совпадают). Защита информации с помощью симметричных криптосистем обеспечивается секретностью ключа.

В настоящее время симметричные шифры - это:

Блочные шифры. Обрабатывают информацию блоками определённой длины (обычно 64, 128 бит), применяя к блоку ключ в установленном порядке, как правило, несколькими циклами перемешивания и подстановки, называемыми раундами. Результатом повторения раундов является лавинный эффект - нарастающая потеря соответствия битов между блоками открытых и зашифрованных данных.

Поточные шифры, в которых шифрование проводится над каждым битом либо байтом исходного (открытого) текста с использованием гаммирования. Поточный шифр может быть легко создан на основе блочного (например, ГОСТ 28147-89 в режиме гаммирования), запущенного в специальном режиме.

Большинство симметричных шифров используют сложную комбинацию большого количества подстановок и перестановок. Многие такие шифры исполняются в несколько (иногда до 80) проходов, используя на каждом проходе «ключ прохода». Множество «ключей прохода» для всех проходов называется «расписанием ключей» (key schedule). Как правило, оно создается из ключа выполнением над ним неких операций, в том числе перестановок и подстановок.

Типичным способом построения алгоритмов симметричного шифрования является сеть Фейстеля. Алгоритм строит схему шифрования на основе функции F(D, K) , где D - порция данных, размером вдвое меньше блока шифрования, а K - «ключ прохода» для данного прохода. От функции не требуется обратимость - обратная ей функция может быть неизвестна. Достоинства сети Фейстеля - почти полное совпадение дешифровки с шифрованием (единственное отличие - обратный порядок «ключей прохода» в расписании), что сильно облегчает аппаратную реализацию. Операция перестановки перемешивает биты сообщения по некоему закону. В аппаратных реализациях она тривиально реализуется как перепутывание проводников. Именно операции перестановки дают возможность достижения «эффекта лавины».

Операция перестановки линейна -

f(a) xor f(b) == f(a xor b)

Операции подстановки выполняются как замена значения некоей части сообщения (часто в 4, 6 или 8 бит) на стандартное, жестко встроенное в алгоритм иное число путем обращения к константному массиву. Операция подстановки привносит в алгоритм нелинейность.

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

Криптосистема с открытым ключом

Системы с открытым ключом (основная статья "Асимметричная криптосистема") были предложены американскими криптографами Диффи и Хеллманом в 1975году, в настоящее время они активно применяются для защиты информации. Другое их название – асимметричные системы , так как в них ключи шифрования и расшифрования не связаны явным отношением симметрии или равенства. Ключ шифрования может быть открытым, известным для всех, но расшифровать сообщение может только пользователь, обладающий секретным ключом расшифрования, который, во избежание путаницы с ключом симметричной системы, обычно называют закрытым ключом. Вычисление ключа расшифрования по ключу шифрования, т.е. раскрытие шифра, увязано с решением математических задач, характеризуемых высокой сложностью решения. К таким задачам относятся, например, задача поиска делителей большого натурального числа и задача логарифмирования в конечных полях большого порядка. Идея криптографии с открытым ключом очень тесно связана с идеей односторонних функций, то есть таких функций f(x) , что по известному x довольно просто найти значение f(x) , тогда как определение x из f(x) невозможно за разумный срок.

Пусть K - пространство ключей, а e и d - ключи шифрования и расшифрования соответственно. E - функция шифрования для произвольного ключа eϵK , такая что:

E(m)=c

Здесь cϵC , где C - пространство шифротекстов, а mϵM , где M - пространство сообщений. D - функция расшифрования, с помощью которой можно найти исходное сообщение m , зная шифротекст c:

D(c)=m

{E: eϵK} - набор шифрования, а {D: dϵK} - соответствующий набор для расшифрования. Каждая пара (E, D) имеет свойство: зная E , невозможно решить уравнение E(m)=c , то есть для данного произвольного шифротекста cϵC , невозможно найти сообщение mϵM . Это значит, что по данному e невозможно определить соответствующий ключ расшифрования d . E является односторонней функцией, а d - лазейкой. Ниже показана схема передачи информации лицом А лицу В. Они могут быть как физическими лицами, так и организациями и так далее. Но для более лёгкого восприятия принято участников передачи отождествлять с людьми, чаще всего именуемыми Алиса и Боб. Участника, который стремится перехватить и расшифровать сообщения Алисы и Боба, чаще всего называют Евой.

Мессенджеры, проездные и цифровые деньги. Где, как и зачем применяется шифрование

С каждым годом криптография незаметно проникает в нашу жизнь сильнее и сильнее: Wi-Fi, цифровое телевидение, мессенджеры, проездные на метро, электронные пропуска, онлайн банкинг — это лишь малая часть огромного списка сервисов и услуг, в которых сейчас применяется шифрование. Впрочем, последний год все по большей части говорят не об этих сферах применения, а о криптовалютах (биткоин, LiteCoin, Dash и т.д.) и блокчейн, сюжеты о которых делают центральные каналы телевидения, а волатильность курса обсуждают не только биржевые аналитики, но и школьники, врачи, пенсионеры.

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


Что такое криптография?

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

Если раньше и для шифрования, и для расшифровки использовался человеческий мозг, то позже появились электромеханические устройства вроде машины «Энигма», взлом кода которой Аланом Тьюрингом (эта история легла в основу фильма «Игра в имитацию» с Бенедиктом Камбербэтчем в главной роли), как считается, смог приблизить день победы во Второй мировой войне на несколько лет и спас миллионы жизней. Сегодня же на первые роли вышла математическая криптография, где всю работу выполняют электронные чипы.


Как исторически регулировалось шифрование?

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


Как биткоин связан с криптографией?

И биткоин, и Litecoin, и Dash — криптовалюты, то есть цифровые валюты, создание и контроль за которыми базируются на методах криптографии. Для того, чтобы в цепочку блоков нельзя было внести изменения, то есть заменить блоки или поменять информацию в них, используются элементы криптографии.


Как регулируется обращение криптовалют в России?

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


Криптография и криптовалюты — это навсегда?

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

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

В качестве основного средства для разработки программного обеспечения была выбрана среда визуального программирования C++ BUILDER 6.

C++ BUILDER 6 - это комбинация нескольких важнейших технологий:

Высокопроизводительный компилятор в машинный код;

Объектно-ориентированная модель компонент;

Визуальное (а, следовательно, и скоростное) построение приложений.

Компилятор, встроенный в C++ BUILDER 6, обеспечивает высокую производительность, необходимую для построения приложений. Этот компилятор в настоящее время является самым быстрым в мире. Он предлагает легкость разработки и быстрое время проверки готового программного блока, и в то же время обеспечивает качество кода. Кроме того, C++ BUILDER 6 обеспечивает быструю разработку без необходимости писать вставки на Си или ручного написания кода (хотя это возможно). В процессе построения приложения разработчик выбирает из палитры компонент готовые компоненты как художник, делающий крупные мазки кистью. Еще до компиляции он видит результаты своей работы - после подключения к источнику данных их можно видеть отображенными на форме, можно перемещаться по данным, представлять их в том или ином виде. В этом смысле проектирование в C++ BUILDER 6 мало чем отличается от проектирования в интерпретирующей среде, однако после выполнения компиляции мы получаем код, который исполняется в 10 - 20 раз быстрее, чем то же самое, сделанное при помощи интерпретатора. Кроме того, компилятор компилятору рознь. В C++ BUILDER 6 компиляция производится непосредственно в родной машинный код. В то время как существуют компиляторы, превращающие программу в так называемый p-код, который затем интерпретируется виртуальной p-машиной. Это не может не сказаться на фактическом быстродействии готового приложения. Объектно-ориентированная модель программных компонент заключается в максимальном реиспользовании кода. Это позволяет разработчикам строить приложения весьма быстро из заранее подготовленных объектов, а также дает им возможность создавать свои собственные объекты для среды C++ BUILDER 6. Никаких ограничений по типам объектов, которые могут создавать разработчики, не существует. Действительно, все в C++ BUILDER 6 написано на нем же, поэтому разработчики имеют доступ к тем же объектам и инструментам, которые использовались для создания среды разработки. В результате нет никакой разницы между объектами, поставляемыми BORLAND или третьими фирмами, и объектами, которые вы можете создать. В стандартную поставку C++ BUILDER 6 входят основные объекты, которые образуют удачно подобранную иерархию.

Требования к разрабатываемой программе:

1. Удобный графический пользовательский интерфейс (GUI)

2. Простота в обращении

3. Обеспечение шифрования всех типов файлов

4. Надежность функционирования

5. Невысокая стоимость

6. Способность к изменению и дополнению

7. Наличие справочной системы