Война в Украине

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

Редактирование Криптография

Перейти к: навигация, поиск

Внимание! Вы не авторизовались на сайте. Ваш IP-адрес будет публично видимым, если вы будете вносить любые правки. Если вы войдёте или создадите учётную запись, правки вместо этого будут связаны с вашим именем пользователя, а также у вас появятся другие преимущества.

Правка может быть отменена. Пожалуйста, просмотрите сравнение версий, чтобы убедиться, что это именно те изменения, которые вас интересуют, и нажмите «Записать страницу», чтобы изменения вступили в силу.
Текущая версия Ваш текст
Строка 1: Строка 1:
 
{{Навигация|Криптоконспирология}}
 
{{Навигация|Криптоконспирология}}
{{rewrite|разделить и дополнить}}
+
 
 
[[Файл:Stirlitz.jpg|thumb|200px|Штирлиц смотрит на местных криптографов с каким-то презрением в глазах]]'''Ылчу''' — флфхзпг цфосерюш кргнсе, тулпзрВзпгВ жоВ фзнузхрсм тзузтлфнл жлтоспгхлъзфнлш тузжфхгелхзозм фс феслп тугелхзояфхесп, е ессуцйзррюш флогш жоВ тзузжгъл тулнгксе, угфтсуВйзрлм, жсрзфзрлм. Ылчусп хгнйз ргкюегзхфВ оБдгВ лрчсупгщлВ, тзузжгегзпгВ е кгнуюхсп елжз ф щзояБ фнуюхя сх тсфхсусррлш ёогк зи фсжзуйлпсз. Сдюърс ылчусегрлз туслкесжлхфВ кгпзрсм лфшсжрюш дцне, чугк лол лш ъгфхзм лрюпл дцнгепл лол нспдлргщлВпл, фсфхгеоВБьлпл ноБъ ылчуг, нсхсуюш псйзх дюхя рзфнсоянс л гоёсулхп лш тулпзрзрлВ псйзх угколъгхяфВ.<ref>Шифр — система условных знаков, применяемая для секретной переписки дипломатических представителей со своим правительством, в вооружённых силах для передачи приказов, распоряжений, донесений. Шифром также называется любая информация, передаваемая в закрытом виде с целью скрыть от посторонних глаз её содержимое. Обычно шифрование производится заменой исходных букв, фраз или их частей иными букавми или комбинациями, составляющими ключ шифра, которых может быть несколько и алгоритм их применения может различаться.
 
[[Файл:Stirlitz.jpg|thumb|200px|Штирлиц смотрит на местных криптографов с каким-то презрением в глазах]]'''Ылчу''' — флфхзпг цфосерюш кргнсе, тулпзрВзпгВ жоВ фзнузхрсм тзузтлфнл жлтоспгхлъзфнлш тузжфхгелхзозм фс феслп тугелхзояфхесп, е ессуцйзррюш флогш жоВ тзузжгъл тулнгксе, угфтсуВйзрлм, жсрзфзрлм. Ылчусп хгнйз ргкюегзхфВ оБдгВ лрчсупгщлВ, тзузжгегзпгВ е кгнуюхсп елжз ф щзояБ фнуюхя сх тсфхсусррлш ёогк зи фсжзуйлпсз. Сдюърс ылчусегрлз туслкесжлхфВ кгпзрсм лфшсжрюш дцне, чугк лол лш ъгфхзм лрюпл дцнгепл лол нспдлргщлВпл, фсфхгеоВБьлпл ноБъ ылчуг, нсхсуюш псйзх дюхя рзфнсоянс л гоёсулхп лш тулпзрзрлВ псйзх угколъгхяфВ.<ref>Шифр — система условных знаков, применяемая для секретной переписки дипломатических представителей со своим правительством, в вооружённых силах для передачи приказов, распоряжений, донесений. Шифром также называется любая информация, передаваемая в закрытом виде с целью скрыть от посторонних глаз её содержимое. Обычно шифрование производится заменой исходных букв, фраз или их частей иными букавми или комбинациями, составляющими ключ шифра, которых может быть несколько и алгоритм их применения может различаться.
 
<br /><br />
 
<br /><br />
Строка 8: Строка 8:
  
 
== Основные понятия ==
 
== Основные понятия ==
Для удобства участникам передачи зашифрованного сообщения дают следующие имена: Алиса — отправитель, Боб — получатель, Ева — пассивный перехватчик, Меллори (Man-in-the-middle) — активный перехватчик, может не только перехватывать передачу, но и подменять содержимое.
+
''Открытый текст'' — сообщение, передаваемое без зашифровывания или кодирования, а так же текст сообщения до того, как его зашифруют/закодируют, или после того, как его расшифруют/раскодируют.
  
