Криптография что это простыми
Что такое криптография? Просто о сложном
Когда речь идет о конфиденциальности, безопасности в интернете и шифровании данных, часто употребляется термин «криптография». Что за ним скрывается, расскажем в этой статье.
Криптография — что это такое?
Греческий термин «криптография» означает «секретный шрифт». Эта наука в основном занимается шифрованием текстов и других данных, чтобы предотвратить несанкционированный доступ к ним. Как доказали ученые, тексты начали шифровать уже в третьем тысячелетии до нашей эры. Как в Римской империи, так и в Средневековье, важные сообщения и военные приказы зашифровывались с помощью криптографии.
Юлий Цезарь для своих сообщений использовал очень простую форму криптографии, известную как «шифр сдвига». Каждая буква в его тексте была заменена на третью следующую в алфавите. Таким образом, вместо A писали D. Получатель должен был знать код шифра, чтобы прочитать нужные слова.
Во время Второй мировой войны для шифрования сообщений использовались специальные устройства. Криптография стала значительно более сложной, так что военным понадобилось несколько лет, чтобы разгадать ключи и читать сообщения других стран.
Криптография в цифровую эпоху
В связи с увеличением вычислительной мощности компьютеров, криптография стала значительно более сложной. Теперь она способна намного надежнее гарантировать безопасность информации. Шифры, какие когда-то использовал Цезарь, сегодня можно расшифровать за пару секунд.
Везде, где речь идет о конфиденциальности, криптография важный вопрос. Если вы заходите на сайт под вашим паролем, как правило, это зашифровано. Шифрование используют и мессенджеры, такие как WhatsApp или Telegram. Чтобы вас не подслушали во время телефонного звонка, телефонная связь тоже может быть зашифрована.
В современной криптографии различают симметричное и асимметричное шифрование. При симметричном шифровании отправители и получатели используют одинаковый ключ, как в шифрованных письмах Цезаря. Для этого ключ должен быть известен обеим сторонам, соответственно одна сторона передает его другой в незашифрованном виде.
При асимметричном шифровании имеется открытый и закрытый ключи. С помощью открытого ключа любой пользователь может отправить вам зашифрованное сообщение. Однако расшифровка сообщения возможна только с помощью закрытого ключа.
Криптография знает много различных методов шифрования данных. Многие из них основаны на сложных математических структурах, таких как эллиптические кривые, кольца и конечные тела. Поэтому для разработки комплексной криптографической системы необходимы хорошие знания математики.
Что такое криптография, и где она применяется?
Криптография — это наука о методах обеспечения конфиденциальности (невозможности прочтения информации посторонним), целостности данных (невозможности незаметного изменения информации), аутентификации (проверки подлинности авторства или иных свойств объекта).
Изначально криптография изучала методы шифрования информации — обратимого преобразования открытого (исходного) текста на основе секретного алгоритма или ключа в шифрованный текст (шифротекст). Традиционная криптография образует раздел симметричных криптосистем, в которых зашифровывание и расшифровывание проводится с использованием одного и того же секретного ключа. Помимо этого раздела современная криптография включает в себя асимметричные криптосистемы, системы электронной цифровой подписи (ЭЦП), хеш-функции, управление ключами, получение скрытой информации, квантовую криптографию.
Криптография не занимается защитой от обмана, подкупа или шантажа законных абонентов, кражи ключей и других угроз информации, возникающих в защищённых системах передачи данных.
До 1975 года криптография представляла собой шифровальный метод с секретным ключом, который предоставлял доступ к расшифровке данных. Позже начался период ее современного развития и были разработаны методы криптографии с открытым ключом, которые может передаваться по открытым каналам связи и использоваться для проверки данных.
Современная прикладная криптография представляет собой науку образованную на стыке математики и информатики. Смежной наукой криптографии считается криптоанализ. Криптография и криптоанализ тесно взаимосвязаны между собой, только в последнем случае изучаются способы расшифровки сокрытой информации.
С модификацией до открытого ключа криптография получила более широкое распространение и стала применяться частными лицами и коммерческими организациями, а в 2009 году на ее основе была выпущена первая криптовалюта Биткоин. До этого времени она считалась прерогативой государственных органов правления.
Виды криптографии
В основе криптографических систем лежат различные виды криптографии. Всего различаю четыре основных криптографических примитива:
Возможности и сферы применения
Изначально криптография использовалась правительством для безопасного хранения или передачи документов. Современные же асимметричные алгоритмы шифрования получили более широкое применение в сфере IT-безопасности, а симметричные методы сейчас применяются преимущественно для предотвращения несанкционированного доступа к информации во время хранения.
В частности криптографические методы применяются для:
Криптография и блокчейн
В блокчейне криптография используется для защиты и обеспечения конфиденциальности личностей и персональных данных, поддержания высокой безопасности транзакций, надежной защиты всей системы и хранилища.
Хеш функции
Хэш-функции в блокчейне взаимосвязаны между собой, с их помощью достигается защита информации и необратимость транзакций. Каждый новый блок транзакций связан с хэшем предыдущего блока, который в свою очередь образован на основе хэша последнего блока, образованного до него. Таким образом каждый новый блок транзакции содержит в себе всю информацию о предыдущих блоках и не может быть подделан или изменен.
Для того, чтобы новый блок был добавлен в блокчейн цепь, сеть должна прийти к общему консенсусу и подобрать хэш нового блока. Для этого при помощи вычислительной техники майнеры предлагают множество “nonce” — вариантов значения функции. Первый майнер, который сумел путем случайного подбора сгенерировать хэш, подходящий для комбинации с предыдущими данными, подписывает им блок, который включается в цепь, и новый блок уже должен будет содержать информацию с ним.
Благодаря применению технологии хэширования в блокчейне все транзакции, которые были выполнены в системе, можно выразить одним хэшем нового блока. Метод хэширования делает практически невозможным взлом системы, а с добавлением каждого нового блока устойчивость блокчейна к атакам только увеличивается.
Цифровые подписи
В блокчейне задействован асимметричный метод криптографии на основе публичных и приватных ключей. Публичный ключ служит адресом хранения монет, секретный — паролем доступа к нему. Закрытый ключ основан на открытом ключе, но его невозможно вычислить математическим путем.
Криптография с открытым ключом
Современная криптография с открытым ключом используется в системе блокчейна для перевода монет.
Для чайников принцип криптографии на основе открытых ключей можно объяснить на примере транзакции. Допустим отправитель желает отправить 1 биткоин. Для этого ему необходимо отправить транзакцию, где будет указано, откуда нужно взять монету, и куда она будет направляться (публичный ключ получателя). Когда транзакция сформирована отправитель должен подписать ее своим секретным ключем. Далее узлы связи проверяют соответствие секретного ключа отправителя с его открытым ключом, с которым на текущий момент ассоциируется монета. Если условия соблюдены, то есть открытый и закрытый ключ отправителя взаимосвязаны, то отправленная монета начнет ассоциироваться с уже с открытым ключом получателя.
Заключение
Криптография является важной составляющей современного мира и необходима в первую очередь для сохранения персональных данных и важной информации. С момента появления она прошла множество модификаций и сейчас представляет собой систему безопасности, которая практически не может быть взломана. Переоценить ее возможности для человечества сложно. Современные методы криптографии применяются практически во всех отраслях, в которых присутствует необходимость безопасной передачи или хранения данных.
Ликбез по основам безопасности и криптографии
Криптография
Три кита криптографии — хеш, шифрование симметричное, шифрование асимметричное (с открытым ключом). Основываются криптографические алгоритмы на сложности вычисления больших чисел, но подробнее об этом, если вас конкретно интересует «начинка», стоит читать не в общих обзорах, именуемых ликбезом. Здесь же содержится простое изложение, без лишних заморочек, то есть поверхностное.
Хеш — функция, функция «в одну сторону», так как восстановить данные, из которых путем хеширования получен хеш (результат хеш-функции), невозможно. На вход подается информация, на выходе имеем её отпечаток, строку фиксированной длины. Подобрать входные данные, которые дадут такой же результат должно быть сложной задачей. Отсюда следствие — если у вас есть проверенный хеш образа диска, документа и т.п., то вы можете вычислить хеш полученного файла и сравнить — если совпадут, значит это то самое. Подобным же образом обходятся зачастую с паролями — если хеш полученного пароля совпадет с имеющимся (в /etc/shadow к примеру), то проверка пройдена успешно.
Шифрование симметричное — шифрование в котором используется, соответственно, симметричный ключ. Это говорит о том, что если вы что то архиважное зашифровали один ключом, то обратную операцию надо проделать им же. Также может использоваться при проверке знания секрета — шифруем некую информацию этим самым секретом, или его хешем, передаем результат второй стороне. Вторая сторона, которая как предполагается знает секрет, расшифровывает данные, их дополняет, шифрует, пересылает обратно. Первая сторона, получив ответ опять же его расшифровывает и смотрит правильно ли вторая сторона изменила данные. Понятно, что если вторая или первая сторона подсовывает неверный секрет, процесс сорвется. Это было весьма общее описание процессов происходящих в протоколе Kerberos.
Шифрование асимметричное — шифрование в котором используются, два ключа, которые обычно называют приватный (секретный) и публичный (известен всем). Зашифровав что либо одним из пары ключей, обратно расшифровать можно только вторым. Таким образом проверить ваше знания приватного ключа достаточно просто — шифруем некую информацию вашим публичным ключом и, если вы знаете приватный, вы легко её прочитаете. На шифровании с асимметричными ключами построено много систем, к примеру это PGP и PKI. Также каждый из вас пользовался этим видом криптографии когда обращался на адреса вида https: //.
Аутентификация и авторизация
Аутентификация это процесс установления личности. Когда вы вводите пароль на Хабр, вы аутентифицируетесь. Никаких прав вы при этом не получаете.
Авторизация это процесс, в котором проверяются права пользователя на выполнение каких либо действий в системе. Например по умолчанию вы имеете право писать в личный блог, но система не даст вам опубликовать хабратопик в коллективный блог, если у вас будет мало кармы. Здесь авторизация на совершение какого либо действия производится по количеству кармы, в файловых системах вам выдают право на совершение действий через ACL, членство в группе и так далее.
Еще раз — через процесс аутентификации получить право на выполнение чего либо нельзя, этим занимается процесс авторизации, а аутентификация только устанавливает личность.
Аутентификация, немного о криптографической стороне дела
Зачастую аутентификация основывается на проверке знания секрета. Самый простой способ это получить от вас пароль в чистом виде (!) и сравнить с хранящимся в базе. Тут есть вариант — проверять хеш пароля, что позволит не знать пароль серверу, а хранить его хеш. Но заметьте — пароль проходит в открытом виде по сети! Второе — вы не знаете кому отправили свой пароль, сервер может быть подставным. Обходной маневр — использовать только в связке с SSL/TLS, но в таком случае у сервера должен быть корректный, не просроченный сертификат, выданный доверенным центром, а не как обычно.
Второй вариант — сервер знает секрет, вы его знаете — используется метод, описанный в абзаце по симметричному шифрованию. Это лучше чем сравнение с запомненным хешем — пароль по сети не бегает вообще, сервер так же не получает ваш секрет — вы проводите с сервером взаимную аутентификацию. На этом методе вырос весьма серьезный протокол — Kerberos, с одним нюансом — пароли знают только выделенные сервера в сети. Kerberos используется в Microsoft Active Directory, в качестве примера привожу как самый известный продукт — все таки у нас ликбез.
Третий вариант, сложный, PKI. За рамки ликбеза его описание выходит, интересно — почитайте сами. По сути схож с Kerberos — есть центр, но основан на асимметричном шифровании.
Kerberos
Алгоритм описан с некоторыми отступлениями, для улучшения восприятия. Если вам потребуется точное описание работы, не для общего сведения, советую почитать более серьезную литературу
Каждый день, работники корпоративного сектора активнейшим образом используют квинтэссенцию криптографической мысли — протокол Kerberos, бороздя просторы корпоративной же сети построенной на базе решений от Microsoft, ведь все процессы идентификации пользователей и компьютеров сервисами (IMAP,SMTP, доступ к файлам) он берет на свои плечи.
Протокол Kerberos это протокол аутентификации использующий хеш-функции и симметричные шифры. Как ни удивительно, но Kerberos это не очередное порождения Microsoft в стремлении «чтобы свое, и чтобы ни с чем не совместимо, и чтобы они нам душу отдали за спецификации», создан протокол в стенах массачусетского технологического института — MIT, где активно используется все эти годы в кампусной сети ВУЗа.
Перечитайте описание симметричных шифров, в конце там есть пример. Так вот в чем недостаток решения, предложенного в том абзаце? А получается, что пароли надо размещать на каждом сервере сети, да еще каждой службе надо будет иметь к ним доступ, к незашифрованым паролям, да еще на каждый сервер эти пароли надо внести. Выглядит это несколько дыряво.
В протоколе Kerberos для хранения паролей выделен отдельный сервер — Key Distribution Center (сервер распределения ключей), ключи есть у каждого участника процесса — и у пользователей и у сервисов. Ключ получается из пароля путем хеширования, так как пользователь не сможет запомнить требуемое для алгоритма шифрования количество символов. Хеширование возвращает всегда строку фиксированной длины, что как раз подходит для алгоритмов шифрования с симметричным ключом.
Когда пользователю надо получить доступ к HTTP серверу (портал там лежит корпоративный, к примеру), он обращается к KDC (ну понятно, что обращается библиотека) с просьбой предоставить ключ для доступа к HTTP серверу. У KDC есть ключи пользователя и сервера
KDC генерирует случайный, симметричный ключ и делает достаточно сложную конструкцию, называемую билетом, которую лучше посмотреть на картинке:
Итак, имеем матрешку, но разбирается она достаточно просто. Пользователь, получив ответ, расшифровывает его свои ключом, получает сгенерированный ключ и шифрованный ключом сервера пакет. Так вот этот пакет пользователь отсылает уже HTTP серверу, который расшифровывает его и тоже получает тот же самый сгенерированный ключ.
Теперь у обоих есть общий ключ. И вот теперь можно аутентифицировать друг друга, способ уже описан — шифруем полученным от KDC, сгенерированным ключом имя пользователя, IP адрес, время и отсылаем серверу. Сервер расшифровывает, и получив ожидаемое имя пользователя признает в нем Пупкина. Теперь очередь сервера представиться — он прибавляет к полученному времени 1 (единицу) и, зашифровав все обратно, отсылает пакет пользователю. Ясно, что если в полученном пакете, после дешифрации будет обнаружена та же временная метка, которую пользователь отсылал, но увеличенная на единицу, то сервер признается подлинным.
А вот про время я упомянул не зря. Доступ выдается на определенное время (часто на 10 часов), время проставляется в билете, и по истечении срока действия билет считается просроченным — сервер больше такой билет не примет, что впрочем не смертельно — получите новый. Гораздо печальнее будет, если время на вашем ПК разойдется более чем на 5 минут с KDC — войти в систему не сможете, так как протокол Kerberos требует от участников процесса синхронного времени — чтобы билеты истекали на всех машинах сети одновременно, и не было возможности использовать просроченный билет для доступа куда либо.
Итак, билет действует 10 часов, не требуя больше ввода пароля, для обращения к серверу. Но ведь так утомительно вводить пароль на каждый сервер в сети, тем более, что вы могли заметить — никто так не делает, после одного ввода пароля при логине в Windows вы больше не вводите пароли на доступ к расшареным сетевым папкам. А все от того, что получать билеты ведь тоже можно по билету! Подобная конструкция называется TGT — билет для получения билетов. Тут все так же как и было показано, получаем билет на доступ к сетевой службе, выдающей билеты (TGS — Ticket-Granting Service), которая признает Пупкина Пупкиным. А раз Пупкин это Пупкин, то можно ему выдавать билеты на Пупкина для доступа к различным серверам сети.
Таким образом, в течении действия TGT вы можете получать билеты на доступ к сетевым службам без повторного ввода пароля. Удобно работает, правда?
Заметьте, что Kerberos выдает билеты на доступ к любой службе сети, есть ли у вас право ей пользоваться или нет, протоколу аутентификации безразлично — его дело удостоверить вашу личность, а правами занимаются совсем другие механизмы.
Криптография
Криптогра́фия (от греч. κρυπτός — скрытый и γράφω — пишу) — наука о математических методах обеспечения конфиденциальности (невозможности прочтения информации посторонним) и аутентичности (целостности и подлинности авторства, а также невозможности отказа от авторства) информации.
Криптография — одна из старейших наук, ее история насчитывает несколько тысяч лет.
Содержание
Терминология [ ]
История криптографии и криптоанализа [ ]
Использовавшийся в Древней Греции шифр «скитала», чья современная реконструкция показана на фото, вероятно был первым устройством для шифрования.
Хотя частотный анализ является мощным средством, шифрование до сих пор остаётся эффективным на практике, так как многие потенциальные криптоаналитики не знакомы с этой техникой. Взлом сообщения без частотного анализа обычно требует знания используемого шифра, то есть является следствием шпионажа, взятки, кражи или измены для его определения. В XIX веке стало окончательно ясно, что секретность алгоритма шифрования не является гарантией от взлома, более того в дальнейшем было понято, что адекватная крипографическая схема (включая шифр) должна оставаться защищённой даже, если противник полностью узнал алгоритм шифрования. Секретность ключа должна быть достаточна для хорошего шифра, чтобы сохранить стойкость к попыткам взлома. Этот фундаментальный принцип впервые ясно сформулировал в 1883 Огюстом Керкгоффсом и обычно называется Принципом Керкгоффса; альтернативно и более прямо принцип был также сформулирован Клодом Шенноном как Максима Шеннона — «враг знает нашу систему».
Развитие компьютерной техники и электроники после Второй мировой сделало возможным использование более сложных шифров. Более того, компьютеры позволили шифровать любые данные, которые представимы в цифровом бинарном виде, в отличие от классических шифров, которые предназначались только для шифрования написанных текстов. Это привело к непригодности лингвистических методов криптоанализа для большинства случаев, так как многие компьютерные шифры характеризуются работой с последовательностями битов (возможно сгруппированных в блоки), в то время как классические и механические схемы обычно манипулировали традиционными знаками (буквами и цифрами). С другой стороны, компьютеры помогают криптоанализу, что может компенсировать усложнение шифров. Однако, не смотря на это, хорошие современные шифры идут впереди криптоанализа, обычно использование качественного шифра очень эффективно (то есть осуществляется быстро и с минимальными ресурсами), в то время, как взлом требует усилий на много порядков больше как по времени, так и по ресурсам, делая криптоанализ настолько неэффективным и непрактичным, что можно считать его невозможным за разумное время или с разумными ресурсами.
На данный момент секретность большинства современных методов криптографии базируется на вычислительной сложности таких проблем, как факторизация больших целых чисел или проблема дискретного логарифма. В большинстве случаев существуют доказательства, что методики шифрования являются надёжными если соответствующая вычислительная проблема не может быть эффективно решена. [5] Единственное существенное исключение из этого правила — метод одноразового блокнота, который работает каждый раз с новыми значениями и имеет абсолютную криптографическую стойкость.
Современная криптография [ ]
Для современной криптографии характерно использование открытых алгоритмов шифрования, предполагающих использование вычислительных средств. Известно более десятка проверенных алгоритмов шифрования, которые при использовании ключа достаточной длины и корректной реализации алгоритма, криптографически стойки. Распространенные алгоритмы:
Криптография с симметричным ключом [ ]
Криптография с открытым ключом [ ]
Криптоанализ [ ]
Криптографические примитивы [ ]
Построение криптостойких систем может быть осуществлено путём многократного применения относительно простых криптографических преобразований (примитивов). В качестве таких примитивов Клод Шеннон предложил использовать подстановки (substitution) и перестановки (permutation). Схемы, реализующие эти преобразования, называются SP-сетями. Часто используемыми криптографическими примитивами являются также преобразования типа циклический сдвиг или гаммирование.
Криптографические протоколы [ ]
Управлени ключами [ ]
Отношение криптографии с законом и государством [ ]
Запреты [ ]
В Российской Федерации коммерческая деятельность, связанная с использованием криптографических средств, подлежит обязательному лицензированию. С 22 января 2008 года действует Постановление Правительства РФ от 29 декабря 2007 N 957 «Об утверждении положений о лицензировании отдельных видов деятельности, связанных с шифровальными (криптографическими) средствами», которым приняты Положения о лицензировании деятельности по:
Предприятия и физические лица — предприниматели, занимающиеся соответствующей деятельностью обязаны предварительно получить все необходимые лицензии на каждый вид деятельности, подлежащей лицензированию.
Следует отметить, что данное Постановление в прилагаемых приложения содержит жесткие требования к лицу — соискателю лицензии, включая его образование, квалификацию, стаж, требования к помещению, охране, информационной и эксплуатационной безопасти при разработке и реализации средств. К примеру, требуется «наличие в штате у соискателя … следующего квалифицированного персонала: руководитель и (или) лицо, уполномоченное руководить работами по лицензируемой деятельности, имеющие высшее профессиональное образование и (или) профессиональную подготовку в области информационной безопасности, а также стаж работы в этой области не менее 5 лет; инженерно-технические работники, имеющие высшее профессиональное образование или прошедшие переподготовку … в области информационной безопасности с получением специализации, необходимой для работы с шифровальными (криптографическими) средствами»
Ранее был издан Указ Президента РФ от 3 апреля 1995 N 334 «О мерах по соблюдению законности в области разработки, производства, реализации и эксплуатации шифровальных средств, а также предоставления услуг в области шифрования информации», постановивший «Запретить использование государственными организациями и предприятиями в информационно — телекоммуникационных системах шифровальных средств, включая криптографические средства обеспечения подлинности информации (электронная подпись), и защищенных технических средств хранения, обработки и передачи информации, не имеющих сертификата Федерального агентства правительственной связи и информации при Президенте Российской Федерации, а также размещение государственных заказов на предприятиях, в организациях, использующих указанные технические и шифровальные средства, не имеющие сертификата Федерального агентства правительственной связи и информации при Президенте Российской Федерации»
Относительно юридических лиц и предпринимателей, желающих разрабатывать либо реализовывать криптосистемы, существуют п.5-11 ст. 17 Федерального Закона от 08.08.2001 N 128-ФЗ «О лицензировании отдельных видов деятельности»
5) деятельность по распространению шифровальных (криптографических) средств;
6) деятельность по техническому обслуживанию шифровальных (криптографических) средств;
7) предоставление услуг в области шифрования информации;
8) разработка, производство шифровальных (криптографических) средств, защищенных с использованием шифровальных (криптографических) средств информационных систем, телекоммуникационных систем;
10) деятельность по разработке и (или) производству средств защиты конфиденциальной информации;
11) деятельность по технической защите конфиденциальной информации;
Экспортный контроль [ ]
Управление цифровыми правами [ ]
Примечания [ ]
Ссылки [ ]
Литература [ ]
af:Kriptografie ar:علم التعمية be-x-old:Крыптаграфія ca:Criptografia cs:Kryptografie da:Kryptografi de:Kryptographie el:Κρυπτογραφία en:Cryptography es:Criptografía et:Krüptograafia eu:Kriptografia fa:رمزنگاری fi:Salaus fr:Cryptographie gl:Criptografía he:קריפטוגרפיה hi:बीज-लेखन hr:Kriptografija hu:Kriptográfia id:Kriptografi it:Crittografia ja:暗号理論 ka:კრიპტოგრაფია kk:Криптография ko:암호학 la:Cryptographia ml:ഗൂഢശാസ്ത്രം ms:Kriptografi nl:Cryptografie nn:Kryptografi no:Kryptografi pt:Criptografia ro:Criptografie sl:Kriptografija sq:Kriptografia sr:Криптографија sv:Kryptografi th:วิทยาการเข้ารหัสลับ tr:Kriptografi uk:Криптографія uz:Kriptografiya vi:Mật mã học zh:密码学