Перспективные направления программирования 2020

Шифровальная машина Лоренца двенадцать роторов с механизмом

Тайнопись, или криптография (от древнегреческого: κρυπτός, латинизируется: kryptós γράφειν graphein, -λογία -логии, [1]), это практика и исследование методов безопасной коммуникации в присутствии третьих сторон. Называемых противников.[2] вообще. Криптография-это про построение и анализ протоколов , что препятствовать третьим лицам или публичного читать личные сообщения;[3] различные аспекты информационной безопасности , такие как данные, конфиденциальности, целостности данных, аутентификации, а также невозможности отказа от авторства[4] они занимают центральное место в современной криптографии.

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

Криптография до современной эпохи была фактически синонимом шифрования, превращающего информацию из читаемого состояния в непонятную бессмыслицу. Отправитель зашифрованного сообщения делится техникой декодирования только с предполагаемыми получателями. Чтобы исключить доступ злоумышленников. В криптографической литературе часто используются имена Алиса (подслушиватель[5] С момента разработки роторных шифровальных машин в Первой мировой войне и появления компьютеров во Второй мировой войне Методы криптографии становятся все более сложными . А ее приложения-все более разнообразными.

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

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

Рост криптографических технологий поднял ряд юридических вопросов в информационную эпоху. Потенциал криптографии для использования в качестве инструмента

шпионажа и подстрекательства к мятежу побудил многие правительства классифицировать ее как оружие и ограничить или даже запретить ее использование и экспорт.[6] В некоторых юрисдикциях. Где использование криптографии является законным. Законы разрешают следователям принудительно раскрывать ключи шифрования для документов. Имеющих отношение к расследованию.[7][8] Криптография также играет важную роль в управлении цифровыми правами и спорах о нарушении авторских прав в отношении цифровых носителей.

[9]

диаграмма, показывающая сдвиг трех буквенных шифров D становится A, а E становится B

Считается, что шифры сдвига алфавита использовались Юлием Цезарем более 2000 лет назад.[5] Это пример с k = 3. Другими словами. Буквы в алфавите сдвигаются три в одном направлении для шифрования и три в другом направлении для расшифровки.

Первое использование термина cryptograph (в отличие от cryptogram) относится к 19—му веку-происходит от Gold-Bug, рассказа Эдгара Аллана По.]

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

зашифрованнымтекстом). Шифр (или шифр) — это пара алгоритмов. Которые выполняют шифрование и обратное дешифрование. Детальная работа шифра контролируется как алгоритмом, так и. В каждом случае, ключомКлюч-это секрет (в идеале известный только коммуникантам). Обычно строка символов (в идеале короткая. Чтобы ее мог запомнить пользователь). Которая необходима для расшифровки шифротекста. В формальных математических терминах криптосистемаКлючи важны как формально. Так и на практике. Поскольку шифры без переменных ключей могут быть тривиально взломаны только при знании используемого шифра и поэтому бесполезны (или даже контрпродуктивны) для большинства целей.

Исторически шифры часто использовались непосредственно для шифрования или расшифровки без дополнительных процедур. Таких как проверка подлинности или проверка целостности. Существуют, как правило. Два вида криптосистем: симметричные и асимметричные. В симметричных системах. Единственных известных до 1970-х годов. Один и тот же ключ (секретный ключ) используется для шифрования и расшифровки сообщения. Манипуляция данными в симметричных системах происходит быстрее. Чем в асимметричных системах. Отчасти потому. Что они обычно используют более короткие длины ключей.

Асимметричные системы используют Использование асимметричных систем повышает безопасность связи. Во многом потому. Что связь между двумя ключами очень трудно обнаружить.[13] Примеры асимметричных систем включают RSA (Rivest–Shamir–Adleman) и ECC (Криптография эллиптических кривых). Качество симметричные алгоритмы включают в себя обычно используется алгоритм AES (расширенный стандарт шифрования), который заменил старый де (стандарта шифрования данных).[14] не очень высокое качество алгоритмов симметричного шифрования включают в себя ассорти детский языковой запутывая схемы, такие как

латынь или другой косяк, и действительно эффективно все криптографические схемы. Однако всерьез задумано. Из любого источника до изобретения одноразовых блокнотов в начале 20-го века.

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

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