* ''Открытый текст'' — информация, которую отправитель хотел бы передать получателю.
+
''Криптотекст'' (также ''шифротекст'', ''шифрат'') — результат применения шифрметода к тексту, похож на случайный набор символов. Если шифр использует ключ, то без знания ключа невозможно получить открытый текст из шифрата.
* ''Криптотекст'' (также ''шифротекст'', ''шифрат'') — закрытая форма информации. При помощи ключа из криптотекста можно восстановить открытый текст.
+
* ''Криптографический алгоритм'' — ряд математических преобразований, совершаемых над открытым текстом для превращения его в закрытый и наоборот.
+
* ''Шифрование'' (''шифр'') — способ сокрытия информации, в котором основным элементом является буква. Буквы открытого текста заменяются на другие буквы, числа или символы, либо вместо них подставляются другие буквы, буквенные пары, а иногда более крупные группы букв.
+
[[Файл:Wrench.png|thumb|Подходы к криптоанализу]]
+
* ''Криптоанализ'' (также ''дешифровка'') — изучение криптографического алгоритма с целью получения открытого текста из шифрата без знания ключа. Может производиться ради получения доступа к перехваченным сообщениям. Частным случаем является [[:lm ru:Терморектальный криптоанализатор|терморектальный криптоанализ]] (англ. {{Acronym|rubber-hose cryptanalysis|криптоанализ резиновым шлангом}}, викпдск. бандитский криптоанализ).
+
* ''Криптология'' — наука о методах шифрования и дешифровки.
+
* ''Криптоаналитик'' — агент, которому сообщение не предназначалось, но который стремится дешифровать его.
+
* ''Расшифровка'' — действие, обратное шифрованию: получение открытого текста из шифрата, используя ключ. Не стоит путать с ''[[:w:дешифровкой|дешифровкой]]''.
+
* ''Ключ'' — это секретная информация, параметр криптографического алгоритма, который используется при шифровании и расшифровке. Все современные криптосистемы построены по [[:w:Принцип Керкгоффса|принципу Керкгоффса]], согласно которому секретность зашифрованных данных определяется секретностью ключа шифрования, то есть даже при известном криптографическом алгоритме криптоаналитик не в состоянии за приемлемое время получить открытый текст, если не располагает ключом.
+
* ''Электронная цифровая подпись'' (''ЭЦП'') — информация, подтверждающая подлинность другой информации. ЭЦП подобна подписи на бумажном документе: по ней видно, что с документом согласны и видно, кто согласен.
+
* ''Криптография с открытым ключом'' — система из двух ключей: ''открытого'' и ''закрытого''. Открытый ключ помещается в публичный доступ, поэтому знание открытого ключа не дает дополнительных возможностей. ''Асимметричное шифрование'': шифруют открытым, расшифровывают закрытым. ЭЦП: шифруют закрытым, расшифровывают открытым.
+
  
Асимметричное шифрование используется для передачи данных через прослушиваемый канал, когда требуется уверенность, что только адресат (он же обладатель закрытого ключа) сможет прочитать открытый текст. ЭЦП используется, чтобы подтвердить авторство открытого текста: в этом случае автор шифрует открытый текст своим закрытым ключом, после чего каждый может расшифровать общеизвестным открытым ключом этого автора и проверить открытый текст. Получить шифрат, который бы правильно расшифровывался данным открытым ключом, может только обладатель закрытого ключа. ЭЦП может иметь юридическую силу, подобно обычной подписи, если публичный ключ добавлен в базу данных соответствующего органа.
+
''Алгоритм'' — ряд инструкций, посредством которых математическая формула применяется к численному представлению сообщения, чтобы зашифровать и расшифровать его.
* ''Поручитель'' — человек, подтверждающий принадлежность данного публичного ключа кому-либо. Поручитель является аналогом нотариуса. Поручителю должно оказываться доверие, а его публичный ключ должен быть известен изначально, чтобы с помощью ЭЦП можно было убедиться, что подтверждение выписано поручителем, а не кем-то ещё. Формируются цепочки поручителей разных уровней, в которых публичный ключ следующего подписан предыдущим. У основания стоят поручители с мировым именем, например [[:w:Verisign|Verisign]]. Поручители являются одним из способом гарантировать принадлежность открытого ключа этому человеку, а без этого невозможно направить сообщение, которое мог бы прочитать только адресат, или быть уверенным, что сообщение написано отправителем.
+
 
* ''Хеш-функция'' — алгоритм, превращающий данные (например, текст) в число (''хеш-значение''). Число может быть довольно большим, например для [[:w:md5|md5]] это 128-битное число. ''Криптографическая хеш-функция'' — это хеш-функция, для которой не существует эффективного способа подобрать такие исходные данные, для которых она выдавала бы заранее выбранный результат. Для некоторых хеш-функций (например, crc32) это требование удается обойти, тогда функция считается взломанной и больше не используется в криптографии. Если появляется алгоритм генерации нескольких текстов, дающих одинаковое хеш-значение, то функцию тоже считают взломанной (например, md5). Криптографическую хеш-функцию можно рассматривать как необратимое шифрование без ключа. Хеш-функции применяются в криптографии для уменьшения размера текста перед его подписыванием ЭЦП и для безопасного хранения паролей, при котором можно проверить соответствие введенного пароля сохраненному, но нельзя узнать сам сохраненный пароль.
+
''Шифр'' — способ сокрытия информации, в котором основным элементом является буква. Буквы открытого текста заменяются на другие буквы, числа или символы, либо вместо них подставляются другие буквы, буквенные пары, а иногда более крупные группы букв. Все современные криптосистемы построены по [[:w:Принцип Керкгоффса|принципу Керкгоффса]], согласно которому секретность зашифрованных данных определяется секретностью ключа шифрования, то есть даже при известном криптографическом алгоритме криптоаналитик не в состоянии за приемлемое время получить расшифрованные данные, если не располагает ключом.
 +
 
 +
