![]() |
|
сделать стартовой | добавить в избранное |
![]() |
Компьютеры, Программирование
Программное обеспечение
Введение в криптографию |
Предисловие Базовая терминология Основные алгоритмы шифрования Цифровые подписи Криптографические хэш-функции Криптографические генераторы случайных чисел Обеспечиваемая шифром степень защиты Криптоанализ и атаки на криптосистемы Предисловие Разные люди понимают под шифрованием разные вещи. Дети играют в игрушечные шифры и секретные языки. Это, однако, не имеет ничего общего с настоящей криптографией. Настоящая криптография (s ro g cryp ography) должна обеспечивать такой уровень секретности, чтобы можно было надежно защитить критическую информацию от расшифровки крупными организациями --- такими как мафия, транснациональные корпорации и крупные государства. Настоящая криптография в прошлом использовалась лишь в военных целях. Однако сейчас, с становлением информационного общества, она становится центральным инструментом для обеспечения конфиденциальности. По мере образования информационного общества, крупным государствам становятся доступны технологические средства тотального надзора за миллионами людей. Поэтому криптография становится одним из основных инструментов обеспечивающих конфиденциальность, доверие, авторизацию, электронные платежи, корпоративную безопасность и бесчисленное множество других важных вещей. Криптография не является более придумкой военных, с которой не стоит связываться. Настала пора снять с криптографии покровы таинственности и использовать все ее возможности на пользу современному обществу. Широкое распространение криптографии является одним из немногих способов защитить человека от ситуации, когда он вдруг обнаруживает, что живет в тоталитарном государстве, которое может контролировать каждый его шаг. Базовая терминология Представьте, что вам надо отправить сообщение адресату. Вы хотите, чтобы никто кроме адресата не смог прочитать отправленную информацию. Однако всегда есть вероятность, что кто-либо вскроет конверт или перехватит электронное послание. В криптографической терминологии исходное послание именуют открытым текстом (plai ex или clear ex ). Изменение исходного текста так, чтобы скрыть от прочих его содержание, называют шифрованием (e cryp io ). Зашифрованное сообщение называют шифротекстом (cipher ex ). Процесс, при котором из шифротекста извлекается открытый текст называют дешифровкой (decryp io ). Обычно в процессе шифровки и дешифровки используется некий ключ (key) и алгоритм обеспечивает, что дешифрование можно сделать лишь зная этот ключ. Криптография --- это наука о том, как обеспечить секретность сообщения. Криптоанализ --- это наука о том, как вскрыть шифрованное сообщение, то есть как извлечь открытый текст не зная ключа. Криптографией занимаются криптографы, а криптоанализом занимаются криптоаналитики. Криптография покрывает все практические аспекты секретного обмена сообщениями, включая аутенфикацию, цифровые подписи, электронные деньги и многое другое. Криптология --- это раздел математики, изучающий математические основы криптографических методов. Основные алгоритмы шифрования Метод шифровки/дешифровки называют шифром (cipher). Некоторые алгоритмы шифрования основаны на том, что сам метод шифрования (алгоритм) является секретным.
Ныне такие методы представляют лишь исторический интерес и не имеют практического значения. Все современные алгоритмы используют ключ для управления шифровкой и дешифровкой; сообщение может быть успешно дешифровано только если известен ключ. Ключ, используемый для дешифровки может не совпадать с ключом, используемым для шифрования, однако в большинстве алгоритмов ключи совпадают. Алгоритмы с использованием ключа делятся на два класса: симметричные (или алгоритмы секретным ключом) и асиметричные (или алгоритмы с открытым ключом). Разница в том, что симметричные алгоритмы используют один и тот же ключ для шифрования и для дешифрования (или же ключ для дешифровки просто вычисляется по ключу шифровки). В то время как асимметричные алгоритмы используют разные ключи, и ключ для дешифровки не может быть вычислен по ключу шифровки. Смметричные алгоритмы подразделяют на потоковые шифры и блочные шифры. Потоковые позволяют шифровать информацию побитово, в то время как блочные работают с некоторым набором бит данных (обычно размер блока составляет 64 бита) и шифруют этот набор как единое целое. Начальное представление о них можно получить в статье об алгоритмах. Ассиметричные шифры (также именуемые алгоритмами с открытым ключом, или --- в более общем плане --- криптографией с открытым ключом) допускают, чтобы открытый ключ был доступн всем (скажем, опубликован в газете). Это позволяет любому зашифровать сообщение. Однако расшифровать это сообщение сможет только нужный человек (тот, кто владеет ключом дешифровки). Ключ для шифрования называют открытым ключом, а ключ для дешифрования --- закрытым ключом или секретным ключом. Современные алгоритмы шифровки/дешифровки достаточно сложны и их невозможно проводить вручную. Настоящие криптографические алгоритмы разработаны для использования компьютерами или специальными аппаратными устройствами. В большинстве приложений криптография производится программным обеспечением и имеется множество доступных криптографических пакетов. Вообще говоря, симметричные алгоритмы работают быстрее, чем ассиметричные. На практке оба типа алгоритмов часто используются вместе: алгоритм с открытым ключом используется для того, чтобы передать случайным образом сгенерированный секретный ключ, который затем используется для дешифровки сообщения. Многие качественные криптографические алгоритмы доступны широко - в книжном магазине, библиотеке, патентном бюро или в Интернет. К широко известным симметричным алгоритмам относятся DES и IDEA, Наверное самым лучшим асимметричным алгоритмом является RSA. На страничке литературы приведен список хороших учебников по криптографии и смежным вопросам. Цифровые подписи Некоторые из асимметричных алгоритмов могут использоваться для генерирования цифровой подписи. Цифровой подписью называют блок данных, сгенерированный с использованием некоторого секретного ключа. При этом с помощью открытого ключа можно проверить, что данные были действительно сгенерированы с помощью этого секретного ключа. Алгоритм генерации цифровой подписи должен обеспечивать, чтобы было невозможно без секретного ключа создать подпись, которая при проверке окажется правильной.
Цифровые подписи используются для того, чтобы подтвердить, что сообщение пришло действительно от данного отправителя (в предположении, что лишь отправитель обладает секретным ключом, соответствующим его открытому ключу). Также подписи используются для проставления штампа времени ( imes amp) на документах: сторона, которой мы доверяем, подписывает документ со штампом времени с помошью своего секретного ключа и, таким образом, подтверждает, что документ уже существовал в момент, объявленный в штампе времени. Цифровые подписи также можно использовать для удостоверения (сертификации --- o cer ify) того, что документ принадлежит определенному лицу. Это делается так: открытый ключ и информация о том, кому он принадлежит подписываются стороной, которой доверяем. При этом доверять подписывающей стороне мы можем на основании того, что ее ключ был подписан третьей стороной. Таким образом возникает иерархия доверия. Очевидно, что некоторый ключ должен быть корнем иерархии (то есть ему мы доверяем не потому, что он кем-то подписан, а потому, что мы верим a-priori, что ему можно доверять). В централизованной инфраструктуре ключей имеется очень небольшое количество корневых ключей сети (например, облеченные полномочиями государственные агенства; их также называют сертификационными агенствами --- cer ifica io au hori ies). В распределенной инфраструктуре нет необходимости иметь универсальные для всех корневые ключи, и каждая из сторон может доверять своему набору корневых ключей (скажем своему собственному ключу и ключам, ею подписанным). Эта концепция носит название сети доверия (web of rus ) и реализована, например, в PGP. Цифровая подпись документа обычно создается так: из документа генерируется так называемый дайджест (message diges ) и к нему добавляется информация о том, кто подписывает документ, штамп времени и прочее. Получившаяся строка далее зашифровывается секретным ключом подписывающего с использованием того или иного алгоритма. Получившийся зашифрованный набор бит и представляет собой подпись. К подписи обычно прикладывается открытый ключ подписывающего. Получатель сначала решает для себя доверяет ли он тому, что открытый ключ принадлежит именно тому, кому должен принадлежать (с помощью сети доверия или априорного знания), и затем дешифрует подпись с помощью открытого ключа. Если подпись нормально дешифровалась, и ее содержимое соответствует документу (дайджест и др.), то сообщение считается подтвержденным. Свободно доступны несколько методов создания и проверки цифровых подписей. Наиболее известным является алгоритм RSA. Криптографические хэш-функции Криптографические хэш-функции используются обычно для генерации дайджеста сообщения при создании цифровой подписи. Хэш-функции отображают сообщение в имеющее фиксированный размер хэш-значение (hash value) таким образом, что все множество возможных сообщений распределяется равномерно по множеству хэш-значений. При этом криптографическая хэш-функция делает это таким образом, что практически невозможно подогнать документ к заданному хэш-значению. Криптографические хэш-функции обычно производят значения длиной в 128 и более бит.
Айзатулин Т А Теория России (Геоподоснова и моделирование) Айзатулин Т.А. ТЕОРИЯ РОССИИ ГЕОПОДОСНОВА И МОДЕЛИРОВАНИЕ ОГЛАВЛЕНИЕ Предисловие автора Введение. Особенная стать и формула России Этническое и анатомическое недоразумение? Глава 1. Россиеведение и геоподоснова Самая известная страна Активность, пассионарность и страстное состояние Глава 2. Геоподоснова пассионарности и культурогенез Геодезия и биогеохимия системы осей зон пассионарных толчков Геодинамика и система осей ЗПТ Дантева геокосмология (по Борхесу) Зодиакальная "периодизация" культурогенеза (по идеям А.Зелинского) Вифлеемский цикл в кеплеровском геокосмизме (по А.Зелинскому) - русская звезда Глава 3. Русский этногенез Восточные славяне и номады Выводы из татарского цикла Заключение Предисловие автора В первую очередь автор хочет поблагодарить своих коллег и фактических соавторов С.Г Кара-Мурзу и И.А.Тугаринова, мысли и материалы которых с их разрешения были обильно использованы в этой книге. Автор у работы значится один только потому, что всю ответственность за текст в целом и все интерпретации он берет на себя
1. Программная реализация алгоритма Дейкстры (построение цепей минимальной длины)
2. Программная реализация предметной области "Ремонт часов"
3. Проектирование и программная реализация интернет-магазина
4. Принцип программного управления. Микропроцессор. Алгоритм работы процессора
5. Некоторые алгоритмы реализации UPSCALING
9. Лисп-реализация алгоритма кодирования информации RSA
10. Реализация алгоритма обратной трассировки лучей для моделей с большим числом полигонов
11. Программно-аппаратная реализация аппаратов электростимуляции
12. Введение в специальность («комплексная реконструкция и эксплуатация зданий и сооружений»)
13. Разработка алгоритмов контроля и диагностики системы управления ориентацией космического аппарата
15. Великобритания (расширенный вариант реферата 9490)
16. Введение в теплоэнергетику Дальнего Востока
17. Кредитная политика государства и механизм ее реализации в условиях рынка
18. Экономическая сказка-реферат "НДС - вражья морда" или просто "Сказка про НДС"
20. "Военный коммунизм" - вынужденная политика или программный идеал большевизма
21. Введение «Временного положения» 1867-1868 гг. и политико-правовые последствия для казахов
26. Право граждан на отпуск и гарантия его реализации
28. Деятельность комитетов по делам молодежи по реализации досуговых интересов подростков и молодежи
29. Введение в языкознание/лингвистику
30. Лекции по курсу "Введение в языкознание"
31. Реферат перевода с английского языка из книги “A History of England” by Keith Feiling
32. Реферат по книге Фернана Броделя
33. Программные средства и приёмы работы на компьютере
34. Разработка АИС по учету складских операций и реализации продукции на предприятии
35. Программные средства интернет
36. Управление потоками данных в параллельных алгоритмах вычислительной линейной алгебры
41. Программатор ПЗУ /программный интерфейс/
42. Технология разработки программного обеспечения
44. Реализация языкового процессора оператора FOR языка BASIC
45. Структура и реализация макроязыков
48. Разработка программного обеспечения решения нелинейных уравнений
49. VB, MS Access, VC++, Delphi, Builder C++ принципы(технология), алгоритмы программирования
50. Диплом Программная система "Аттестации ИТ-специалистов"
51. Автоматизированная обработка учета складских операций и реализации продукции
52. Криптология: подстановочно-перестановочный шифр и его применение
53. Разработка системы задач (алгоритмы-программы) по дискретной математике
57. Программное обеспечение удалённого доступа к технической документации
58. Вирусы и антивирусное программное обеспечение
59. Программное обеспечение персональных компьютеров
60. Сравнительный анализ каскадной и спиральной моделей разработки программного обеспечения
61. Вопросы к дисциплине: Стандартизация и проектирование программных средств (СППС)
62. Современные программные средства электронного документооборота
64. Алгоритм компактного хранения и решения СЛАУ высокого порядка
65. Алгоритмы и протоколы маршрутизации
68. Права подозреваемого и гарантии их реализации в уголовном процессе
69. Использование алгоритмов при изучении орфографии в начальных классах
73. Психология труда (Обзорный реферат по психологии труда)
74. Логические системы в различных функциональных наборах и их реализация
76. Методы и алгоритмы компоновки, размещения и трассировки печатных плат
77. Несколько рефератов по Исламу
79. Введение основных понятий в оптику
80. Введение в теплоэнергетику Дальнего Востока
81. "Камю", "Сартр", "Шопенгауэр", "Ясперс", "Фромм" (Рефераты, доклады по философии)
82. Реферат по статье П. Вайнгартнера «Сходство и различие между научной и религиозной верой»
83. Учет финансового результата от реализации по оплате
85. Учёт и реализация готовой продукции
89. Разработка и реализация стратегии маркетинга монитора Panasonic
90. Реализация сетевых компьютерных технологий в системе международного маркетинга
91. Реферат по информационным системам управления
93. Современные проблемы подбора персонала и механизм их реализации
95. Расчет себестоимости и цены программного продукта по учету прерываний на языке Ассемблер
96. Анализ производства и реализации продукции
97. Технико-экономическое обоснование организации производства и реализации кваса в Могилевской области
98. Затраты на производство и реализацию, источники финансирования, пути снижения
99. Генезис капитализма в Мексике. Реферат по истории экономики
100. Глобализация, современные международные финансы, включая последствия введения евро