Некоторые используют термины криптография и криптология взаимозаменяемо в английском языке. В то время как другие (включая военную практику США в целом) используют криптографию для обозначения конкретно использования и практики криптографических методов и криптологии для обозначения совместного изучения криптографии и криптоанализа.[15][16] Английский язык более гибок. Чем несколько других языков. В которых криптология (выполняемая криптологами) всегда используется во втором смысле выше.

RFC 2828 советует. Чтобы стеганография иногда включалась в криптологию.[17]

Изучение характеристик языков. Имеющих некоторое применение в криптографии или криптологии (например. Частотные данные. Комбинации букв. Универсальные паттерны и т. Д.), называется криптолингвистикой.

История криптографии и криптоанализа

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

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

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

Скитала палочка с полоской бумаги намотанной по спирали

Основные классические типы шифров перестановки шифры, которые изменить порядок букв в сообщении (например. ‘Привет мир’ становится ‘ehlol owrdl в тривиально простой перестановкой схеме), и

замещения шифры, которые систематически заменять буквы или группы букв на другие буквы или группы букв (например. ‘полетели сразулатинском алфавите). Простые версии того и другого никогда не предлагали большой конфиденциальности со стороны предприимчивых противников. Ранним шифром замещения был шифр Цезаря, в котором каждая буква в открытом тексте была заменена буквой некоторого фиксированного числа позиций дальше по алфавиту. Светоний сообщает. Что Юлий Цезарь использовал его со сменой из трех человек для связи со своими полководцами.

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

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

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

В Индии 2000-летняя Камасутра Ватсьяны говорит о двух различных видах шифров. Называемых Каутилиям и Мулаведия. В Каутилиях шифрованные замены букв основаны на фонетических отношениях. Таких как гласные. Становящиеся согласными. В Мулаведии шифровальный алфавит состоит из спаривания букв и использования взаимных.

[12]