''Криптоанализ'' (также ''дешифровка'') — процесс, применяемый криптоаналитиками третьей стороны, которые стремятся перехватить сообщения и раскрыть их зашифрованное или закодированное содержимое. Частным случаем является [[:lm ru:Терморектальный криптоанализатор|терморектальный криптоанализ]] (англ. {{Acronym|rubber-hose cryptanalysis|криптоанализ резиновым шлангом}}, викпдск. бандитский криптоанализ).
 +
 
 +
''Криптология'' — наука о методах шифрования и дешифрования, включает в себя сокрытие содержания сообщения (криптография), раскодирование или расшифровывание такого сообщения адресатом, и взлом сообщения третьей стороной (криптоанализ).
 +
 
 +
''Криптоаналитик'' — третья сторона, человек, для которого сообщение не предназначалось, но который стремится дешифровать или декодировать его, не зная использовавшегося метода сокрытия информации.
 +
 
 +
''Расшифровывание'' — действие, обратное шифрованию: получение открытого текста из шифрата. Не стоит путать с ''[[:w:дешифровкой|дешифровкой]]''.
 +
 
 +
''Ключ'' — это инструкции, которые управляют ходом зашифровывания/кодирования и расшифровывания/раскодирования сообщений. В соответствии с принципом Керкгоффса, ключ (а не алгоритм) является основой безопасности.
 +
 
 +
''Криптография с открытым ключом'' — когда для шифрования и для расшифровывания используются разные ключи: ''открытый'' и ''закрытый''. Открытый ключ помещается в публичный доступ, поэтому знание открытого ключа не дает дополнительных возможностей. Если шифрование происходит с открытым ключом, а расшифровка с закрытым, получаем ''асимметричное шифрование'': зашифровать может каждый, а расшифровать только хозяин ключа. Если наоборот — ''электронную цифровую подпись'' (ЭЦП). Асимметричное шифрование используется для передачи данных через прослушиваемый канал, когда требуется уверенность, что только адресат (он же обладатель закрытого ключа) сможет прочитать открытый текст. ЭЦП используется, чтобы подтвердить авторство открытого текста: в этом случае автор зашифровывает открытый текст своим закрытым ключом, после чего каждый может расшифровать общеизвестным открытым ключом этого автора и проверить открытый текст. Получить шифрат, который бы правильно расшифровывался данным открытым ключом, может только обладатель закрытого ключа. ЭЦП может иметь юридическую силу, подобно обычной подписи, если публичный ключ добавлен в базу данных соответствующего органа.
 +
 
 +
''Поручитель'' — человек, подтверждающий принадлежность данного публичного ключа кому-либо. Поручитель является аналогом нотариуса. Поручителю должно оказываться доверие, а его публичный ключ должен быть известен изначально, чтобы с помощью ЭЦП можно было убедиться, что подтверждение выписано поручителем, а не кем-то ещё. Формируются цепочки поручителей разных уровней, в которых публичный ключ следующего подписан предыдущим. У основания стоят поручители с мировым именем, например [[:w:Verisign|Verisign]]. Поручители являются одним из способом гарантировать принадлежность открытого ключа этому человеку, а без этого невозможно направить сообщение, которое мог бы прочитать только он, или надежно подтвердить авторство его сообщения.
 +
 
 +
''Хеш-функция'' — алгоритм, превращающий данные (например, текст) в число (''хеш-значение''). Число может быть довольно большим, например для [[:w:md5|md5]] это 128-битное число. ''Криптографическая хеш-функция'' — это хеш-функция, для которой не существует эффективного способа подобрать такие исходные данные, для которых бы она выдавала заранее выбранный результат. Для некоторых хеш-функций (например, crc32) это требование удается обойти, тогда функция считается взломанной и больше не используется в криптографии. Если появляется алгоритм генерации нескольких текстов, дающих одинаковое хеш-значение, то функцию тоже считают взломанной (например, md5). Криптографическую хеш-функцию можно рассматривать как необратимое шифрование без ключа. Хеш-функции применяются в криптографии для уменьшения размера текста перед его подписыванием ЭЦП и для безопасного хранения паролей, при котором можно проверить соответствие введенного пароля сохраненному, но нельзя узнать сам сохраненный пароль.
  
 
Ключ, как правило, можно «приладить» к хеш-функция в виде ''соли'' — строки, соединяемой с открытым текстом перед применением хеш-функции. Это бывает полезно для затруднения подбора исходного текста с помощью словарей популярных паролей и таблиц вида текст — хеш-значение. При атаках в качестве такой таблицы может использоваться google. В этом можно убедиться, поискав 202cb962ac59075b964b07152d234b70 — значение хеш-функции md5 для «123». А если использовать соль «wabranes», то md5(wabranes|123) = «477de9d90eaed5064a303698244dc685» уже не находится в гугле (за исключением, возможно, этой страницы).
 
Ключ, как правило, можно «приладить» к хеш-функция в виде ''соли'' — строки, соединяемой с открытым текстом перед применением хеш-функции. Это бывает полезно для затруднения подбора исходного текста с помощью словарей популярных паролей и таблиц вида текст — хеш-значение. При атаках в качестве такой таблицы может использоваться google. В этом можно убедиться, поискав 202cb962ac59075b964b07152d234b70 — значение хеш-функции md5 для «123». А если использовать соль «wabranes», то md5(wabranes|123) = «477de9d90eaed5064a303698244dc685» уже не находится в гугле (за исключением, возможно, этой страницы).
* ''Криптографическая стойкость'' — устойчивость алгоритма и ключей к анализу или перебору, отсутствие в алгоритме уязвимостей. Чем выше стойкость, тем труднее, не имея ключа, совершить действие, для которого он нужен.
+
 
 +
''Криптографическая стойкость'' — устойчивость алгоритма и ключей к анализу или перебору, отсутствие в алгоритме уязвимостей. Чем выше стойкость, тем труднее, не имея ключа, совершить действие, для которого он нужен.
  
 
== История ==
 
== История ==
Строка 52: Строка 58:
 
</pre>
 
</pre>
 
Результат: «ЭФВПТРНАОДЕРШРЙТИЕСЫ».
 
Результат: «ЭФВПТРНАОДЕРШРЙТИЕСЫ».
Для расшифровки нужно знать диаметр цилиндра.
+
Для дешифровки нужно знать диаметр цилиндра.
 
Это пример '''перестановочного шифра''' в котором буквы текста меняются местами по заданному алгоритму.
 
Это пример '''перестановочного шифра''' в котором буквы текста меняются местами по заданному алгоритму.
  
 
== Скремблирование ==
 
== Скремблирование ==
 
[[Файл:Letter-frequences.png|thumb]]
 
[[Файл:Letter-frequences.png|thumb]]
[[Файл:Enigma rotors with alphabet rings.jpg|thumb|Скремблер машины [[:w:Энигма|Энигма]]]]
 
 
 
Простые алгоритмы шифрования, например код Цезаря, легко атакуются, если сообщение достаточно длинное и известны частоты букв алфавита. Для этого используется таблицы частот букв, которые составили для всех языков.
 
Простые алгоритмы шифрования, например код Цезаря, легко атакуются, если сообщение достаточно длинное и известны частоты букв алфавита. Для этого используется таблицы частот букв, которые составили для всех языков.
  
Строка 114: Строка 118:
  
 
== Симметричное шифрование ==
 
== Симметричное шифрование ==
При симметричном шифровании используется один и тот же ключ для шифровки и для расшифровки. Это влечет за собой ряд проблем. Во-первых, необходим надежный канал для передачи ключа. Во-вторых, группе из N независимых членов потребуется N²/2 симметричных ключей (каждый с каждым), в то время как асимметричных потребовалось бы только N (на каждого по одной паре ключей). В-третьих, симметричное шифрование невозможно использовать для подтверждения авторства (ЭЦП), так как ключ известен обеим сторонам. Зато симметричное шифрование зародилось раньше асимметричного, поэтому лучше изучено. То есть, меньше шансы, что какой-нибудь сумасшедший ученый изобретет эффективную атаку на симметричный алгоритм, чем на асимметричный. Кроме того, симметричные алгоритмы работают быстрее, чем асимметричные, требуют ключ меньшей длины и проще реализуются, в том числе на уровне железа (как [[:w:AES|AES]], к примеру).
+
При симметричном шифровании используется один и тот же ключ для зашифровки и для расшифровки. Это влечет за собой ряд проблем. Во-первых, необходим надежный канал для передачи ключа. Во-вторых, группе из N независимых членов потребуется N²/2 симметричных ключей (каждый с каждым), в то время как асимметричных потребовалось бы только N (на каждого по одной паре ключей). В-третьих, симметричное шифрование невозможно использовать для подтверждения авторства (ЭЦП), так как ключ известен обеим сторонам. Зато симметричное шифрование зародилось раньше асимметричного, поэтому лучше изучено. То есть, меньше шансы, что какой-нибудь сумасшедший ученый изобретет эффективную атаку на симметричный алгоритм, чем на асимметричный. Кроме того, симметричные алгоритмы работают быстрее, чем асимметричные, требуют ключ меньшей длины и проще реализуются, в том числе на уровне железа (как [[:w:AES|AES]], к примеру).
  
 
<!-- пересказ педивикии «Симметричные_криптосистемы» -->
 
<!-- пересказ педивикии «Симметричные_криптосистемы» -->
Строка 136: Строка 140:
 
Метод шифрования, использующий пару ключей, открытый (публичный) и закрытый (секретный), для обмена шифрованными сообщениями. Программа генерирует пару ключей, связанных между собой. Публичный используется только для шифрования, закрытый же — лишь для расшифровки. Ключи связаны между собой так, что невозможно создать ещё один открытый ключ, не имея закрытого. Но воссоздать закрытый ключ, имея публичный, не выйдет даже при наличии образцов исходного и шифрованного текстов. Открытый ключ вместе с данными о его владельце распространяется среди корреспондентов, закрытый же хранится в тайне. Отправитель шифрует сообщение публичным ключом, но расшифровать его может только получатель.
 