В Сасанидской Персии, согласно мусульманскому автору Ибн аль-Надиму. Существовало два секретных письма: шах-дабирийя (буквально раз-сахарийя, которая использовалась для передачи секретных сообщений с другими странами.[19]

Дэвид Кан отмечает в книге арабов, первых людей. Систематически документировавших криптоаналитические методы.Аль-Халиль (717-786) написал Книгу криптографических сообщений, в которой впервые были использованы перестановки и комбинации для перечисления всех возможных арабских слов с гласными и без них.[21]

Арабский текст книги Аль-Кинди

Первая страница книги Аль-Кинди, в которой обсуждается шифрование сообщений

Шифртексты, созданные классическим шифром (и некоторыми современными шифрами). Будут раскрывать статистическую информацию об открытом тексте. И эта информация часто может быть использована для взлома шифра. После открытия частотного анализаарабским математиком и эрудитом Аль-Кинди (также известным как Алкиндус) в 9 веке,[22][23][24] почти все подобные шифры могут быть взломаны хорошо информированным злоумышленником. Такие классические шифры до сих пор пользуются популярностью. Хотя в основном как головоломки. Аль-Кинди написал книгу по криптографии под названием Risalah fi Istikhraj al-Mu’amma (Рукопись для расшифровки криптографических сообщений), в которой описывалось первое известное применение методов частотного анализа и криптоанализа.[22][25] Важным вкладом Ибн Адлана (1187-1268) был размер выборки для использования частотного анализа.[21]

металлическая машина размером с книгу с большим циферблатом левая страница и девятнадцать маленьких циферблатов правая страница
рукопись Габриэля де Луэца д'Арамона в переплете

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

Практически все шифры оставались уязвимыми для криптоанализа с использованием метода частотного анализа вплоть до разработки полиалфавитного шифра. Хотя он был известен в Аль-Кинди до определенной степени[25][26] впервые она была четко описана в работе Аль-Qalqashandi (1355-1418). На основе более ранней работы Ибн аль-Durayhim (1312-1359). Описывающие полиалфавитный шифр. В котором каждая открытым текстом письма назначено не более одного заместителя.[27] Позже он был также описан Леоном Баттиста Альберти примерно в 1467 году. Хотя есть некоторые указания на то. Что метод Альберти состоял в использовании различных шифров (то есть алфавитов подстановки) для различных частей сообщения (возможно. Для каждой последующей буквы открытого текста на пределе). Он также изобрел то . Что, вероятно. Было первым автоматическим шифровальным устройством, колесом. Которое реализовало частичную реализацию его изобретения. В шифре Вигенера, полиалфавитном шифре. Шифрование использует ключевое слово, которое управляет заменой букв в зависимости от того. Какая буква ключевого слова используется. В середине 19 века Чарльз Бэббидж показал . Что шифр Вигенера был уязвим для изучения Касиски, но это было впервые опубликовано около десяти лет спустя Фридрихом Касиски[28]

Хотя частотный анализ может быть мощным и общим методом против многих шифров. Шифрование все еще часто было эффективным на практике. Поскольку многие потенциальные криптоаналитики не знали о методе. Взлом сообщения без использования частотного анализа по существу требовал знания используемого шифра и. Возможно, ключа. Что делало шпионаж, подкуп. Кражу со взломом. Дезертирство и т. Д. Наконец, в 19 веке было открыто признано. Что секретность алгоритма шифра не является ни разумной. Ни практической гарантией безопасности сообщения; фактически. Далее было осознано. Что любая адекватная криптографическая схема (включая шифры) должна оставаться безопасной. Даже если противник полностью понимает сам алгоритм шифра. Безопасность используемого ключа сама по себе должна быть достаточной для того. Чтобы хороший шифр сохранял конфиденциальность при атаке. Этот фундаментальный принцип был впервые четко сформулирован в 1883 году Огюстом Керкгоффом и обычно называется Принципом Керкгоффа; альтернативно и более прямо. Это было переформулировано Клодом Шенноном, изобретателем теории информации и основ теоретической криптографии. Как максима Шеннона

Для работы с шифрами использовались различные физические устройства и средства. Одним из самых ранних , возможно. Был древнегреческий скиталь, жезл. Предположительно используемый спартанцами в качестве вспомогательного средства для транспозиционного шифра. В средние века были изобретены другие вспомогательные средства. Такие как шифровальная решетка, которая также использовалась для своего рода стеганографии. С изобретением полиалфавитных шифров появились более сложные вспомогательные средства . Такие как собственный шифровальный диск Альберти, схема tabula recta Иоганна Тритемиуса и колесный шифр Томаса Джефферсона (не известный публично и изобретенный независимо Базери около 1900). Многие механические шифровальные/дешифровальные устройства были изобретены в начале 20 —го века и несколько запатентованы. Среди них роторные машины-знаменитая машина Enigma, используемая немецким правительством и военными с конца 1920-х годов и во время Второй мировой войны. Шифры, реализованные на более качественных примерах этих машинных конструкций. Привели к существенному увеличению криптоаналитической сложности после Первой мировой войны[30]

Компьютерная эра

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

Точно так же. Как развитие цифровых компьютеров и электроники помогло в криптоанализе. Оно сделало возможным гораздо более сложные шифры. Кроме того, компьютеры допускали шифрование любого вида данных. Представляемых в любом двоичном формате. В отличие от классических шифров. Которые шифровали только письменные тексты; это было новым и значительным. Таким образом. Использование компьютеров вытеснило лингвистическую криптографию как для разработки шифров. Так и для криптоанализа. Многие компьютерные шифры можно охарактеризовать их работой на двоичном бите последовательности (иногда в группах или блоках). В отличие от классических и механических схем. Которые обычно непосредственно манипулируют традиционными символами (то есть буквами и цифрами). Однако компьютеры также помогли криптоанализу. Что в некоторой степени компенсировало возросшую сложность шифров. Тем не менее. Хорошие современные шифры остались впереди криптоанализа; как правило. Использование качественного шифра является очень эффективным (т. Е. быстрым и требующим небольшого количества ресурсов. Таких как память или возможности процессора). В то время как его взлом требует усилий на много порядков больше и значительно больше. Чем требуется для любого классического шифра. Что делает криптоанализ настолько неэффективным и непрактичным. Что фактически невозможным.

Появление современной криптографии

Криптоанализ новых механических устройств оказался одновременно трудным и трудоемким. В Соединенном Королевстве криптоаналитические усилия в Блетчли-парке во время Второй мировой войны стимулировали разработку более эффективных средств для выполнения повторяющихся задач. Это привело к разработке Colossus, первого в мире полностью электронного, цифрового, программируемого компьютера. Который помогал в расшифровке шифров. Генерируемых машиной Lorenz SZ40/42 немецкой армии.

Обширные открытые научные исследования в области криптографии появились сравнительно недавно; они начались только в середине 1970-х годов. В последнее время сотрудники IBM разработали алгоритм. Который стал Федеральным (то есть американским) стандартом шифрования данных; Уитфилд Диффи и Мартин Хеллман опубликовали свой алгоритм согласования ключей;[31] и алгоритм RSA был опубликован в колонке Мартина ГарднераScientific American. С тех пор криптография стала широко используемым инструментом в коммуникациях, компьютерных сетяхи компьютерной безопасности в целом.

Некоторые современные криптографические методы могут хранить свои ключи в секрете только в том случае . Если некоторые математические задачи неразрешимы, такие как целочисленная факторизация или дискретные логарифмические задачи. Поэтому существуют глубокие связи с абстрактной математикой. Существует очень мало криптосистем. Которые доказали свою безусловную безопасность. Одноразовый блокнот-это один. И это было доказано Клодом Шенноном. Есть несколько важных алгоритмов. Которые доказали свою безопасность при определенных предположениях. Например, неосуществимость факторинга чрезвычайно больших целых чисел является основанием полагать. Что RSA является безопасным. И некоторые другие системы. Но даже в этом случае доказательство нерушимости недоступно. Так как основная математическая проблема остается открытой. На практике они широко используются. И большинство компетентных наблюдателей считают их неразрушимыми. Существуют системы. Подобные RSA. Такие как система Майкла О. Рабина, которые доказуемо безопасны при условии. Что факторинг n = pq невозможен; на практике он совершенно непригоден. Задача дискретного логарифма это основание полагать. Что некоторые другие криптосистемы безопасны. И опять же. Есть связанные. Менее практичные системы. Которые доказуемо безопасны относительно разрешимости или неразрешимости проблемы дискретного логарифма.]

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

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