Метод шифрования, использующий пару ключей, открытый (публичный) и закрытый (секретный), для обмена шифрованными сообщениями. Программа генерирует пару ключей, связанных между собой. Публичный используется только для шифрования, закрытый же — лишь для расшифровки. Ключи связаны между собой так, что невозможно создать ещё один открытый ключ, не имея закрытого. Но воссоздать закрытый ключ, имея публичный, не выйдет даже при наличии образцов исходного и шифрованного текстов. Открытый ключ вместе с данными о его владельце распространяется среди корреспондентов, закрытый же хранится в тайне. Отправитель шифрует сообщение публичным ключом, но расшифровать его может только получатель.
  
Метод имеет ряд преимуществ перед симметричным шифрованием. При использовании одного ключа для щифрования и расшифровки нужно быть уверенным, что он не попадёт в чужие руки. Следовательно, возникает множество проблем с его хранением и передачей. Пользователь может быть уверен в себе, но не в своих корреспондентах, или каналах связи, через которые он передаёт ключ. Асимметричное шифрование решает проблему сохранности закрытого ключа однозначно, так как при его использовании нет необходимости передавать закрытый ключ всем собеседникам. А публичный может передаваться и даже попасть в руки злоумышленника, но при попытке расшифровки того ждёт фиаско.
+
Метод имеет ряд преимуществ перед симметричным шифрованием. При использовании одного ключа для кодирования и декодирования нужно быть уверенным, что он не попадёт в чужие руки. Следовательно, возникает множество проблем с его хранением и передачей. Пользователь может быть уверен в себе, но не в своих корреспондентах, или каналах связи, через которые он передаёт ключ. Асимметричное шифрование решает проблему сохранности закрытого ключа однозначно, так как при его использовании нет необходимости передавать закрытый ключ всем собеседникам. А публичный может передаваться и даже попасть в руки злоумышленника, но при попытке расшифровки того ждёт фиаско.
  
 
== Обмен публичными ключами. Уязвимость. Сертификация и сеть доверия. ==
 
== Обмен публичными ключами. Уязвимость. Сертификация и сеть доверия. ==
Если люди уже знаю публичные ключи друг друга — то проблема зашифрованного обмена и подтверждения авторства для них решена (средствами асимметричного шифрования и ЭЦП соответственно). Если обмена ключами не было, но есть гарантия, что сообщения доходят в неизмененном виде (то есть решена задача подтверждения авторства), то средства криптографии с открытым ключом [[:w:Алгоритм Диффи — Хеллмана|позволяют]] установить шифрованный канал. А вот наоборот не получится — если мы с кем-то установили шифрованный канал, одного этого недостаточно для уверенности в личности этого человека. Во времена второй мировой главной проблемой криптографии была передача симметричного ключа (который мог разгласить [[:lm ru:крыса-кун|каждый]], кто его знал), то сейчас основную сложность представляет обмен публичными ключами. Разглашать публичные ключи бессмысленно, так как они и так находятся в общем доступе, поэтому часть проблем уходит, но открывается достаточно возможностей для подмены самого публичного ключа, что приводит к перехвату шифрованных посланий (подписанных публичным ключом атакующего) или подделке авторства (за автора подписывается атакующий своим публичным ключом). Одним из решений проблемы дополнение схемы поручителями.
+
Если люди уже знаю публичные ключи друг друга — то проблема зашифрованного обмена и подтверждения авторства для них решена (средствами асимметричного шифрования и ЭПЦ соответственно). Если обмена ключами не было, но есть гарантия, что сообщения доходят в неизмененном виде (то есть решена задача подтверждения авторства), то средства криптографии с открытым ключом [[:w:Алгоритм Диффи — Хеллмана|позволяют]] установить шифрованный канал. А вот наоборот не получится — если мы с кем-то установили шифрованный канал, одного этого недостаточно для уверенности в личности этого человека. Во времена второй мировой главной проблемой криптографии была передача симметричного ключа (который мог разгласить [[:lm ru:крыса-кун|каждый]], кто его знал), то сейчас основную сложность представляет обмен публичными ключами. Разглашать публичные ключи бессмысленно, так как они и так находятся в общем доступе, поэтому часть проблем уходит, но открывается достаточно возможностей для подмены самого публичного ключа, что приводит к перехвату шифрованных посланий (подписанных публичным ключом атакующего) или подделке авторства (за автора подписывается атакующий своим публичным ключом). Одним из решений проблемы дополнение схемы поручителями.
  
 
Допустим, существует третья заинтересованная сторона, которая предоставит вам свой ключ вместо ключа вашего корреспондента, а ему в свою очередь такой же фиктивный свой ключ вместо вашего. Тогда эта третья сторона сможет расшифровать ваше сообщение, подменить его тем же самым исходным текстом, только зашифрованным настоящим публичным ключом вашего корреспондента, и переслать ему. Он же, обладая вашим фиктивным ключом (который ему заботливо подсунули), шифрует для вас ответ, также достающийся третьей стороне, которая преспокойно добывает исходный текст и шифрует его вашим настоящим ключом. В результате хитрых манипуляций окажется, что вся сложность перехвата сводится не к криптоанализу и созданию идентичных хэшей электронной подписи, что почти невозможно,<ref>даже при слабом ключе это очень долго, весьма дорого и при длине асимметричного ключа более 1024 бит пока не реализуемо, ведущие криптоаналитики гарантируют это</ref> а к банальной подмене, что вполне реализуемо — было бы сильное желание. Такая атака называется {{Acronym|Man-in-the-middle|Человек посередине}}.
 