Криптография с симметричным ключом

схема, показывающая шифрование с помощью ключа и процесс расшифровки

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

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

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

Один раунд (из 8.5) шифра IDEA. Используемого в большинстве версий PGP и OpenPGP-совместимого программного обеспечения для экономичного по времени шифрования сообщений

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

Стандарт шифрования данных (DES) и Расширенный стандарт шифрования (AES) — это блочные шифры. Которые были обозначены правительством США как стандарты криптографии (хотя обозначение DES было окончательно отменено после принятия AES).[34] Несмотря на свое устаревание в качестве официального стандарта. DES (особенно его все еще одобренный и гораздо более безопасный вариант triple-DES) остается довольно популярным; он используется в широком спектре приложений. От шифрования банкоматов[35] до конфиденциальности электронной почты[36] и безопасного удаленного доступа[37] Многие другие блочные шифры были разработаны и выпущены со значительными различиями в качестве. Многие из них. Даже некоторые. Разработанные способными практиками. Были полностью сломаны. Например FEAL.]

Потоковые шифры. В отличие от одноразовой прокладки. В потоковом шифре выходной поток создается на основе скрытого внутреннего состояния. Которое изменяется по мере работы шифра. Это внутреннее состояние изначально настраивается с помощью материала секретного ключа. RC4-широко используемый потоковый шифр.[4] Блочные шифры можно использовать в качестве потоковых шифров. Генерируя блоки ключевого потока (вместо генератора псевдослучайных чисел) и применяя XOR операция с каждым битом открытого текста с каждым битом ключевого потока.]

Криптографические хэш-функции-это третий тип криптографических алгоритмов. Они принимают сообщение любой длины в качестве входных данных и выводят короткий хэш фиксированной длины, который может быть использован (например) в цифровой подписи. Для хороших хэш-функций злоумышленник не может найти два сообщения. Которые производят один и тот же хэш. MD4-это давно используемая хэш-функция . Которая теперь сломана; MD5, усиленный вариант MD4, также широко используется. Но сломан на практике. Агентство национальной безопасности США разработало серию защищенных хэш-алгоритмов MD5-подобных хэш-функций: SHA-0 был ошибочным алгоритмом. Который агентство отозвало; SHA-1 является широко распространенным и более безопасным, чем MD5, но криптоаналитики были выявлены нападения на него; ша-2 семейные улучшает алгоритма SHA-1, но является уязвимым к столкновениям по состоянию на 2011 год; и американским стандартам орган думал, что это НИСТ— х в целом хэш-алгоритм, инструментарий.[40] таким образом, хэш-функция конкурс был задуман, чтобы выбрать новый американский национальный стандарт, который будет называться ша-3, к 2012 году. Конкурс закончился 2 октября 2012 года. Когда NIST объявила. Что Keccak это будет новый хэш-алгоритм SHA-3.[41] В отличие от блочных и потоковых шифров. Которые являются обратимыми. Криптографические хэш-функции производят хэшированный вывод. Который не может быть использован для извлечения исходных входных данных.