Допустим, существует третья заинтересованная сторона, которая предоставит вам свой ключ вместо ключа вашего корреспондента, а ему в свою очередь такой же фиктивный свой ключ вместо вашего. Тогда эта третья сторона сможет расшифровать ваше сообщение, подменить его тем же самым исходным текстом, только зашифрованным настоящим публичным ключом вашего корреспондента, и переслать ему. Он же, обладая вашим фиктивным ключом (который ему заботливо подсунули), шифрует для вас ответ, также достающийся третьей стороне, которая преспокойно добывает исходный текст и шифрует его вашим настоящим ключом. В результате хитрых манипуляций окажется, что вся сложность перехвата сводится не к криптоанализу и созданию идентичных хэшей электронной подписи, что почти невозможно,<ref>даже при слабом ключе это очень долго, весьма дорого и при длине асимметричного ключа более 1024 бит пока не реализуемо, ведущие криптоаналитики гарантируют это</ref> а к банальной подмене, что вполне реализуемо — было бы сильное желание. Такая атака называется {{Acronym|Man-in-the-middle|Человек посередине}}.
Строка 148: Строка 152:
  
 
Алгоритмы симметричного и асимметричного шифрования, а также ЭЦП реализованы в программном обеспечении [[PGP]].
 
Алгоритмы симметричного и асимметричного шифрования, а также ЭЦП реализованы в программном обеспечении [[PGP]].
 
{{Include|Примеры программных реализаций шифров‎|Примеры программных реализаций шифров‎}}
 
  
 
== Квантовая криптография ==
 
== Квантовая криптография ==
 
Это новое направление в криптографии, основанное не на математических методах, как обычная, а на принципах квантовой механики.
 
Это новое направление в криптографии, основанное не на математических методах, как обычная, а на принципах квантовой механики.
 
{{Плашка
 
  |title=Осторожно, квантовая механика!
 
  |text=Этот раздел содержит зашкаливающее количество квантовой механики. Если вы не доктор наук, вы вряд ли поймёте то, что здесь написано. Если вы доктор наук, можете помочь проекту, <span class="plainlinks">[http://urbanculture.in{{localurl:{{NAMESPACE}}:{{PAGENAME}}|action=edit}} добавив]</span> сюда ещё больше квантовой механики
 
  |textcolor=
 
  |bordercolor=
 
  |imgwidth=90
 
  |width=70%
 
}}
 
  
 
=== Основы квантовых вычислений ===
 
=== Основы квантовых вычислений ===
 
В обычном компьютере информация хранится в виде битов, такое двоичное представление упрощает большинство внутренних преобразований, которые компьютер должен выполнить перед началом вычислений. Так, например, число 15 будет храниться в виде 1111, а число 10 как 1010. Так как любое число X может быть представлено с помощью приблизительно <math>\log_{2} X</math> цифр, то для хранения всех возможных чисел от 0 до X потребуется X ячеек памяти, длиной <math>\log_{2} X</math> бит каждая. Скажем, для хранения всех чисел от 0 до 15 потребуется 15 ячеек памяти, каждая длиной 4 бит, квантовому же компьютеру достаточно всего одной ячейки на 4 квантовых бита.
 
В обычном компьютере информация хранится в виде битов, такое двоичное представление упрощает большинство внутренних преобразований, которые компьютер должен выполнить перед началом вычислений. Так, например, число 15 будет храниться в виде 1111, а число 10 как 1010. Так как любое число X может быть представлено с помощью приблизительно <math>\log_{2} X</math> цифр, то для хранения всех возможных чисел от 0 до X потребуется X ячеек памяти, длиной <math>\log_{2} X</math> бит каждая. Скажем, для хранения всех чисел от 0 до 15 потребуется 15 ячеек памяти, каждая длиной 4 бит, квантовому же компьютеру достаточно всего одной ячейки на 4 квантовых бита.
 +
<br />
 +
Квантовый бит, или кубит, основан на фундаментальном понятии о суперпозиции квантовых состояний. Рассмотрим парадокс кошки Шрёдингера. Поместим кошку в ящик со стабильным радиоактивным источником. Кошка погибнет, если подвергнется воздействию излучения. Фактически кошка либо мертва, либо жива, независимо от того, посмотрим ли мы в ящик или нет, но согласно квантовой механике она одновременно и жива, и мертва, кошка существует в суперпозиции из мертвого и живого состояний. До тех пор пока мы не заглянем внутрь ящика, мы должны рассматривать кошку как как существующую в некоей трансцендентной неопределённости. Мы можем лишь утверждать, что есть определённая вероятность, что кошка жива, и определённая вероятность что она мертва. Это называется амплитудой вероятности.
 +
<br />
 +
Этот парадокс можно использовать для того, чтобы дать понятие о кубите. Кубит — это кошка. Если кошка мертва, то это состояние обозначается как 0, а если жива, то 1. Так как кошка ни жива, ни мертва, то она находится одновременно в двух этих состояниях. В этом смысле два числа (0 и 1) означают использование только одного кубита. В классическом виде это изображается двумя битами, один символизирует смерть (0), а второй — жизнь(1).
 +
<br />
 +
Квантовый компьютер манипулирует кубитами таким образом, что вероятность измерения верного исхода возрастает в процессе вычислений. Информация должна храниться в некоем квантовом состоянии, которое изолировано от окружающей среды. Наилучший вариант на сегодня это использование ядерного спина — квантового аналога момента вращения волчка, способного хранить информацию около секунды.
 +
<br />
 +
Квантовая когерентность — это мера степени взаимодействия между компьютером и окружающей средой. Ядерный спин может находиться в одном из многих квантовых состояний, информация о которых просачивается наружу если они взаимодействуют с окружающей средой. Квантовые состояния теряют частоту, и как следствие, теряют способность интерферировать. Интерференционные картины содержат относительную информацию о конфигурации квантовых битов, и именно по этому они являются основой большинства теорий квантовых вычислений.
  
Квантовый бит, или кубит, основан на фундаментальном понятии о суперпозиции квантовых состояний. Рассмотрим парадокс кошки Шрёдингера. Поместим кошку в ящик со стабильным радиоактивным источником. Кошка погибнет, если подвергнется воздействию излучения. Фактически кошка либо мертва, либо жива, независимо от того, посмотрим ли мы в ящик или нет, но согласно квантовой механике она одновременно и жива, и мертва, кошка существует в суперпозиции из мертвого и живого состояний. До тех пор пока мы не заглянем внутрь ящика, мы должны рассматривать кошку как существующую в трансцендентной неопределённости. Мы можем лишь утверждать, что есть определённая вероятность, что кошка жива, и определённая вероятность, что она мертва. Это называется амплитудой вероятности.
+
=== Крипография ===
 
+
Этот парадокс можно использовать для того, чтобы дать понятие о кубите. Кубит — это кошка. Если кошка мертва, то это состояние обозначается как 0, а если жива, то 1. Так как кошка ни жива, ни мертва, то она находится одновременно в двух этих состояниях. В этом смысле два числа (0 и 1) означают использование только одного кубита. В классическом виде это изображается двумя битами, один символизирует смерть (0), а второй — жизнь (1).
+
 
+
Квантовый компьютер манипулирует кубитами таким образом, что вероятность измерения верного исхода возрастает в процессе вычислений. Информация должна храниться в квантовом состоянии, которое изолировано от окружающей среды. Наилучший вариант на сегодня это использование ядерного спина — квантового аналога момента вращения волчка, способного хранить информацию около секунды.
+
 
+
Квантовая когерентность — это мера взаимодействия между компьютером и окружающей средой. Ядерный спин может находиться в одном из многих квантовых состояний, информация о которых просачивается наружу, если они взаимодействуют с окружающей средой. Квантовые состояния теряют частоту, и как следствие, теряют способность интерферировать. Интерференционные картины содержат относительную информацию о конфигурации квантовых битов, и именно поэтому они являются основой большинства теорий квантовых вычислений.
+
 
+
=== Криптография ===
+
 
Одно из направлений квантовой криптографии заключается в передаче информации с использованием состояний, которые защищены от перехвата и подслушивания благодаря физическим законам. Описание различных методов квантовой криптографии есть в статье Доминика Майерс и Эндрю Яо «Безусловная стойкость в квантовой криптографии» <ref>[http://arxiv.org/abs/quant-ph/9802025 Unconditional Security in Quantum Cryptography]</ref>
 
Одно из направлений квантовой криптографии заключается в передаче информации с использованием состояний, которые защищены от перехвата и подслушивания благодаря физическим законам. Описание различных методов квантовой криптографии есть в статье Доминика Майерс и Эндрю Яо «Безусловная стойкость в квантовой криптографии» <ref>[http://arxiv.org/abs/quant-ph/9802025 Unconditional Security in Quantum Cryptography]</ref>
  
Строка 181: Строка 174:
 
Пусть Алиса — отправитель, а Боб — адресат. Алиса может посылать фотоны с одной из четырёх возможных поляризаций: 0, 45, 90 или 135°. Поляризация означает, что электромагнитное поле фотона ориентировано в определённом направлении, согласно квантовой механике, детектор может распознавать фотоны с поляризацией 0 и 90° или 45 и 135°. Так как эти состояния неизменны, невозможно распознать оба типа одновременно.
 
Пусть Алиса — отправитель, а Боб — адресат. Алиса может посылать фотоны с одной из четырёх возможных поляризаций: 0, 45, 90 или 135°. Поляризация означает, что электромагнитное поле фотона ориентировано в определённом направлении, согласно квантовой механике, детектор может распознавать фотоны с поляризацией 0 и 90° или 45 и 135°. Так как эти состояния неизменны, невозможно распознать оба типа одновременно.
  
Чтобы договориться о ключе, Алиса передаёт серию фотонов со случайно выбранной поляризацией. Для каждого из фотонов Боб произвольно выбирает вид измерения (0-90° или 45°-135°), а затем записывает результат, сообщает Алисе о том порядке, в котором он производил измерения, а та говорит ему, какие измерения были верными. Для всех измерений Алиса и Боб выписывают ряд единиц и нулей в зависимости от того, был ли посланный сигнал 0 и 90° или 45 и 135°. Этот ряд цифр в дальнейшем и используется как ключ. Так как, согласно квантовой механике, невозможно наблюдать какое-либо состояние, не изменив его и не поменяв поляризацию, любой, кто захочет перехватить сообщение, изменит и переданные фотоны, после чего у Алисы с Бобом уже не будет одинакового ключа. Открыто обсудив случайно выбранное подмножество цифр ключа, Алиса и Боб могут проверить, не перехватывают ли их сообщения. Убедившись, что всё в порядке, они могут продолжить передавать информацию, зашифрованную этим ключом.
+
Чтобы договориться о ключе, Алиса передаёт серию фотонов со случайно выбранной поляризацией. Для каждого из фотонов Боб произвольно выбирает вид измерения (0-90° или 45°-135°), а затем записывает результат, сообщает Алисе о том порядке, в котором он производил измерения, а та говорит ему, какие измерения были верными. Для всех измерений Алиса и Боб выписывают ряд единиц и нулей, в зависимости от того, был ли посланный сигнал 0 и 90° или 45 и 135°. Этот ряд цифр в дальнейшем и используется как ключ. Так как, согласно квантовой механике, невозможно наблюдать какое-либо состояние, не изменив его и не поменяв поляризацию, любой, кто захочет перехватить сообщение, изменит и переданные фотоны, после чего у Алисы с Бобом уже не будет одинакового ключа. Открыто обсудив случайно выбранное подмножество цифр ключа, Алиса и Боб могут проверить, не перехватывают ли их сообщения. Убедившись, что всё в порядке, они могут продолжить передавать информацию, зашифрованную этим ключом.
  
 
=== Криптоанализ ===
 
=== Криптоанализ ===
В процессе поиска новых криптометодов в области квантовой криптографии открылись новые возможности. Так, например, с её помощью можно за обозримое время [[:w:Факторизация целых чисел|найти простые делители]] большого числа, что делает несостоятельной криптосистему RSA. К счастью, неизвестен подобный алгоритм классической информатики. На текущий момент одним из самых быстрых классических компьютерных алгоритмов разложения числа на множители является ''решето числового поля''. Им можно произвести разложение числа из X цифр на множители за время, экспоненциально растущее как X в степени 1/3, в то время как последние квантовые алгоритмы теоретически позволяют разлагать числа на множители за время, пропорциональное X², проще говоря, квантовый компьютер, выполняющий всего 100 вычислений в секунду (что очень мало) разложил бы на множители число из 100 цифр примерно за 2-3 минуты, в то время как сегодня самое большое число, когда-либо разложенное на множители, имеет 155 знаков, а само разложение потребовало совместной работы 292 компьютеров в течение семи месяцев.
+
В процессе поиска новых криптометодов в области квантовой криптографии открылись новые возможности. Так, например, с её помощью можно найти алгоритм, с помощью которого определить, что число является простым так же легко, как и проверить, верно ли перемножены два сомножителя для получения как раз этого числа, что делает несостоятельным зашифровывание сообщений путём умножения больших простых чисел. К счастью, такой алгоритм пока что не найден. На текущий момент одним из самых быстрых классических компьютерных алгоритмов разложения числа на множители, называемый ''решетом числового поля''. Им можно произвести разложение числа из X цифр на множители, за время, экспоненциально растущее как X в степени 1/3, в то время как последние квантовые алгоритмы теоретически позволяют разлагать числа на множители за время, пропорциональное X², проще говоря, квантовый компьютер, выполняющий всего 100 вычислений в секунду(что очень мало) разложил бы на множители число из 100 цифр примерно за 2-3 минуты, в то время как сегодня самое большое число, когда-либо разложенное на множители, имеет 155 знаков, а само разложение потребовало совместной работы 292 компьютеров в течение семи месяцев.
  
 
== См. также ==
 
== См. также ==

Обратите внимание, что все добавления и изменения текста статьи рассматриваются как выпущенные на условиях лицензии WTFPL public license (см. Urbanculture:Авторские права). Если вы не хотите, чтобы ваши тексты свободно распространялись и редактировались любым желающим, не помещайте их сюда.
Вы также подтверждаете, что являетесь автором вносимых дополнений или скопировали их из источника, допускающего свободное распространение и изменение своего содержимого.
НЕ РАЗМЕЩАЙТЕ БЕЗ РАЗРЕШЕНИЯ МАТЕРИАЛЫ, ОХРАНЯЕМЫЕ АВТОРСКИМ ПРАВОМ!

Чтобы отредактировать эту страницу, пожалуйста, решите простой пример и введите ответ в текстовое поле (подробнее):

Отменить | Справка по редактированию  (в новом окне)