Открыть Электронные книги
Категории
Открыть Аудиокниги
Категории
Открыть Журналы
Категории
Открыть Документы
Категории
КРИПТОГРАФИЯ
ЗАНИМАТЕЛЬНАЯ ИНФОРМАТИКА
Митани Масааки
Сато Синъити
Хиноки Идэро
КРИПТОГРАФИЯ
КРИПТОГРАФИЯ
Из музея искусств один за другим дерзко кра-
дут ценные произведения, а преступник каждый
раз оставляет зашифрованные сообщения. Про-
ницательный инспектор Мэгуро, его сестра - ма-
тематик Рика, и эрудированная журналистка
Ёнэда Рио бросают вызов дерзкому похитите-
лю, но для этого им требуется разгадать за-
гадку шифра.
Книга познакомит читателя с общими понятиями
криптологии и лежащими в её основе интересны-
ми математическими закономерностями, а также
с тем, как криптография используется в нашей
повседневной жизни.
Митани Масааки, Сато Синъити
Хиноки Идэро
Verte Corp.
ISBN 978-5-97060-603-2
Интернет-магазин: www.dmkpress.com
Книга-почтой: orders@alians-kniga.ru
Оптовая продажа: “Альянс-книга“.
(499)782-3889. books@alians-kniga.ru www.дмк.рф 9 785970 606032
Занимательная информатика
Криптография
Манга
マンガでわかる
暗号
三谷 政昭・佐藤 伸一/共著
ひのき いでろう/作画
ウェルテ/制作
マЗン
ОБРА О ВガАで
Т Еわ
Л ЬかНる
АЯ МАНГА
暗
号
ЗАНИМАТЕЛЬНАЯ ИНФОРМАТИКА
КРИПТОГРАФИЯ
三谷 政昭・佐藤 伸一/共著
ひのき いでろう/作画
Митани Масааки, Сато Синъити
ウェルテ/制作
Хиноки Идэро
Перевод
А. Б. Клионского,
Научный редактор
Д. М. Белявский
Москва
ДМК Пресс, 2019
УДК 003.26
ББК 32.81
М66
.
УДК 003.26
ББК 32.81
ISBN 978-4-274-06674-0 (яп.) Copyright © 2007 by Mitani Masaaki, Sato Shinichi and Verte Corp.
ISBN 978-5-97060-603-2 (рус.) © Издание, перевод ДМК Пресс, 2019
Предисловие
Развитие информационного общества, ядром которого является сеть ин-
тернет, сделало нашу жизнь очень удобной, позволив свободно получать
информацию, публикуемую на веб-сайтах, общаться по электронной почте,
пользоваться услугами интернет-магазинов и интернет-банкинга.
Но, наслаждаясь этими удобствами, нам всем почему-то часто приходит-
ся слышать вызывающие некоторое беспокойство слова: «информационная
безопасность», «защита личной информации» и, наконец, «шифрование».
В чём же заключается проблема?
Дело в том, что пользоваться сетью – значит обмениваться по ней разно-
образной информацией, в том числе и конфиденциальной, то есть такой,
которую требуется держать в секрете. К ней относятся, например, номера
кредитной карты и банковского счета, история болезни и кредитная исто-
рия, адрес электронной почты и т. п. Попав в руки злоумышленников, та-
кие сведения могут быть использованы для совершения различных престу-
плений, поэтому защита информации, несомненно, является главной зада-
чей в области сетевых технологий. Основой для построения безопасных си-
стем, предоставляющих разнообразные сетевые услуги с надёжной аутен-
тификацией (установлением подлинности) данных, защитой от спуфинга
(злонамеренных действий под видом законных пользователей), перехвата
информации и фальсификации данных является шифрование.
За последние годы в развитии криптографии※ произошёл огромный ска-
чок: она перестала быть уделом только специалистов по информационной
безопасности и прочно вошла в жизнь обычных людей, пользующихся ус-
лугами информационных сетей.
Каким же образом шифрование обеспечивает информационную безопас-
ность и защиту личной информации?
В этой книге на основе манги описываются механизмы шифрования и
его роль в нашей жизни. Объяснения сложных математических понятий,
без которых понимание криптологии невозможно, даются в легком для по-
нимания виде, поэтому вы сможете освоить их без особого напряжения,
просто следя за развитием сюжета. В самом повествовании, конечно же, то-
же заложен шифр, разгадав который, читатель получит дополнительное
удовольствие. Надеюсь, что эта книга поможет вам овладеть базовыми зна-
ниями в области криптологии※ и информационной безопасности.
В завершение хотим поблагодарить коллектив Отдела разработок изда-
тельства Ohmsha и художника Хиноки Идэро, рисовавшего мангу.
Глава
2 安全な暗号 37
ОДНОКЛЮЧЕВОЙ ШИФР..................................................45
第 2 章 共通鍵暗号化技術
2-1 Двоичные числа и сложение по модулю 45
2.............46
2-2 Что такое 2 ー одноключевой
1 2 進数と排他的論理和 шифр?...........................57
46
• Особенности
2 ーодноключевого
2 共通鍵暗号とは шифра................................................
57 62
共通鍵暗号の特徴
2-3 Устройство потокового шифра.............................63 62
2 ー 3 ストリーム暗号の仕組み 63
2-4 Устройство блочного шифра...............................66
2 ー 4 ブロック暗号の仕組み 66
• Режим сцепления блоков шифртекста (CBC).................................. 69
CBC モード 69
2-5
Устройство
шифра
2 ー 5 DES 暗号の仕組み
DES.....................................70
70
• Основы
строения
сети
Feistel Фейстеля..........................................................71
型暗号の基本構成 71
• Инволюция.
................................................................................................
インボリューション 72 72
VI СОДЕРЖАНИЕ
Ⅵ
• Генерирование ключей шифрования DES....................................... 75
• Устройство нелинейной функции f шифра DES............................ 76
• Обобщённая модель шифрования и расшифрования DES.......... 77
2-6 Шифры 3-DES и AES......................................78
DES の暗号化鍵生成 75
• Общие сведения о шифре AES............................................................ 83
DES の非線形関数 の仕組み
f 76
Пример использования упрощённого DES.....................87
DES による暗号化と復号の基本構成 77
• Преобразование
в двоичные данные.................................................
2 ー 6 3−DES 暗号と AES 暗号 78
87
• Генерирование
шифртекста
AES 暗号の概要 DES........................................................
83 87
• Расшифрование
簡易版шифртекста DES.......................................................
DES による暗号化と復号の実際 87 95
• Генерирование
2 進数データへの変換
ключей
шифрования
DES. 87
.................................... 100
DES 暗号文の生成
• Генерирование ключей расшифрования DES. ..............................
87
104
DES 暗号文の復号 95
DES 暗号化鍵の生成 100
Глава
3 DES 復号鍵の生成 104
ШИФР С ОТКРЫТЫМ КЛЮЧОМ............................... 107
3-1 Основы шифра с открытым ключом..................... 108
第 3 章 公開鍵暗号化技術 107
• Основные разновидности шифра с открытым ключом.............. 117
3 ー 1 公開鍵暗号の基本 108
• Односторонние функции...................................................................... 118
公開鍵暗号方式の主な種類 117
• Рождение
шифра RSA............................................................................
一方向性関数 118 121
3-2
Простые
числа RSA и 暗号の誕生
факторизация.........................
121 122
• Тест на простоту. .....................................................................................
3 ー 2 素数と素因数分解 122 131
3-3
Модульная
арифметика...................................
素数判定 131 136
• Сложение по ー
3 3 モジュロ演算
модулю и вычитание по модулю. 136 139
.........................
モジュロ演算の足し算と引き算 139
• Умножение по модулю и деление по модулю........................... 148
モジュロ演算の掛け算と割り算 148
3-4 Малая теорема Ферма и теорема Эйлера............... 154
3 ー 4 フェルマーの小定理とオイラーの定理 154
• Ферма
– отец
теории чисел.
数論の父フェルマー . ...............................................................
155 155
• Тест Ферма и псевдопростые
フェルマー法と擬素数 числа.
...............................................
157 157
• Теорема
Эйлера.
.....................................................................................
オイラーの定理 158 158
数学者オイラー 159
• Математик Эйлер................................................................................... 159
2 つの素数の積のオイラー関数 160
• Функция Эйлера от произведения двух простых чисел............ 160
3 ー 5 RSA 暗号の仕組み 163
3-5 Устройство шифра RSA................................... 163
RSA 暗号の暗号化と復号 165
• Шифрование
и расшифрование
RSA 暗号の鍵の生成法 RSA...............................................
167 165
• Метод
генерирования
ключей RSA..................................................
公開鍵と秘密鍵の作り方 169 167
Ⅶ СОДЕРЖАНИЕ VII
• Генерирование открытого и секретного ключей........................ 169
• Генерирование шифртекста RSA....................................................... 171
• Расшифрование RSA............................................................................. 173
3-6 Шифр с открытым ключом и задача дискретного
логарифмирования.
.............................................
RSA 暗号文の生成 171 175
• Задача дискретного логарифмирования........................................
RSA 暗号文の復号 173 176
3 ーи
• Шифрование 6 公開鍵暗号と離散対数問題
расшифрование Эль-Гамаля. ................................
175 178
Расширенный 離散対数問題
алгоритм
Евклида.............................. 176 183
ElGamal 暗号の暗号化と復号 178
Глава 4
コラム 拡張ユークリッド互除法 183
КАК ИСПОЛЬЗУЮТ ШИФР НА ПРАКТИКЕ?....... 187
4-1 Гибридные криптосистемы............................... 188
第 4 章 実際に暗号を使うには 187
4-2 Хеш-функция и код аутентификации сообщения..... 192
4 ー 1 ハイブリッド暗号 188
• Подмена данных.................................................................................... 192
4 ー 2 ハッシュ関数とメッセージ認証コード 192
• Защита от подмены............................................................................... 194
改ざん 192
• Хеш-функция...........................................................................................
改ざんの対策 194 195
• Спуфинг.
....................................................................................................
ハッシュ関数 195 196
• Защита
от
спуфинга..............................................................................
なりすまし 196 197
• Устройство
なりすましの対策
имитовставки. 197
................................................................... 198
メッセージ認証コードの仕組み 198
• Отказ........................................................................................................... 199
否認とは 199
• Два недостатка имитовставки............................................................ 201
メッセージ認証コードの 2 つの欠点 201
4-3
Цифровая
подпись........................................
4 ー 3 ディジタル署名 202 202
• Защита
от
отказа. ....................................................................................202
否認の対策 202
• Устройство
цифровой подписи........................................................203
ディジタル署名の仕組み 203
• Атака
посредника. 中間者攻撃 205
..................................................................................205
中間者攻撃の対策 206
• Защита от атаки посредника..............................................................206
証明書と認証局 206
• Сертификат и удостоверяющий центр............................................206
4 ー 4 公開鍵暗号基盤(PKI) 208
4-4
Инфраструктура
открытых ключей (ИОК)............... 208
Доказательство
с нулевым разглашением...................
コラム ゼロ知識対話証明 219 219
Разъяснение некоторых терминов............................. 225
Список
использованной
補足解説 литературы.
.........................
225 227
Предметный
参考文献
указатель......................................... 228 227
索引 228
VIII СОДЕРЖАНИЕ
Ⅷ
пролог
プロローグ
отдел
...........
Полицейский участок № 78
某県某市 78 分署
в каком-то городе
Приёмная
目黒ルカ
Мегуро Рика Ме г у р о
目黒順警部
п омощник инспектора
お兄ちゃん
братец, нет!
買ってよぉ!
Ну купи! だめだめ
компьютер
パソコンなんて
для школьни-
女子高生には
цы - слишком
большая
ゼイタクすぎる!
роскошь!
Фшш
он нужен
だって数学の勉強に
мне для изучения
ax + 役立てたいんだもの!
by = математики!
gcd( x
a,b)
y 2
ap - 1≡ 1(mod p)
p -1
p )=
ϕ(
……
хочу!
тр 78-ой
для этого и хвать р,
тр кл а
ц участок,
обычных р слушаю
счётов тр
р, вас.
достаточно! тр
р
грр
что?!
похитили?!
пфу!
Фи!
Музей исскуств
«Мраморный»
Виу
ох, ох ...
виу
проверьте
западное крыло! перекройте вон
тот выход!
восточное
крыло!
3
это была
ふむふむ так... значит,
はぁох! あの『微笑みのマドンナ』の
«улыбка мадонны»
厳重に保管していたはずの
похищена знаменитая
絵は 3 億円もしたんですよ!
не могу стоимостью
картина, которую 驚きました…
名画がいつの間に
тщательно охраняли?
поверить! 300 млн иен!
消えてしまった?
полиция
警察はちゃんと
действительно
見張ってた
хорошо
…
んですか?
охраняла?
за 警備はカンペキ
безопасностью 見張りを
всех
следили
だったよな?хорошо? 交代する
дежурных
проверяли
ときは
もちろんです!
так точно! 合い言葉で
по системе
確認
«пароль-
отзыв»!
しましたし
ясно! а х .. .
うむうむ!
山! 川 !
всё
гора! река! いいぞ
правильно! уровень
小学生
младшей
レベル…
школы...
ия
Ау
ац
те
хоп
уй
ик
нт
-ф
и-
4 プロローグ
Содержание
※
Изображена енотовидная ※
собака тануки.
место хранения
картины было
надёжно зашифрова-
но - посторонние
отлично!
молодцы!
щёлк
это нельзя
даже назвать
какой безопасностью!
ужас...
?!
кто щёлк
кто вы
такая?!
щё
лк
,щ
ёл
к
ёмэда рио,
корреспондент
«вечерней газеты»!
5
как?! Газетчики
新聞社がもう事件を 合い言葉も暗号も
пароль и шифр
уже всё
かぎつけたのか
пронюхали? ? никуда
お粗末すぎるのよ !
не годятся!
我々の
что было
セキュリティの な… что?!
не так с
どこがダメだと
безопасностью?!
言うんだ ? なにを――っ
почему?!
!?
絵の保管場所は
картина хранилась
на пятом складе,
第 5 倉庫でしょ ?
не так ли?
さては
君が
может быть,
преступник -
犯人だな !
это вы?!
ち…
нет!
違うわよ !
なぜ知ってる
откуда вы? это любой
знаете?!
あんなの誰でも
смог бы
解読できるわ
разгадать!
шух
6 プロローグ
Содержание
как? инспектор мэгуро,
неужели? не тратьте время!
поскорее найдите
преступника!
.
грр..
да...
преступника..
вот он,
преступник!
чт
о? Директор, вы
!
арестованы!
щёлк
!
ой!
7
нет, я не это
имела в виду! что?
посмотри
на стену за
директором!
тадам!
шлёп!
мм... здесь
раньше
не было
этой
картины...
глыг
8 Содержание
絵じゃなくて
не на картину
説明パネルを
надо смотреть,
а на見るのよ !
её табличку!
Я怪盗サイファ参上
– Весёлый сайфер.
Это я украла картину.
絵はいただいた
В следующий раз
次は VDVIRCU を
украду VDVIRCU.
手に入れるわ
おやすみ♥
Спокойной ночи
怪盗サイファ !?
весёлый Сайфер?!
今は昼だから
странно как-то,
хм...
ハッ Угу! 「おやすみ」ってのは
«спокойной ночи».
сейчас ведь
変だよな ?
день.
бам!
このメッセージ
что бы я тоже
нет, я не
どういうことかしら
это значило? сейчас そうじゃない
об этом!
!
об этом
подумал.
9
絵はいただいた
Это я украла картину.
В следующий раз
次は VDVIRCU
украду VDVIRCU. を
手に入れるわ
おれ
у меня
VDVIRCU
что означает
英語不得意
с английским
не очень...
だから… это же шифр!
ってなんなのよ
это VDVIRCU? ? これは暗号よ !
указана вещь,
次に盗むものを
которая
暗号で示してるの
будет украдена!
следующей.
эх . . .
タヌキ暗号と違って
но это явно
не шифр «тануки»:
どの字を抜いても
VDVIRCU
вычёркивание букв
意味のある言葉に
не даёт ничего
ならんな
осмысленного.
こうなったら
давайте тогда
изучим
暗号を学んで
криптологию
怪盗サイファを
и покажем
見返してэтому
やりましょうよ !
весёлому
сайферу!
это же
スパイ小説じゃあるまいし
не шпионский роман....
暗号なんて本当に
какой нам прок
役に立つのかい ?
от этих шифров?
(горячо)
なに言ってんの
что ты мелешь?
現代は
ведь мы живём
暗号の時代よ
в эпоху шифров! посмотри
これを見て !
сюда!
(пароль)
PASSWORD(パスワード)
(Отправить) Send
Аутентификация пользователя
・本人確認の承認
Интернет
インターネット
・電子取引のための
Шифрование и
аутентификация данных
Сек
暗号化と認証
в платежах через Интернет
рет
но
・文書に改ざんがないことを
Электронная подпись,
подтверждающая
保証する電子署名
отсутствие подмены
данных
・メールの暗号化
Шифрование сообщений
электронной почты.
(PGP:Pretty
(программа PGP:Good
PrettyPrivacy)
Good Privacy)
図 0.1 現代の暗号と社会の関わり
Рис. 0.1. Роль криптографии в современном обществе
図 0.1 に示すように、
Как コンピュータと通信が発達した現代において、
показано на рис. 0.1, в нашу эпоху компьютеров暗号の技術は情報の改ざん、
и связи шифрование
незаменимо для борьбы с подменой
破壊、盗聴を防ぐために必要不可欠なものとなっている。 данных, перехвата информации и т. п.
な… ой...
что это?
なんのこっちゃ…
аж голова ты что, никогда
お兄ちゃん
закружилась.... в интернете
インターネットで買い物
ничего
не покупал?
したことあるでしょ ?
1111
もし暗号が
если бы
не было
なかったら…
шифрования...
подменю-ка
хи, хи, хи... 書き換えちゃえ
я данные...
Ева LOVE
↓
愛してるよ
HATE
я люблю тебя,
アリス♥
алиса
Алиса
Боб Неавторизованный
正当でない受信者(盗聴者)
получатель (перехватчик)
L OV
E HATE
送信者
Отправитель 受信者
Получатель
インターネット
Интернет
как?!
わたしのこと
значит, боб меня
「嫌い」ですって
ненавидит?!
?
понятно!
なるほど ! сообщения
значит,
つまりメールはパソコンでなく
надо отправлять не
по электронной, а
郵便で出せばいいわけだ
по обычной почте!
хо п
ちがーう! нет!
1212 プロローグ
Содержание
и от этой опасности
その危険を防ぐのが
нас защищает...
暗号の技術よ
...шифрование!
Ева
ох...
キーッ
не могу
改ざんできない
подменить.
Неавторизованный
正当でない受信者(盗聴者)
получатель (перехватчик)
Боб Алиса
L OV E LOVE
暗号化
Расшифрование
復号
Шифрование
Отправитель
送信者 Получатель
受信者
Интернет
インターネット
愛してるよ
Люблю § &*@ ♪〒 音声通信связь
Голосовая 愛してるよ
Люблю
データの送受信
Передача данных
データの記録・
Запись и накопление
данных
蓄積など и т. п.
暗号化鍵
Ключ шифрования Ek Ek Ключ расшифрования
復号鍵 D Dkk
※
Получателем может быть и носитель информации:
жёсткий диск, память
※受信者は и т. п.
ハードディスクやメモリなど
図 0.3 暗号のモデル
Рис. 0.3. Модель шифрования (криптосистема)
記録媒体 ( メディア ) の場合もある
ого!
ほう
да, шифрование -
暗号は役に立って
действительно
るんだな вещь!
нужная ほら смотри,
похоже, он
知りたくなって
заинтересовался.
きたでしょ ?
13
1
わたしが先生になるから
暗号のこと
если хочешь,
я могу преподавать
тебе шифрование!
学びましょ !
よし да, хочу!
サイファを捕まえるためだ
я изучу шифрование
и поймаю сайфера!
がんばるぞ !
け…警部…
инспектор...
館長さん
уважаемый директор,
事件はすぐに解決
не беспокойтесь!
снимите
преступление скоро
с меня
するから任しとけ !
будет раскрыто!
наручники!
ох...
141 プロローグ
Содержание
Глава
第1章 1
暗号の基礎
основы
криптографии
1-1 Основные понятия криптографии
кстати...
...что делает
газетчик в след-
ственно-опера-
тивной
группе?
итак,
приступаем
к учёбе!!
я буду
освещать ход
расследования!
прежде
но можно ли всего...
так обеспечить
безопасность
полиции?
...подумаем над
смыслом, который
заложен в кличку
«весёлый сайфер».
мм...
※
По-японски «сайфу» означает «кошелёк».
это твои
мозги
устроены
просто!
ну вообще!
暗号か!
шифр?!
«Тора тора тора» ※2 = «Атака была успешной»
『ニイタカヤマノボレ』=
※1
攻撃開始
Дословно: «Поднимайтесь на гору Ниитака».
『トラトラトラ』=
※2
奇襲成功
Дословно: «Тигр, тигр, тигр».
ага!
если так,
有名どころじゃ
то я знаю
こんなのが
парочку ※※いずれも、太平洋戦争
Обе кодовые фразы использовались
знаменитых
あったな Императорским флотом Японии
開戦時の帝国海軍の電文
примеров.
при нападении на Пёрл-Харбор во время
Второй мировой войны.
нет, нет
でも
но это じゃあ…
а что
それはサイファでは
не шифр. なんだ?
же?
ないわ
Разве это
не шифр?
暗号の仲間だけれど
это родственник ноわたしたちが
мы будем
изучать не их..,
шифра - жаргон:
符丁や隠語と呼ばれる 学ぶのは
фразы, понятные
仲間うちでしか
только членам
...аサイファの
шифры -
通用しない言葉なのよ
какой-либо группы.
«cipher»!
ほうね!
英語では
по-английски
это コード
называется
(code)
code, то есть
というの
«кодовые
фразы».
1818 第 1 章 Глава
暗号の基礎1. основы криптографии
Ева
Так как текст зашифрован,
暗号化された文なので
перехватчик не сможет
盗聴者は読むことが
его прочесть.
できない
Неавторизованный
正当でない受信者(盗聴者)
получатель (перехватчик)
Алиса
Боб
L OV E LOVE
暗号化
Расшифрование
復号
Шифрование
送信者
Отправитель 受信者
Получатель
Интернет
インターネット
Люблю
愛してるよ § &*@ ♪〒
音声通信связь
Голосовая
Люблю
愛してるよ
Передача
データの送受信 данных
暗号化されて текст
Незашифрованный Зашифрованный Запись
暗号化された文 и накопление
データの記録・ 暗号文 C から
Открытый текст P,
いない文(平文
(открытый P)
текст P) текст
(暗号文 C) C) данных
(шифртекст 蓄積など
и т. п.
полученный
復号した平文 P
в результате
мя Ключ шифрования Ek E =暗号化に
暗号化鍵 Ключ расшифрования
復号鍵 DkDk =復号に
расшифрования
k
用いられる鍵 шифртекста C
用いられる鍵
図 1.1 暗号のモデル
наこの図は前にも示したけど
Этой схеме, которую я вам
シャノンがつくった暗号系のモデルよ
уже показывала ранее,
изображена
20 ページに出てくるкриптосистема,
предложенная шенноном.
暗号学の基本用語を
теперь мы изучим термины
おさえておきましょう!
криптографии на стр. 20!
愛してるよ
Люблю
暗号文 C(Cipher
Шифртекст C (Cipher =暗号化された文
text)text): зашифрованный текст. Другое название – криптограмма.
§ &*@ ♪〒
暗号化(Encryption
Шифрование / Encipherment)=平文を暗号文にすること
(Encryption/Encipherment): преобразование открытого текста в шифртекст.
Люблю
愛してるよ § &*@ ♪〒
復号(Decryption /(Decryption/Decipherment):
Расшифрование Decipherment)=暗号文を平文に戻すこと преобразование шифртекста в открытый текст.
§ &*@ ♪〒 Люблю
愛してるよ
暗号化鍵
Ключ Ek(Encryption
шифрования Key)=暗号化に用いられる鍵
Ek (Encryption Key): ключ, используемый для шифрования.
愛してるよ
Люблю § &*@ ♪〒
Ключ EkEk
暗号化鍵
§ &*@ ♪〒 Люблю
愛してるよ
Ключ
復号鍵 DkDk
но暗号を作るのに
почему для ほんものの
это
не настоящий
なんで鍵が
шифрования 鍵じゃないの!
нужен ключ? ключ!
いるんだ?
й?
о ры
暗号文を作る手続き
ключом шифрования Ek на-
кот
(暗号化アルゴリズム)に
зываются данные,
используемые
用いられるデータが
в процедуре
暗号化鍵 Ek になるののよ 暗号化鍵
(алгоритме)
Данные
データ Ключ Ek
шифрования. Ek
※
Алгоритм – последовательность
※アルゴリズムとは、目的達
действий для достижения
成や問題解決のための一連
цели, решения проблемы
и т. п.
の処理手続きのこと
20
20 第 1 章 Глава
暗号の基礎1. основы криптографии
そう!
Верно!
タヌキ暗号の場合の
вот, например, и наоборот, ключ
反対に復号鍵 Dk は
暗号化アルゴリズムと
алгоритм и ключ
расшифрования Dk -
шифрования Ek 抜く文字の『た』
暗号化鍵 Ek はこれよ ※ 暗号化アルゴリズムは、 это вычёркиваемый
для шифра тануки. 復号アルゴリズムは
※
Алгоритм шифрования:
平文に余分な文字を加え слог «та», а алгоритм
暗号文から余分な
«вставить расшифрования:
ること в открытый текст 文字を抜くことよ
«вычёркнуть лишние
лишние буквы». буквы».
※
Ключ шифрования
※ 暗号化鍵 Ek は、加える
Ek :
вставляемый
文字の 『た』 слог «та».
Кл
юч
D
та
k
暗号化鍵между
Связь Ek と復号鍵 Dk の関係
ключами Ek и Dk
Отправитель зашифровывает открытый
送信側は平文の暗号化を行います。平文 текст: используя
P と暗号化鍵 открытый текст P и ключ
Ek(暗号化関数)を用いて、暗号文 C
шифрования
を作るのです。 Ek (функцию шифрования), он генерирует шифртекст C.
Открытый
平文 P Шифртекст
暗号文 C
текст P C
Ключ
暗号化鍵 Ek E
шифрования k
C = E(
k P )
図 1.2 鍵
Рис. 1.2. Шифрование Ek を使った暗号化 ключа
с использованием Ek
Шифртекст Открытый
暗号文 平文 P
C C текст P
Ключ
復号鍵 Dk D
расшифрования k
P = D(C
k )
図 1.3 鍵сDиспользованием
Рис. 1.3. Расшифрование k を使った復号 ключа Dk
СЙЛБ ЛСБТЙГБ
СКРИП, СКРИП
ПУСТЬ КЛЮЧ
СЙЛБ ЛСБТЙГБ
↓ ↓ ↓ ↓ ↓↓ ↓ ↓ ↓ ↓ ↓
ЗАШИФРОВанИЯ Ek -
это сдвиг БУКВы
на одну позицию
РИКА КРАСИВА
вперёд в обычном
алфавите.
«РИКА КРАСИВА»?
СМОЖЕТЕ
ОТГАДАТЬ
ОТКРЫТЫЙ
УГХ
ТЕКСТ?
ТУДУХ БАХ
ХА,ХА,ХА!
«РИКА КРАСИВА» -
ЭТО ОЧЕВИДНАЯ
ВСЕМ ОШИБ...
ルカ先生
РИКА
ちょっと
СТРАШНА...
コワい…
какая
でも тяжёлая
НО ВЕДЬ ТАКОЙ Руководство книга...
こんな暗号じゃ 情報セキュリティ
ШИФР ОЧЕНЬ по информациック онной
すぐに解読されちゃう
ЛЕГКО РАЗГАДАТЬ. ハン
без опаドブ
сности
だろ?
OHM
暗号は
криптография
解読しようとする盗聴者と
развивалась в борьбе
с перехватчиками,
知恵比べをしながら
пытавшимися взломать
発達してきたの
шифр.
次のページから
начиная со следующей
古典的な暗号を
страницы я познакомлю
вас いくつか紹介して
с несколькими
いくわよ! шифрами.
классическими
… L M N O P Q R … 他の文字も同様に、
Аналогичным образом
すると次のように暗号文が作られます。
Таким образом, у нас получится шифртекст.
MOMO T A R O (Открытый
(平文 C) текст P)
P R P R WD U R (暗号文
(Шифртекст
P) C)
また、アルファベットの最後の
Последним 3 文字は、最初に循環させます。
трём буквам алфавита соответствуют первые.
ジュリアス・シーザーは、
Кстати, ух.
крылатая фраза
..
『サイは投げられた』と
«жребий брошен»
いった人よ
тоже принадлежит
цезарю.
へええっ
ааа!!!?
24
24 第 1 章 Глава
暗号の基礎1. основы криптографии
か え じ
Шифр
換字式暗号одноалфавитной замены
Если немного усложнить шифр Цезаря, изменяя сдвиг в
シーザー暗号を複雑にし、各文字ごとにずらす字数を変化さ
зависимости от буквы, то мы получим шифр замены.
n せたものを換字式暗号といいます。
Шифр замены, в котором есть взаимно-однозначное со-
そのなかで平文と暗号文の各文字を
ответствие 1 対 1 で異なる文字に対
между буквами открытого текста и шифртекста,
応させるものを「単一換字暗号」と呼びます。シーザー暗号も、
называется шифром одноалфавитной (или простой) заме-
ны. Шифр
単一換字暗号の一種です。Цезаря тоже является разновидностью шифра
одноалфавитной замены.
例えば、英語のアルファベット 26 文字を、次のように変換
Положим, что 26 букв английского алфавита заменяются
するとします。
так, как показано ниже.
A B C D E F G H I J K L MN O P Q R S T U V W X Y Z
Правилоシグマ
замены σσ
=変換規則
QW E R T Y U I O P A S D F G H J K L Z X C V B NM
(«сигма»)
すると、次のように暗号が作られます。
Тогда шифрование будет осуществляться следующим образом.
MOMO T A R O (平文
(Открытый
C) текст P)
変換規則 σ に従って変換する
Заменяем буквы по правилу замены σ
D G D G Z Q K G (Шифртекст
(暗号文 P) C)
σって
а что это
за буква «σ»?
どう読むんだ?
シグマと
это «сигма»!
読むの
番目の文字→
11-я 文字ずらす
буква → 2сдвиг =2
22-я буква → 5сдвиг
番目の文字→ 文字ずらす=5
=変換規則δ
Правило замены δ
33-я буква → 3сдвиг
番目の文字→ 文字ずらす=3
44-я буква → 1сдвиг
番目の文字→ 文字ずらす=1
すると、次のように暗号文が作られます。
В этом случае мы получим следующий шифртекст.
(Открытый
MOMOTARO (平文 C)P)
текст
n 文字ごとのブロックに分ける(n=4)
Разбиваем на блоки по n = 4 буквы
MOMO
TARO в каждом.
ブロックごとに変換規則δに
(暗号文 P) Заменяем буквы в каждом из блоков
従ってずらす
OTPP V F U P (Шифртекст C) по правилу замены δ.
この暗号では、ブロックの文字数とずらし方の変換規則が暗号化鍵になります。
В данном шифре ключ шифрования – это длина блока и правило замены, то есть
последовательность величин сдвига.
расшифруй-ка
この方式で作った
криптограмму
ТННБМХГТКЗГ,
『ろさへえとすそう』を
解読しなさい!
зашифрованную
этим методом.
『るかはうつくしい』
РИКАКРАСИВА...
です…ほんと!
ДА, ДА, ПРАВДА!
ТЫК
!
26
26 第 1 章 Глава
暗号の基礎1. основы криптографии
Шифр
転置式暗号перестановки
а
平文を n 文字ずつのブロックに区切り、各ブロックの中で文字の順序を置き換える暗号を転
Разбив открытый текст на блоки по n букв в каждом, меняют местами буквы
р
в каждом из блоков.
置式暗号といいます。
例えば、n=4 n = 4 и определим
Положимとし、置換規則τ правило перестановки τ следующим образом.
タウ
として次を定めたとします。
( )
1234
τ=
2413
1 番目の文字→
1-я 2 番目へ
буква → 2-я буква
2 番目の文字→
2-я 4 番目へ
буква → 4-я буква
=置換規則τ
Правило перестановки τ
3 番目の文字→
3-я 1 番目へ
буква → 1-я буква
4 番目の文字→
4-я 3 番目へ
буква → 3-я буква
すると、次のように暗号が作られます。
В этом случае мы получим следующий шифртекст.
(Открытый C) P)
(平文 текст
MOMOTARO
Разбиваем
n на блоки по n =(n
文字ごとのブロックに分ける 4 буквы
= 4)
MOMO TARO
в каждом.
ть
Переставляем буквы в каждом из
ブロックごとに変換規則τに
блоков
従ってずらすпо правилу перестановки τ.
MMOO (Шифртекст
(暗号文
R T O A P) C)
δ - δはデルタ
это «дельта»,
τはタウと
а τ - «тау». なるほど
понятно.
読むのよ
сам цезарь
...в нём 例えば n=3 の場合
использовал...
アルゴリズムや
присутствуют
鍵の概念を
такие понятия
...в качестве ключа
современной
用いているので 3 文字ずらすことが
шифрования
криптографии..,
シーザーの用いた暗号化鍵だな
величину сдвига
в алфавите n= 3.
...как
現代の暗号理論にも
алгоритм
つながっているのよ
и ключ.
и в той задачке
さっき問題に出した
СКЛБЛСБТКГБ
СКЛ 『れきひえてけすう』も
тоже
использовалась
↓ ↓↓ シーザー暗号の一種よ разновидность
шифра цезаря.
РИКА КРАСИВА
28
28 第 1 章 Глава
暗号の基礎1. основы криптографии
... почему мало?
мм どんどん文字を
ведь сдвигать-то
古代ローマの
но не слишком
ずらしていけば
можно на сколько
лиアルファベットは
мало ключей いいじゃないか
угодно букв -...
шифрования?
25 文字しかないわ
дун
ведь
暗号化鍵の数が
в алфавите
древнего рима
少なすぎるんじゃ
было всего 1000наでも
...хоть 1000,
ない?
25 букв. хоть2000наでも
2000!
уф
時計の文字盤と同じで
можно, но сдвиг-то
циклический - начиная
決まった文字を
со второго круга мы
巡回するだけに
получим те же
なっちゃうわ
самые буквы!
уф
уф
ну, давай,
пробеги
хоть 1000,
круть, круть хоть 2000
кругов!
другими словами,
つまり
сдвигать можно
いくら文字をずらしても
на сколько угодно
暗号化鍵はたかだか
позиций, но число
24 個なのよね!
ключей всё равно
будет равно 24!
....максимум за
24 попытки.
если бы, конечно,
знали,
как он устроен.
но если
использовать, чем больше число
например, знаки ключей..,
японского языка...
эврика!
итак, теперь мы
посмотрим
число ключей
в других шифрах.
...алфавиты хирагану,
катакану и иероглифы
в придачу, -
то число ключей
превысит 10 тысяч!
nPr n!
nCr = = .
r! (n - r)! r!
Различие между размещением и сочетанием заключается в том, что в размещении
順列と組み合わせでは、順列は順番が大事なので AB と
важен порядок следования элементов, поэтому и は違うものと考えますが、組み合わせ
ABBA BA будут разными размещения-
ми, а сочетание – это способ выбора
は取り出し方なので順番に関係なく элементов
AB と BA из множества, а порядок
は同じものと考えます。ところで、 их следова-
びっくりマークの!
ния здесь не важен, поэтому AB и BA будут одинаковыми сочетаниями. Кстати, вос-
は階乗を意味します。階乗とは に対して 1 から
клицательный знак (!) – этоn факториал. n までのすべての数を掛けたものです。
Знак факториала после n означает произведе-
ние всех чисел от 1 до n включительно.
n!= n ×(n - 1)……× 3 × 2 × 1.
Примем длину
1 ブロックを одного блока равной
n 字としたとします。その n буквам. Так как сдвиги букв в блоке нам не-
1 字目は、何文字ずらされているか不明なので、26
известны, мы должны будем перебрать 26 значений сдвига 1-й позиции, для каждого
回試行することになります。同様に
из значений сдвига 1-й позиции2–文字目も、さらに 文字目までそれぞれ
по 26 значений nсдвига для回の試行が必
2-й позиции, 26 каждого из
значений сдвига 2-й позиции – по 26 значений сдвига 3-й позиции и так далее до n-й
要です。このため、鍵の総数は次のようになります。
позиции в блоке. Общее число ключей будет следующим.
26 × 26 ×…× 26 × 26 = 26
n
n 個───┘
n множителей
└───
Для
n = n = 4 получим следующее.
4 の場合は次のようになります。
140
140 兆円というと
триллионов иен... Юбилей
Мегуро, помощник инспектора
26 × 26 × 26 × 26 = 264 ぼくの年収の
...- это моё жалованье 28 миллионов лет на службе!
└── 4 個──┘
4 множителя за 28万年ぶんだね
2800 миллионов лет.
264 = 456 976
n Pn = n × (n - 1) × (n - 2) ×…× 3 × 2 × 1 = n!
Для блока,
1 ブロックが состоящего из 4 букв E
4 文字の場合(n=4)の鍵 = 4), общее число ключей Ek будет следующим:
(nk の総数は次の通りです。
4! = 4 × 3 × 2 × 1 = 24 .
При увеличении n число ключей будет возрастать, повышая тем самым стойкость
n を大きくするほど鍵の総数が増え、暗号の安全性が高まります。特に
шифра. n=
Так, для n = 26 число ключей будет таким же, как для шифра 26 の場合は、換 за-
одноалфавитной
字式暗号と同数になります。
мены.
32
32 第 1 章 Глава
暗号の基礎1. основы криптографии
при использовании
鍵の数が多いほど
если считать, что Чем 単一換字式暗号で
длинных шифртекстов
больше число ключей, тем
暗号が安全なら 長文のものには
шифр одноалфавитной
безопаснее шифр,
解読の糸口があるの
то 換字式暗号が安全
замены становится
самым безопасным
уязвимым.
ということになるけど
будет шифр одноалфа-
той
витной замены.
л о
Зо ук
ж
По
ла н
р Ал
мм.. . Эдга
Шифр Шифр
одноалфавитной многоалфавитной
замены замены
Золотой жук?
こがねむし…?
多表式の шифр
однако это атлас
многоалфавитной 昆虫図鑑かな
насекомых?
暗号の方が
замены выглядит
複雑に見えるなあ
посложнее.
богач, наверное...
Часть криптограммы
『おうごんちゅう』ともいうわ из «Золотого жука»
『黄金虫』の暗号の一部
нет, это детектив
暗号解読を扱った 53 ‡‡† 305))6 *;4826)
про вскрытие шифра.
有名な短編ミステリーよ 4 ‡ .)4 ‡);806 *;48 †
8 ¶ 60))85;1 ‡ (;:‡* 8
э то
о го,
лла !
но в е
и в 『黄金虫』では
«золотом жуке» они
それをヒントに
были использованы
для 暗号を解読したのよ!
вскрытия шифра!
наиболее часто
英文で最も使われる
в английских текстах
文字は「e」
используются буква e
単語は「the」だ
и слово the.
すると「8」が「e」
значит,
в этой криптограмме
『;48」』が「the」に
«8» должно означать «e»,
а 違いない!
«;48» - это «the»!
несомненно!
хорошо
頭いい!
соображает!
暗号文は 長いほど
чем длинее шифртекст,
вот警察にスカウト
бы пригласить 手掛かりが増えて
тем больше в нём
его
したいぞна работу 解読しやすいの
зацепок для взлома.
в полицию!
короткие
短い文だと解読が
шифртексты
難しいのよ
взламывать
трудно.
34
34 第 1 章 Глава
暗号の基礎1. основы криптографии
ой! существует ли
『黄金虫』の主人公も
безопасный шифр, хм...
絶対に解読できない
который не смог бы
но вдруг
しかしこんなヤツが
такой человек 安全な暗号って
взломать даже
герой
警察じゃなく
станет не あるのか?
«золотого жука»?
盗聴者に
полицейским,
Рика,
а преступником?
スカウトされたら… скажи,
прошу
тебя!
да, あるわよ!
существует!
почитай вот
Золото
й あわてず
это и
ж ук
успокойся!
続きを読んで
解読が可能になる条件
Возможность криптоанализа
В общем случае существуют следующие условия, делающие возможным вскрытие шифра.
一般的に解読(盗聴)が可能になる条件には次のようなものが考えられます。
① 暗号化アルゴリズムがわかっていること
Известен алгоритм шифрования.
② 文字の出現率の偏りなど、平文について統計的性質のデータがあること
Известны статистические свойства открытого текста: повторяемость букв и т. п.
③ 暗号化の例文を大量に持っていること
Имеется большое количество образцов шифртекста.
A B C D E F G H I J K L M
0 1 2 3 4 5 6 7 8 9 10 11 12
N O P Q R S T U V W X Y Z
13 14 15 16 17 18 19 20 21 22 23 24 25
① アルファベットを文字コードに変換
Заменяем буквы алфавита на коды символов.
平文
Открытый M O M O T A R O
текст ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
12 14 12 14 19 0 17 14
② 1Складываем
回だけ使う乱数列を加算
коды символов с однократно используемым рядом случайных чисел.
12 14 12 14 19 0 17 14
Ряд случайных + + + + + + + +
乱数列
чисел (ключ
шифрования) 9
(暗号化鍵)
20 15 23 27 2 15 8
= = = = = = = =
21 34 27 37 46 2 32 22
③ 26 で割った余りを計算
Вычисляем остаток от деления на 26.
21 34 27 37 46 2 32 22
↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
21 8 1 11 20 2 6 22
④ 文字コードを用いてアルファベットに変換
Используя коды символов, заменяем числа на буквы алфавита.
21 8 1 11 20 2 6 22
Шифртекст ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
暗号文 V I B L U C G W
36
36 第 1 章 Глава
暗号の基礎1. основы криптографии
うーん…
да уж.
こんなの使われたら
взломать такое
解読できないわ…
невозможно.
バーナム暗号は
Шифр вернама
обладает
理論的に安全な
в абсолютной
самом 暗号よ
криптостойкостью.
деле...
Типы криптостойкости
安全な暗号
① 絶対安全な暗号
Совершенно стойкий шифр:
Шифр, который теоретически невозможно взломать,
バーナム暗号のように理論的に解読が不可能なもの。
как шифр Вернама.
② 計算量的に安全な暗号
Вычислительно стойкий шифр:
Для взлома требуется столько времени и трудозатрат, что крип-
解読するのに採算が合わないほど手間と時間がかかるもの。
тоанализ становится экономически бессмысленным.
現代の商用暗号に用いられている。
Современные коммерческие шифры являются вычислительно
стойкими.
безопасные
安全な暗号には
шифры
2 種類あるの
бывают двух
видов.
そうか!
вот как?!
暗号はみんな
значит, лучше
バーナナ暗号に
использовать
шифр вернама.
すればいいんだ
хотя и
вкусно вкусно...
да уж,
バーナム
этот
だってば
вернам※.
※
Бананы появляются в манге потому, что по-японски имя Вернам звучит как Банам.
37
37
Идёт
приём Шифртекст
однако ключи шифра ...
вернама слишком
длинные, что ухудшает так
эффективность связи.
долго?!
где-то
обязательно
остаётся надеяться,
должна быть
что VDVIRCU от
подсказка...
сайфера - это не думаю, что это
не шифр вернама. слишком сложный
шифр, ведь сайфер
оставил его для кар
нас специально.
ох...
кар
ой, уже
мне пора
скоро
возвращаться
шесть!
в редакцию.
мм...
おっきたきたー
вот, вот...
простите, что
お待たせ
заставила
しましたー
вас ждать!
большое спасибо
毎度ありー
за то, что
вы пришли к нам!
Каф е «Заяц»
та-дам
うまい
вкусно,
うまい
вкусно! …… лапша
ラーメン
«рамэн»..
ウサギ
заяц...
サイファ
сайфер...
вшш...
おやすみ
спокойной
ночи...
暗号…
шифр...
нет,
так я не об этом!
ешь
скорее!
я разгадала
шифр!
что?!
пфу
фии!
Я–В
ес
Это я ёлый сайф
у е
В сле крала карт р.
ду и
украд ющий раз ну.
у VDV
IRCU なんの
Сп . что?!
こっちゃ?
し…ладно...
о к о йн
деваться ой но
しかたないなあ
некуда. чи
ウサちゃんは
«заяц»
по-английски -
英語で bunny
bunny..,
そして…
а «спать»
おやすみするのは-
по-английски
sleep.
眠ることだから sleep
ну...
ほう…
で?
и...
...то мы получим
слово sleep!
вот как!
да!
значит, ключом
был сдвиг
на 17 позиций?! ха
ха
а если теперь
сдвинуть все
буквы VDVIRCU
на 17 позиций ха
назад в алфавите..,
ха
ха
...то у нас
получится...
глыг
そ…そのとおり…
не так ли?
国際宝石展から
на международной
エメラルドが
выставке
драгоценностей
盗まれましたっ!
похищен изумруд!
EMERALD
получается
EMERALD
ですね… .., って
...так?
サイファの犯行だ
это сайфер!
сейчас же
現場にいくぞ!
выхожу на место!
но.. . ..
в едь
а как же..
よし!
надо спешить!
急げっ――
выходим!
はいっ
есть!
44
44 第 1 章 Глава
暗号の基礎1. основы криптографии
Глава
第2章 2
共通鍵暗号化技術
Одноключевой
ш ифр
2 ー 1 2числа
2-1 Двоичные 進数と排他的論理和
и сложение по модулю 2
ох ох
ор
ект
Дир ох
ох
Музей
博物館 ох
また
опять
やられたな!
кража!
46
46 第2章 Глава 2. Одноключевой шифр
共通鍵暗号化技術
был ли закрыт
на ключ
это был изумруд выставочный
стоимостью шкаф?
в 300 млн иен!
ааа!
вообще-то, да,
но потом его
кто-то открыл
незаметно
для нас.
значит, драгоценный
камень кто-то
выудил с чердака.
нет, просто
к нам
в редакцию
пришло вот
это письмо!
怪盗サイファ
Весёлый сайфер
P. S.:
追伸
また会う日のために
Изучите это до нашей
みんなでこれを研究しておいてね!
следующей встречи!
新暗号 мм...
новый шифр?
登場か…
ектор
Дир
わたしも
и меня тоже
つれてって!
возьми!
48
48 第2章 Глава 2. Одноключевой шифр
共通鍵暗号化技術
犯人は
преступник
わかってます
известен!!
!!
отк р
о
го в в е н н о
оря.
.,
- это я.
р ес тупник
... п
ну так
じゃあ
скорее его 正体と
早くつかまえて… конечно!
поймайте! как居場所が
только поймём,
кто это
わかったらね!
фиють
и где скрывается!
по
до
жд
ах и !
просто вопиющая
безответственность!
мм...
00110001 00101011
00110001 00111101
00110000
今度のは
а теперь тут это -
これは
0 と 1 がやたらと
ряды нулей ага двоичные
進数ね
2числа.
並んでいるが
и единиц....
что это
なんだこりゃ?
ещё такое?
50
50 第2章 Глава 2. Одноключевой шифр
共通鍵暗号化技術
все данные Минимальная единица
コンピュータが 0 か 1 で表される情報の最小単位
внутри информации, равная 0 или 1,
扱うデータはすべて
компьютера - называется битом.
をビット(bit)といいます。
Набор из 8 битов, другими словами,
0と1を
это комбинации двоичное число, か
8 ビット(0 состоящее
1 かの数字が из 8 8раз-
個
組み合わせた рядов,並んだ
каждый из которых принима-
нулей и единиц. 8 桁の 2 進数)をまとめて
2 進数なのよ ет значения 0 или 1), называется бай-
1 バイト(byte)といいます。
том.
1 バイトは 2 の 8 乗、つまり数式
1 байтом
で表すと можно
28 = выразить 28 = 256
256 通りの情報を
информационных сообщений.
表すことができます。
表 2.1 2
Таблица 2.1. Соответствие 進数と 10 進数と
двоичных, 16 進数の対応
десятичных и шестнадцатеричных чисел
Двоичные
進数
2 числа
Десятичные
進数
10числа Шестнадцатеричные
進数
16числа
Двоичные
進数
2 числа
Десятичные
進数
10числа Шестнадцатеричные
進数
16числа
0000 0 0 1000 8 8
0001 1 1 1001 9 9
0010 2 2 1010 10 A
0011 3 3 1011 11 B
0100 4 4 1100 12 C
0101 5 5 1101 13 D
0110 6 6 1110 14 E
0は0で
Нуль - 0,
1は1で
один - 1,
0111 7 7 1111 15 F два - 10...
2 は 10 で…
Так как при увеличении двоичных чисел резко уве-
2 進数は数が大きくなるにつれ、どんどん桁数が増える
тичивается их разрядность, их часто выражают в
ため、しばしば 16 進数による表記が用いられます。
шестнадцатеричном виде.
16 進数であることを示すために、
Для 「0x」という記号を
того чтобы показать, что число является шест-
надцатеричным,
前に付ける場合があります。16 как правило, перед
進数の 0xAним
は 10ставят
進数
знак
の 10 «0x»: шестнадцатеричное число 0xA выражает
を表します。
десятичное число 10.
В 文字を用いた歴史的暗号と違い
отличие от исторических
шифров, в которых использо-
現代暗号では
вались буквы, в современных
すべて 2 進数が基本に
шифрах всё основано на
なっているわ!
двоичных числах!
31 ?
тридцать
サーティワン?
один?
現在コンピュータで
в кодировке символов,
используемой в
よく使われる
современных компьютерах
文字コード(ASCII)では
(таблице ASCII),
16 進数の 31 は
шестнадцатеричному
数字の「1」にあたるわ
числу 31 соответствует
цифра 1.
4上位 4 ビット
старших бита Таблица 2.2.
表 2.2 JIS Кодировка
X 0201 コード JIS X 0201
下位4ビット
※
※
JIS X 0201
Кодировка JIS コ ード
X 0201
4 младших бита
00 10 20 30 40 50 60 70 80 90 A0 B0 C0 D0 E0 F0
は、世界標準の
расширяет междуна-
ASCII 00 DE 0 @ P p ー タ ミ
コродную
ー ド(7стандартную
ビ ッ ト )を
кодировку ASCII ( 7 бит) 01 SH D1 ! 1 A Q a q 。 ア チ ム
日本国内用に拡張して
до 1 байта (8 бит), 02 SX D2 " 2 B R b r 「 イ ツ メ
1 バイト(8 ビット)に
давая возможность 03 EX D3 # 3 C S c s 」 ウ テ モ
し、英数字と記号に加
выражать в дополнение 04 ET D4 $ 4 D T d t 、 エ ト ヤ
えて、半角カタカナ等
к цифрам и английским
を表せるようにした文 05 EQ NK % 5 E U e u ・ オ ナ ユ
буквам знаки азбуки
字コードです。 06 AK SN & 6 F V f v ヲ カ ニ ヨ
«катакана» половинной
ширины и др. 07 BL EB ' 7 G W g w ァ キ ヌ ラ
※表の見出しは 16 進 08 BS CN ( 8 H X h x ィ ク ネ リ
※
数 で、 上 側столбцов
Заголовки が上位 4 09 HT EM ) 9 I Y i y ゥ ケ ノ ル
таблицы соответствуют
ビットを、左側が下位 0A LF SB * : J Z j z ェ コ ハ レ
4 младшим
ビットを表します。4 битам, а 0B HM EC + ; K [ k { ォ サ ヒ ロ
заголовки строк –
старшим 4 битам 0C CL → , < L ¥ l | ャ シ フ ワ
шестнадцатеричного 0D CR ← - = M ] m } ュ ス ヘ ン
числа. 0E SO ↑ . > N ^ n  ̄ ョ セ ホ ゛
0F SI ↓ / ? O _ o ッ ソ マ ゜
52
52 第2章 Глава 2. Одноключевой шифр
共通鍵暗号化技術
очень похоже, Таблица 2.3. Соответствие двоичных
すると чисел и символов кодировки JIS X
что сайфер 表 2.3 2 進数と JIS X 201 コードの対応
サイファが残した数字は
закодировал 0201
может быть,
こういうことね
вот такие символы. 2 進数 16 進数 JIS X 0201
1 足す 1 は
Двоичные Шестнадцатеричные Кодировка этот
числа 2 じゃないか
сайфер -
числа JIS X 0201
コード
дурак?
00110001 31 1
ведь 1
00101011 2B +
サイファって
плюс 1
バカ?
будет 2.
00110001 31 1
00111101 3D =
00110000 30 0
1+1=0
エックスオア
これは XOR 演算
そんなはず
нет, такого это - операция xor
быть (исключающее
は い た て き ろ«или»),
ないわ! 他的論理和の
つまり排словами,
ん り わ
не может! другими
式を表してるのよ!
сложение по модулю 2!
暗号に必要な
эта логическая
операция нужна
論理演算よ !!
для шифрования!!
エックスオージャン
用事を思い出した
у меня дела,
醤?※
X O XO?
соус トンビ?
коршун?
надо идти...
から帰る…
は いた
歯зуб
痛?
болит?
куда,
こらこら
куда?
※
Непереводимая игра слов с термином «исключающее ИЛИ».
OR (логическое
OR(論理和) A+B A + B
сложение) AND (логическое
AND(論理積) A・B A ⋅ B
умножение) NOT (инверсия)
NOT(否定) A A
A B A+B A ⋅
B A+B A A
0 0 0 0 0 0 1 0
1 0 1 1 0 0 0 1
0 1 1 0 1 0
1 1 1 1 1 1
A B AB A B A+B A B A⊕B
0 0 1 0 0 1 0 0 0
1 0 1 1 0 0 1 0 1
0 1 1 0 1 0 0 1 1
1 1 0 1 1 0 1 1 0
排他的論理和は
как показано Cложение по модулю 2 この演算が
排他的論理和(XOR
(операция XOR) 演算)の а зачем
図 2.1
на рис. 1,
のように なんの役に
нужна такая
результат 記号は「⊕」で、
обозначается ⊕. Например,
互いの値が
XOR будет равен 1, 1 ⊕ 0 = 1、1 ⊕ 1 = 0 立つの?
операция?
異なるときが「1」で
если a и B - разные,
のように用います。
и равен 0,
それ以外は「0」に
если A и B -
なるわ
одинаковые.
54
54 第2章 Глава 2. Одноключевой шифр
共通鍵暗号化技術
これを見て!
посмотрите
сюда!
Пусть (1101) – это открытый текст, а (1001) – ключ шифрования. Тогда опера-
かりに(1101)を平文、 (1001)を暗号化鍵として、XOR 演算を行います。
ция XOR даст нам следующий результат:
(1101)⊕(1001)=(0100)
Открытый Ключ Шифртекст
平文 шифрования
текст 暗号化鍵 暗号文
演算結果の(0100)を暗号文と考えることにしましょう。次に暗号文(0100)と復号鍵
Результат операции – (0100), – будем считать шифртекстом. Теперь выполним
операцию XOR演算を行います。
(1001)の XOR над шифртекстом и ключом расшифрования (1001).
(0100)⊕(1001)=(1101)
Шифртекст Ключ
暗号文 расшифрования
復号鍵 Открытый
平文 текст
すると、復号して平文が得られます。また、暗号文(0100)と平文(1101)の
При этом произойдёт расшифрование – мы получим открытый текст. XOR 演
Теперь
мы выполним операцию XOR над шифртекстом и открытым текстом. Как видите,
算を行うと、次のように鍵が得られます。
у нас получился ключ.
(0100)⊕(1101)=(1001)
Шифртекст Открытый Ключ шифрования (равен ключу расшифрования)
暗号文 текст
平文 復号鍵=暗号化鍵
Таким образом, если из трёх наборов данных: открытый текст, ключ шифро-
つまり、平文、暗号化鍵、復号鍵、暗号文のうちのいずれか 2 つのデータから、残りのデー
вания (ключ расшифрования), шифртекст; – у нас имеются два, мы сможем найти
タがただ 1 つだけ導き出されます。
недостающий набор данных.
復号 :
Расшифрование:
暗号文
Шифртекст ⊕ 復号鍵
Ключ = Открытый
平文
расшифрования текст
§&★@♪〒 ⊕ = Люблю
愛してるよ
そのとおり
Одноключевой шифр =
верно! 共通鍵暗号 = 換字処理 + 転置処理+ XOR 演算
= Замена + Перестановка + Операция XOR
а если вдобавок
к第 1 章に出てきた
операции xor
использовать
換字と転置
также замену и
そして XOR 演算を
перестановку,
使えば
о которых ...то можно
現代暗号の
говорилось реализовать
в главе 1.., 『共通鍵暗号』が
современный
実現できるのよ
«одноключевой
шифр»※.
※
Обычно этот шифр называют
«симметричным шифром». – Прим. ред.
ОДНО-
共通鍵? ЭТО ШИФР,
次から
КЛЮЧЕВОЙ? 暗号化と復号に
В КОТОРОМ ДЛЯ
В СЛЕДУЮЩИЙ РАЗ
ЗАШИФРОВанИЯ И
共通の鍵を用いる 共通鍵暗号について
РАСШИФРОВанИЯ Я О НЁМ РАССКАЖУ!
暗号よ
ИСПОЛЬЗУЕТСЯ ОДИН 学んでいきましょう!
И ТОТ ЖЕ КЛЮЧ.
ТЫ В НО
ПОРЯДКЕ? ついて
СМОГУ ЛИ
いけるかな…
Я ПОНЯТЬ?
56
56 第2章 共通鍵暗号化技術
2Что
2-2 ーтакое
2 одноключевой
共通鍵暗号とは шифр? вшш...
※1
※2
※1 ※2
Кафе «Заяц»; Лапша «Рамэн»
Открытый
平文
текст
Шифрование
暗号化 共通秘密鍵
Общий ключ
Открытый
平文
текст
:
вание
ифро
Расш
復号
送信者
Отправитель 受信者
Получатель
не могу
これが
одноключевой взломать!
共通鍵暗号の
шифр выглядит
イメージよ !
вот так! Перехватчик
盗聴者
отправитель
暗号の送信者と
и получатель
да...
受信者同士が
зашифрованного
сообщения... 1 つの鍵を他人に
...используют
да...
知られないように使って
один и тот же ключ,
держа его
暗号化と復号を
в секрете от
するのね
посторонних...
представьте,
共通鍵暗号で
что три человека
3 人が互いに 3 個でしょ?
три?
общаются, используя
通信するとしたら
одноключевой
шифр.
鍵はいくつ
сколько,
по-вашему,
必要だと
понадобится ピンポーン
Верно!
思う?
ключей?
じゃあ
а теперь
твоя очередь,
お兄ちゃん!
братец!
4 人が互いに
сколько
понадобится
通信するとしたら
ключей четверым
鍵はいくつ
для общения
必要?
друг с другом?
мм...
58
58 第2章 Глава 2. Одноключевой шифр
共通鍵暗号化技術
если троим -
3 人で 3 個なら
три..,
нет!
...значит, четверым -
4 人で 4 個?
четыре?
間違えやすいけど
ошибиться.
понадобится
6 個よね?
шесть ключей,
не так ли?
количество ключей,
n 人の利用者が Количество n(n − 1)
которое требуется для 共通鍵の個数=
общих ключей nC2 =
共通鍵で相互に
взаимного общения 2
n暗号で通信する
пользователей
с помощью
場合
этого шифра,
必要な鍵の数は
расчитывается
вот по такой
こうやって計算するの!
формуле!
е
Каф
яц»
«За
4950個
4950
ключей!
でーす
100× ( 100 - 1 )
= 4950
2
になるのよ
счёт,
пожалуйста...
о!
иб
ас
сп
а можно с помощью
共通鍵暗号を使うと
одноключевого шифра
秘密の電子メールを
обмениваться
暗号化して
секретными
送ったりできるの?
сообщениями
электронной почты?
60
60 第2章 Глава 2. Одноключевой шифр
共通鍵暗号化技術
конечно.
そうね でも но здесь но ведь и ключ
возникает проблема 鍵もメールで送れば
共通鍵をどうやって можно отправить
передачи общего ключа いいじゃないか
по электронной
通信相手に届けるかも
получателю почте?
問題だわ
сообщения.
а если его
鍵が盗まれたら
украдут, то какой
意味ないんじゃない?
будет смысл?
но ведь можно
じゃあその鍵を
зашифровать
別の共通鍵で
ключ другим
暗号化したら?
общим ключом?
а как тогда
別の共通鍵は あれ?
что?
передать
...и тот, другой
どうやって届けるの?
другой общий そのまた別の鍵も
ключ тоже
ключ? другой ключ またまた暗号化
別の鍵もまた зашифровать
тоже зашифровать
別の鍵で暗号化して… して…??
ещё ещё одним
ещё одним ключом...
ключом???
что? что?
что??
по
メールで…
E-мейлу...
и здесь на помощь
приходит
そこで鍵の配送が不要な
шифр с открытым
『公開鍵暗号』
ключом,
という方式を
не требующий
使うのよ!
секретной
передачи ключа!
それについては
его мы будем
第 3 章で
изучать в главе 3.
学びましょう
共通鍵暗号は
одноключевой
共通鍵暗号の特徴
Особенности одноключевого шифра 公開鍵暗号と
шифр и шифр с
открытым ключом...
組み合わせて
Требуется осторожность при передаче и хра-
・鍵を知られないよう、配送や保管に注意する
нении ключа, так как его нужно держать в インターネットに
...используются
必要がある。
секрете. 関係する通信にも
вместе для связи
по利用されているわ!
сети интернет!
・計算量が少なく、高速に暗号化と復号が行え
Подходит для передачи больших объёмов данных, так как
низкая сложность вычислений позволяет проводить шиф-
るため、大量のデータの通信に適している。
рование и расшифрование с высокой скоростью.
62
62 第2章 Глава 2. Одноключевой шифр
共通鍵暗号化技術
共通鍵暗号の方式には
существуют
две разновидности どう они
а чем
大きくわけて 2 種類あるの
одноключевого шифра. 違うの?
отличаются?
Потоковый (逐次暗号)
①ストリーム暗号 шифр
②ブロック暗号
Блочный шифр
в блочном шифре
ブロック暗号は
ストリーム暗号は открытый текст
в потоковом шифре 平文と暗号文のデータを
ビットか
1биты или шифртекст
или байты
一定の長さ(ブロック)
сначала разбивается
1 バイトごとに
зашифровываются
наごとに区切って暗号化と
блоки равной дли-
次々に暗号化する方式よ
один за другим.
復号を行う方式よ
ны, которые затем
зашифровываются
まずはストリーム暗号から
и расшифровываются.
見てみましょう
сейчас я
これから
об этом
説明するわ
расскажу.
окク
лッ
Бロ
ブ
2 ーУстройство
2-3 3 ストリーム暗号の仕組み
потокового шифра
Начало
はじめ
бит
1 ビット
Конец
おわり
Открытый
平文 1 1 0 0 1 … … … … …
текст
Ключ
鍵 1 0 1 1 0 … … … … …
Шифртекст
暗号文 1
64
64 第2章 Глава 2. Одноключевой шифр
共通鍵暗号化技術
кстати,
а что такое ちなみに
и потоковый,
「擬似乱数列」って何?
последовательность ストリーム暗号も
и блочной шифры
псевдослучайных чисел? ブロック暗号も
можно когда-нибудь
しらみつぶしに鍵を
взломать, перебирая
試せばいつか鍵が
ключи один
見つかっちゃうわ
за другим.
(79 ページ参照)
(См. стр. 79)
другими словами,
計算量的な安全性しか
они обладают
это только
保証されないってことね
擬似乱数列というのは
последовательность вычислительной
чисел, похожих на
乱数列っぽく見える数列の стойкостью.
случайные числа! да
ことよ(См.
(225стр.
ページ参照)
225) !
а последовательность 平文以上に長い
ведь, сгенерировав
本物の乱数列は последовательность
настоящих случайных 真の乱数列をつくれば
作れないの?
истинно случайных чисел
чисел сгенерировать それを鍵にして絶対安全な
длиной не менее
нельзя? открытого текста,
バーナム暗号が
мы получим совершенно
できるのに!
стойкий шифр вернама!
コンピューターで作るのは
на компьютере это
難しいのよ сложно.
сделать
あれ
а где братец?
お兄ちゃんは?
да, в самом деле...
ха-ха
ха-ха
ёлом сайфере.
в блочном
ブロック暗号は
шифре
ある一定のブロック
шифрование
теперь давай
これから производится
ごとに暗号化をする
как следует изучим
по блокам
ブロック暗号の仕組みを
устройство 方式なの
определённой
きっちり学んで
блочного шифра.
длины.
いきましょう
В отличие от потокового
ストリーム暗号が шифра, в котором используется побитовое шифро-
1 ビットごとに暗号化していったのに対し、ブロック暗号はある一定の
вание, в блочном шифре информация зашифровывается блоками определённой
ブロックに分けて暗号化していきます (図 2.3)
длины (рис. 2.3). Длина одного блока 。1 ブロックの長さは暗号によって違いますが、
зависит от разновидности шифра, имеются
64-битные,
64 ビットのものと 128-битные блочные шифры. Кстати, так 1как
128 ビットのものがあります。ちなみに однобайтовый
バイトの文字は символ
8 ビットになる
кодируется восемью битами, 64-битный блок содержит 8 символов.
ので 64 ビットを 1 ブロックとするなら、8 文字で 1 ブロックになります。
64 ビット
бита 64 ビット
бита 64 ビット
бита бита
64 ビット
Открытый
平文
текст абвгдежз
イロハニホヘトチ ийклмноп
リヌルヲワカヨタ рстуфхцч
レソツネナラムウ шщъыьэю
ヰノオクヤマケフ
Шифрование
暗号化 Шифрование
暗号化 Шифрование
暗号化 Шифрование
暗号化
Шифртекст
暗号文 ×××××××× ×××××××× ×××××××× ××××××××
Рис. 図
2.3. Устройство блочного шифра
2.3 ブロック暗号の仕組み
Название
暗号の名称 шифра в битах Длина
Длина блока〔ビット〕
ブロック長 ключа в битах
鍵長〔ビット〕
DES 64 64
AES 128 128 192 256
66
66 第2章 Глава 2. Одноключевой шифр
共通鍵暗号化技術
あれ ?
7〔文字〕
букв × 8〔ビット〕
битов = 56〔ビット〕
битов
что?
а как тогда
例えばエメラルド
зашифровать,
например ведь
(Emerald)を 56 ビットに
его длина
слово «изумруд»
暗号化するとして
(Emerald), будет
なるよな?
равна
バイトの文字がиз 7
1состоящее
56 битам.
文字だから……
7однобайтовых
символов?
ブロック長を
да, ведь
そういう場合は
в подобных случаях
если длина
64 ビット(8 バイ パディング(Padding:
текст дополняют詰め物)を
блока равна
ト)とした場合
64 битам.., 足して до длины блока
с помощью заполнителей.
56 ビット
битов
8 ビット
битов
ブロック長に合わせればいいの
(Padding).
64 ビット
足りないわね…
8 битов
бита (1 байта)...
E m e r a l d
Открытый
平文
текст
Заменяем
文字コードでсимволы
16 進数とするна их шестнадцатеричные коды.
56 ビット
битов
ビット
8 битов
8 ビット
битов 8 ビット
битов ビット
8 битов 8 ビット
битов ビット
8 битов ビット
8 битов ビット
8 битов 足りない
не хватает
Дополняем текст
ブロックの長さ(64 заполнителями до длины в 64 бита.
ビット)に合わせてパディングする
64 ビット
бита
8 ビット
битов 8 ビット
битов 8 ビット
битов 8 ビット
битов 8 ビット
битов ビット
8 битов 8 ビット
битов 8 ビット
битов
※
Коды однобайтовых символов выражены в виде двухзначных шестнадцате-
※上の 0x で始まる記号は、16 進数 2 桁の文字コード (1 バイト ) を表します。
ричных чисел (на это указывает префикс 0x перед числами).
図 2.4 パディングの例
Рис. 2.4. Пример дополнения битами-заполнителями
В вышеприведённом
上の例では、 「0x01」を加えて、примере текст дополняется
ブロック長の до длины
64 ビット (8 バイト блока в 64 бита
) にしてあります。 (8 байтов)
この「0x01」
с помощью байта-заполнителя. Этот байт, равный 0x01, то есть 1, показывает число бай-
とは「1」のことで、которое
тов-заполнителей, 復号する際に取り除かれるパディングのバイト数を表しています。パディ
будет удалено при расшифровании. Существуют и другие ме-
ングには、この例以外にもいくつかの方法があります。
тоды дополнения.
そういう
да, такой 各ブロックを
метод
шифрования и
やり方も
метод 独 立したものとして
тоже Электронная кодовая книга
エレクトリック コード ブック расшифрования
あるわ ! 個々に暗号化と復号を
есть! ECB: ElectronicCode
ECB:Electric CodeBook
Book блоков независимо
行う方式を
один от другого...
ECB モード
...называется
というの ECB.
режимом
暗号文にも
...то и в шифртексте
…/"!#$&%*…………/"!#$&%*
重複が起きて
возникнут повторения. Тогда в шифртексте будет два раза повторяться
не снизит ли это すると「/"!#$&%*」が重複し、暗号を解読する
последовательность символов «/»!$&%*»,
安全性が低くならない? 手がかりとなってしまうおそれがある。
что может стать зацепкой для раскрытия шифра.
безопасность?
чтобы предотвратить
それを防ぐために
это, используется метод
Сцепление блоков шифртекста
サイファ ブロック チェイニング 連鎖式ブロック暗号という
под называнием
CBC: Cipher Block
CBC:Cipher Block Chaining
Chaining 方式があるのよблоков
«сцепление
шифртекста».
なんだ
ой,
что это?
それ?
68
68 第2章 Глава 2. Одноключевой шифр
共通鍵暗号化技術
CBC モード
Режим сцепления блоков шифртекста (CBC)
Режим CBC – это метод, позволяющий получать на выходе криптосистемы разный
CBC モードは、同一の平文でも異なる暗号文が出力されるように工夫してある方式です。
шифртекст при одинаковом открытом тексте на её входе.
平文をブロックに分けて組み立てるとき、入力データか出力データの一部を、ブロック単位
После разбиения открытого текста блоки входных или выходных данных исполь-
зуются повторно (это называется «обратной связью»), что позволяет рассеивать непре-
にフィードバックして、平文のブロック間の連接情報をさらに拡散させ、暗号としての強度を
рывные данные открытого текста между блоками, повышая тем самым стойкость шиф-
増大させるものです。
ра ※
.
Открытый
平文(2 текст
進数) … Pi - 1 Pi Pi + 1 …
(двоичные числа)
⊕
Ci - 1
Блоки входных данных
入力データブロック… Xi - 1 Xi Xi + 1 …
X(64 ビット)
i (64 бита)
K Алгоритм шифрования DES
Ключ шифрования
暗号化鍵 DES 暗号化アルゴリズム
出力データブロック…
Блоки выходных данных Ci - 1 Ci Ci + 1 … Ci - 1 Ci Ci + 1 …
(64бита)
(64 ビット)
暗号文(2 進数)
Шифртекст
図 2.5 CBC の仕組み (двоичные числа)
Рис. 2.5. Устройство режима CBC
図В2.5
случае, показанном
の例の場合は、1 на рис. 2.5, предыдущий
つ前の暗号文ブロック блок шифртекста PCiiとの排他的論理和、
Ci - 1 と次の平文ブロック – 1 складывается
по модулю 2 со следующим блоком открытого текста Pi :
つまり、
Xi = Ci - 1 ⊕ Pi , где i = 1, 2, 3...,
иで演算された出力 i を、暗号化のための入力データとしています。このようにすれば、
результат этой Xоперации 同じデー
Xi используется в качестве входных данных шифрования.
Таким образом, даже при наличии одинаковых
タの平文のブロックがあっても、同じデータの暗号文のブロックが生成されることはありませ
блоков открытого текста одинаковые
блоки шифртекста сгенерированы не будут. Правда, для самого первого блока X1 вход-
ん。ただし、最初のブロックには、フィードバック
ных данных приходится в качестве предыду-
щего
するデータблока Cвыходных данных использовать за-
0 が用意されていないので、1 つ前の объяснения
ранее сформированный вектор инициализа- だんだん説明が
постепенно
暗号ブロックである初期値
ции C0. (Initial Vector) という 本格的になって
становятся
всё более
ものを設定する必要があります。 きたな…
конкретными...
ре о
фе ла
а й де
м с ие
ло а н
сё о в
Ве с ле д
※
Для более глубокого понимания
Рас
※ DES 暗号の仕組みを理解する
устройства шифра DES рекомен-
дуем прочитать
ためには раздел «Шифро-
87 ページからの「簡
вание и расшифрование
易版 DES による暗号化と復号
в упрощённом DES», начинаю-
の実際」を読んで下さい。
щийся со стр. 87.
...существовала
DES(Data Encryption Standard)
その元になった
криптосистема,
暗号システムが
положенная в
あったのよ!
его основу! その元になった暗号化システム:
Криптосистема, положенная в его основу:
ル シ フ ァ サ イ フ ァ
Lucifer Cipher(金星暗号)
(шифр «Люцифер»)
ホ ー ス ト フ ァ イ ス テ ル
開発者:IBM
Разработчик: Хорст 社の
Фейстель
Horst(Horst Feistel)
Feistel
из компании IBM
そうねぇ
ну... それなら
тогда советую
へぇ~!
ого!
прочитать
87 ページからの
«Шифрование
「簡易版 DES による
хочу узнать,
実際の仕組みは 暗号化と復号の в
и расшифрование
как он упрощённом des»,
どうなのか
устроен 実際」を読んで
начиная
実例で知りたいわ
на самом ! соちょうだい !! 87!!
страницы
деле!
70
70 第2章 Глава 2. Одноключевой шифр
共通鍵暗号化技術
Основы строения сети Фейстеля
Feistel 型暗号の基本構成
ファイステルが考えた暗号化の方法は、次のようなものです。
Фейстель предложил следующий метод шифрования информации.
※ IP:Initial Permutation
平文 Pтекст P
Открытый
①
① 平文を、64открытый
Разбиваем ビットずつのブロッ
текст
分割 ①
Разбиение ① на 64-битные блоки.
クに分割します。
平文 P
Открытый текст P
(64 ビット)
(64 бита) ② 64 ビットのブロック内を初期
② Выполняем начальную переста-
転置 IPをして、ビットを入れ換
новкуIP битов 64-битного блока.
初期転置
Начальная IP IP ②
перестановка
え、ばらばらに組み換えます。
③
L0 R0 ③ Делим
③ 64 64-битный блок на два32
ビットのブロックを、左
(32 ビット)
(32 бита) (32 ビット)
(32 бита) ビット(L0)と右
32-битных блока: 32 ビット
левый L0(R0)
KK11((ключ
暗号化鍵 )
иのправый
2 ブロックに分割します。
R 0.
1Цикл
Операция шифрования)
XOR ⊕⑤ Нелинейная функция f
XOR
段目(1(раунд)
f で換字・転置処理 ④ Выполняем замену暗号化鍵
и перестанов-
演算 ④ ④ R0 のブロックを、 (K1)
ку битов блока R0 c помощью не-
を用いた非線形関数 f で、複雑に
ラウンド)1
左 32
ем ビット
равным R
(0. L 1)とします。
KK1616(ключ
( 暗号化鍵)
шифрования)
XOR ⊕
Операция
XOR ⑥ ④と⑤の処理を 1 段(1 ラウン
Цикл
f で換字・転置処理
Нелинейная функция f 16
段目( (раунд)
演算 ⑥ ド)として、
Выполняем ④–⑤
2 段目(2 ラウンド)
в цикле
16
ещё
か ら15
15раз (раундыラ2–16).
段 目(15 ウンド)ま
ラウンド)
で繰り返します。
⑦ 右
⑦ 32 ビット
Объединяем (L16)と右
левый 32 ビッ
и правый
(32
(32 ビット)
бита) (32
(32 ビット)
бита) ト(R16)の2つブロックを
32-битные блоки L16 и R1664в ビッ
один
64-блок.
トのブロックに再構成します。
出力 M (64
M(64
Выход ビット)
бита) Выполнив ②–⑧
すべてのブロックで
над всеми 64-бит- DES
вотの仕組みは
Как
②~⑧を行い、再構
ными блоками, この図と同じよ!
устроен DES!
暗号文 C C
Шифртекст объединяют их в
築する
шифртекст.
図 2.6 DES における暗号化手順(暗号文の生成)
Рис. 2.6. Порядок шифрования DES (генерирование шифртекста)
ец я,
ШифртекстА
面倒な処理が
а т йс
!
ПРИХОДИТСЯ ОТ всКРЫТИЯ...
бр а ра
たくさん必要
ВЫПОЛНЯТЬ
ст
ТАК МНОГО
なんだねえ!
ЗАПУТАННЫХ
ВЫЧИСЛЕНИЙ! インボリューション
...в этом шифре
という形式で
используется
行われているの
инволюция.
Инволюция
インボリューション
インボリューション(involution)とは、 2 回変換したら元に戻るような変換のことです。
Инволюция – это такое преобразование, при двухкратном применении кото-
рого происходит возврат к первоначальному виду.
例えば、1 が 4 に、2 が 3 に、3 が 2 に、4 が 1 となる変換を考えてみましょう。この
Рассмотрим, например, такое преобразование, при котором 1 превращается
変換では、
в 4, 2 – в変換前と変換後の値は 1 対 1 преобразовании
3, 3 – в 2, 4 – в 1. В этом で対応しています。ここで、 回続けて変換を行っ
каждому 2входному значению
соответствует одно выходное значение. Попробуем выполнить его два раза.
てみましょう。すると、
1 → 4 → 1
2 → 3 → 2
3 → 2 → 3
4 → 1 → 4
となって、いずれももとの値に戻っています。このような変換をインボリューションとい
Как видите, мы получили первоначальные значения. Такое преобразование
называется инволюцией, которая тесно связана с механизмом шифрования и
います。インボリューションは、DES 暗号の復号の仕組みに深く関わっています。
расшифрования DES.
立派なもの
превосходный Feistel 型と
названа いまでも
она
сетью
шифр!
だったのね! 呼ばれ 利用されて
используется
фейстеля. и в наши дни.
いるのよ
но ведь
鍵長は長いほど
Вы
чем длиннее
со
Дл
ка
暗号の安全性が
ин
ключ, тем
ны
й
高くなるはずだろ
безопаснее шифр,
?
Бе
не так ли?
зо
па
сн
ос
ть
Кл
юч
ну,
ではтогда
56 ビット
сойдёмся на
(256)というこ
битах (256)...
56 とで…
※ ちょう けい がい
Миллион–
※億 =108 兆 10
=6,10
миллиард
12
京= 10 10 垓
– 16 9
, триллион
=1020 – 1012, квадриллион – 1015, квинтиллион – 1018.
она стремится
всегда быть
способной
раскрывать шифры,
чтобы узнавать
важные секреты!
ой,
как страшно...
брр...
в шифре DES
ключ проходит много
стадий обработки,
и получаемые при
этом значения...
..используются как
константы нелинейной
функии f в каждом из
циклов (раундов)
шифрования.
Общий секретный
共通秘密鍵 K(初期鍵)
ключK (начальный ключ) ※ PC:Permuted
PC: Permuted Choice
Choice
(64
(64 ビット)
бита)
①
① Удаляем
64 8 битов проверки
ビットの初期鍵から誤り
Перестановка
選択転置 PC выбора
− ① чётности из 64-битного на-
PС-1 1 検出に使う 8 ビットを除いて選
чального ключа и перестав-
(56 битов)
(56 ビット)
択転置 PC-1 します。
ляем остальные биты.
②
C0 D0
(28 ビット)
(28 битов) (28ビット)
(28 битов) ② 56
② ビットを、
Делим 左на
56 битов ビット(C0)
28два
と右 28 ビット
28-битных (D0)
блока: の 2 ブロッ
левый
クにします。C0 и правый D0.
Циклический сдвиг влево Циклический сдвиг влево
左巡回シフト LS1 (LS1) ③ 左巡回シフト
LS1 (LS1)
1段
Цикл
目
③
(1(раунд)
C1 D1 C0 と D0 をあるビット数だけ
③Циклически сдвинув влево на
左巡回シフト(LS 1)し、これを
ラウンド)1
(28 ビット)
(28 битов) (28 ビット)
(28 битов) определённое число битов (LS1)
④ C1 と D
блоки C10 とします。
и D0, получаем C1 и D1.
Перестановка
圧縮転置 PC сжатия
−
PС-2 2
鍵 KK
Ключ ④ C1 и D1, перестав-
11
④ C 1 と D1 を合わせ、8
Объединив ビット
(48 ビット)
(48 битов) ляем
を 除 биты
いて圧 со縮сжатием (PC-2)
転 置 PC-2 し、 и
получаем 48-битный
48 ビットの鍵 K とします。 ключ K 1 .
1
2 ~ 15 Циклы
段目(2 ~(раунды) 2–15
15 ラウンド) 繰り返し ⑤
鍵 K2K~2 –K
Ключи K1515
(48
(48 ビット)
битов) ⑤ ③と④の処理を繰り返して、
⑤ Выполняя вычисления ③–④
в цикле,
各段 (ラウンド) получаем ключи Kn
の暗号化に使用
(n = 2, 3,.., 16) для каждого
Циклический
左巡回シフト
сдвиг влево Циклический сдвиг влево する鍵 K
из раундов を生成していきます。
n шифрования.
LS16 (LS16) 左巡回シフト LS16(LS16)
Цикл
16
段目( (раунд)
C16 D16
※
(28ビット)
(28 битов) (28 битов)
(28 ビット)16 При генерировании ключей рас-
※復号鍵の生成の場合、巡回シフトにお
ラウンド16
図 2.7 DES
Рис. 暗号における暗号化鍵と復号鍵の生成手順
2.7. Порядок генерирования ключей шифрования и расшифрования DES
なるべく
только,
やさしく
пожалуйста,
説明してくれよ
попроще...
DES の非線形関数
Устройство f の仕組み функции f шифра DES
нелинейной
В каждом
Rn − 1
S-BOX は
раунде
各段で
(32
(32 ビット)
бита) ①①
入力された左
Выполняем 32 ビットの
расширение вве-
используются デ ー タ を、
дённого 鍵に合わ
32-битного せ て 48
блока
異なるものが
разные 拡大転置
Функция E E ①
расширения до 48 битов (длина ключа).
使われるのよ ビットに拡大転置 E します。
s-блоки.
(4 ビット)
(4 бита) (4
(4 ビット)
бита) (4 ビット)
(4 бита) (4
(4 ビット)
бита)
⑤ S-BOX
⑤ からの出力データ
Объединяем 4-битные блоки в
⑤ を、順番通りに結合し
32-битный 32 ビッ
блок в порядке их
(32 ビット)
(32 бита)
следования.
トに再構成します。
Выходная перестановка
出力転置 PS
PS ⑥
(32
(32 ビット)
бита) ⑥
⑥ 最後にデータを転置 PS し
Выполнив выходную переста-
новку PS, получаем
たものが、関数 выходное
f の出力にな
f (Rn − 1, Kn) 非線形関数
Выход f の出力
нелинейной функции f значение функции f.
ります。
76
76 第2章 Глава 2. Одноключевой шифр
共通鍵暗号化技術
Обобщённая модель шифрования и расшифрования DES
DES による暗号化と復号の基本構成
Шифрование
DES и расшифрование DES проводится следующим образом. Шиф-
による暗号化と復号の方法は、次のようなものです。平文の暗号化変換処理と暗号文
рование открытого текста и расшифрование шифртекста представляют собой
の復号処理は反対のプロセスになります。
взаимно обратные процессы.
Генерирование ключей Генерирование ключей
Шифрование
暗号化処理 шифрования
暗号化鍵生成処理 Расшифрование
復号処理 расшифрования
復号鍵生成処理
Ввод открытого進法)
平文入力(2 текста Секретный ключ Ввод шифртекста進数)
暗号文入力(2 Секретный ключ
秘密鍵(2 進数)
(в двоичном виде) 秘密鍵(2 進数)
(двоичное число) (в двоичном виде) (двоичное число)
(64ビット)
(64 бита) (64ビット)
(64 бита) (64ビット)
(64 бита) (64ビット)
(64 бита)
Начальная
初期転置 перестановка
IP Перестановка
選択転置 выбора
− Начальная
初期転置 перестановка Перестановка
選択転置 PC выбора
−
IP PС-1PC 1 IP
IP
PС-1 1
L0(32) R0(32) C0(28) D0(28) L0(32) R0(32) C0(28) D0(28)
Раунд 1 鍵 KK1 1
Ключ Раунд 1 Раунд 1 Ключ
鍵K K1616 Раунд 1
変換処理第 1 段目
преобразования 生成処理第 1 段目
генерирования 変換処理第 1 段目
преобразования 変換処理第 1 段目
генерирования
(48) (48)
L1(32) R1(32) C1(28) D1(28) L1(32) R1(32) C1(28) D1(28)
Ключ
鍵K K1616 Раунд 16 鍵K
Ключ K11
Раунд 16
Раунд 16
変換処理第 16 段目 生成処理第 16 段目 変換処理第
Раунд 16
16 段目 生成処理第 16 段目
преобразования (48) генерирования преобразования (48) генерирования
L16(32) R16(32) L16(32) R16(32)
Конечная перестановка
最終転置–1IP − 1 ※ Конечная перестановка
最終転置–1IP − 1 ※
IP
В скобках указана
※( )の中はビット長 IP
В скобках указана
※( )の中はビット長
(64ビット)
(64 бита) длина в битах. (64 ビット)
(64 бита) длина в битах.
Вывод шифртекста進数)
暗号文出力(2 Вывод
平文出力(2открытого進数)
текста
(в двоичном виде) (в двоичном виде)
Рис. 図
2.9. Модель
2.9 DES шифрования DES
による暗号化の基本構成 Рис. 2.10. Модельによる復号の基本構成
図 2.10 DES расшифрования DES
1970 年代のはじめに
говорят, что
в криптосистеме
ファイステルが
Lucifer , разработанной
開発した暗号化システム
фейстелем в начале 70-х
годовはXX века,
Lucifer
ブロック長
...длина 64 ビットで
ключа была
равна 112 бит, хотя тоже
鍵長 112 ビット
использовались 64-битные
だったそうよ… блоки.
так,
かすかに…
примерно.
でも
но я перечитаю
何度も読み返して
несколько раз... えらいわ!
молодец!
...и きっとマスター
обязательно
усвою его
してやるぞ!
в совершенстве! да нет,
ничего
особенного...
гладь,
ух... гладь
(на седьмом
небе от счастья) однако этот DES
でも DES って昔から
СУЩЕСТВУЕТ УЖЕ
ある暗号らしいけど
ДАВНО. ЯВЛЯЕТСЯ ЛИ ОН
今でも安全に
БЕЗОПАСНЫМ ШИФРОМ
使えるのかしら?
И В НАШИ ДНИ?
※
Надпись на повязке: «Храбость».
78
78 第 2 章 Глава 2. Одноключевой шифр
共通鍵暗号化技術
НАСЧЁТ ЭТОГО...
それがね
КОМПЬЮТЕРЫ Недостатки
DES の欠点 шифра DES
コンピュータの発達で
РАЗВИЛИСЬ ТАК,
解読できるように
ЧТО ТЕПЕРЬ ЕГО ・鍵長が短い。鍵長が短いと処理
Малая длина ключа: замедление
МОЖНО
なってきたのвзломать. скорости обработки и снижение
速度が遅くなったり、解読され
стойкости шифра.
やすくなる。
・S –BOX の設計基準がないため、
Отсутствие стандарта на S-блоки:
возможно появление слабых реали-
弱い実装が出まわりやすい。
заций.
конечно
どんな ぜったい
каким же... (резко)
無理
方法で?
образом?
(в упоении
самим собой)
...не сможешь!
б
а
м
おれにも
например,
яできる?
смогу?
ブロック暗号を вот
существуют Таблица 2.3.表Методы криптоанализа блочных шифров
2.3 ブロック暗号の解読法
解読する方法には
такие методы
криптоанализа
こういうのが Полный
блочных перебор Проверяют один за другим все
あるわшифров. 全数探索法 しらみつぶしに鍵をさがす方法
(метод «грубой возможные ключи
силы»)
Метод поиска ключа, основанный на
Дифференци- 入力の差分が、そのまま出力の差分と
свойстве операции XOR: разность
差分解読法
альный なる XORсложения
(результат 演算の性質を利用して、鍵
по модулю 2)
криптоанализ входных
をさがす方法 данных передаётся на выход без
изменений
Метод
S–BOXвероятностной оценки выходных
を線形近似(一次関数の直線
Линейный данных, основанный на линейной
線形解読法
криптоанализ で近似)して、確率的に出力を推定す
аппроксимации S-блоков
る方法
トリプル デス судя
名前からすると
そこで по названию,
В新しい暗号の
СВЯЗИ С ЭТИМ を応用-
DES это
ПОЯВИЛСЯ НОВЫЙ したものね?
разновидность
3ーDES が
ШИФР ПОД шифра des?
誕生したのよ!
НАЗЫВАНИЕМ
3-des※!
3ーDES は、
Полное название
шифра 3-DES –
TripleーDES
Triple-DES.
ともいいます。
※
3-DES уже считается небезопасным – Прим. ред.
そうよ
да. только 平文 текст
Открытый
鍵を 回使って
в 33-DES
Шифрование
алгоритм DES DES 暗号化 鍵 1 K1
Ключ
暗号化を DES
(56-битный ключ
ПРИМЕНЯЕТСЯ (56 ビットの暗号化鍵)
行うものなの
три раза. 1-й DES 暗号文 1DES
шифртекст шифрования)
Расшифрование
DES 復号 鍵 2 K2
Ключ
DES
(56-битный
(56 ビットの復号鍵)ключ
2-йDES 暗号文 2DES
шифртекст расшифрования)
Шифрование
DES 暗号化 鍵 3 K3
Ключ
DES (56 ビットの暗号化鍵)
Шифртекст (56-битный ключ
3ーDES шифрования)
3-DES 3-йDES 暗号文 3DES
шифртекст
暗号文
図 2.11 3ーDES
Рис. 2.11. の暗号化
Шифрование 3-DES
80
80 第 2 章 Глава 2. Одноключевой шифр
共通鍵暗号化技術
но если для первого да. но если
最初の暗号化と
最初の暗号化と復号に
шифрования один и тот же ключ
и同じ鍵を使えば
расшифрования... 2 度目の暗号化に
использовать для
...использовать
同じ鍵を使い
первого
и второго
один и тот же
2度目の暗号化に шифрований,
ключ, то каким бы
а復号に異なる鍵を
для расшифрования
ни былどんな鍵を使っても
ключ ВТОРОГО
шифрования,
使えば
использовать
DES と同じ結果に другой ключ, то
результат будет 56 × 2 = 112 ビットの
なるわね длина ключа 3-DES
такой же, как в 鍵長になるわよ
будет уже 56 × 2 = 112
DES, да?
битов!
※
В этом случае
эффективная
Этот 3ーDES
※この
※
метод шифрования
の方式を、EDE
длина ключа
※この場合、実質的な鍵長
так и останется 3-DES
(Encrypt Decrypt Encrypt)
называется режимом EDE
は 56 ビットのままです。
равна 56 битам. モードといいます。
(Encrypt Decrypt Encrypt).
А если НА всех
трёх ЭТАПАХ
すべてに異なる鍵を使えば
использовать
разные
56 × 3 = 168ключи,
ビットの
то длина ключа 3-DES
鍵長になるわ
будет равна
56 × 3 = 168 битов!
в связи с этим
ということで アメリカの
национальный институт AES:
стандатов и технологий
NIST(国務省標準技術局)が Advanced Encryption Standard
США (NIST) ОБЪЯВИЛ
次世代の標準となる
КОНКУРС НА ШИФР aes,
IBM や NTT など世界の企業や組織
Предложения поступали от компаний
AES 暗号を
который должен был
иから応募がありました。
организаций со всего мира, в том
公募することにしたの
стать стандартом
следующего поколения. числе от IBM, NTT и др.
р.. .
ш иф
а ?
й с
そしてついに
в конце концов
AES に採用
в качестве AES...
されたのが
ラ イ ン ダ ー ル
R...был
ijndael
выбран
アルゴリズムよ!
алгоритм «рэндал»!
いまではアメリカ政府の
сейчас он используется
機密文書の暗号化に
для шифрования
секретных документов
用いられているわ
правильства сша.
82
82 第 2 章 Глава 2. Одноключевой шифр
共通鍵暗号化技術
AES 暗号の概要
Общие о шифре AES
сведения
2000 年、Rijndael
В 2000 は、AES
году алгоритм として FIPS(Federal
«Рэндел» Information
был выбран в качестве Processing
стандарта FIPSStandard:
(Federal
Information Processing Standarts: федеральные стандарты обработки информации
連邦情報処理標準)に採用されました。Rijndael の名は、開発者であるベルギーのルーヴェ
США). Название Rijndael (по-голландски произносится «Рэндел») составлено из
ン・カトリック大学の研究者ホアン・ダーメン(Joan
имён разработчиков: Йоана Даймена (Joan Daemen) Daemen)とビンセント・ライメン
и Висцента Рэймена (Viscent
Rijmen) из Лёвенского католического
(Vincent Rijmen)にちなんでいます。 университета Бельгии.
В зависимости от длины ключа существует три типа AES, показанных в
AES は、鍵長によって、表 2.4 に示す 3 タイプがあります。
табл. 2.4.
Таблица 2.4. Типы
表 2.4 AES шифра AES
暗号の種類
Тип
タイプ Длина ключа в битах ブロック長
鍵長〔ビット〕 Длина блока в битах Число段数
〔ビット〕 раундов
AES–128 128 128 10
AES–192 192 128 12
AES–256 256 128 14
Стойкость шифра тем выше, чем длиннее ключ и чем больше число раундов.
暗号の強度は、鍵長が長いほど、段数が多いほど、大きくなります。
В основе данного шифра лежит не сеть Фейстеля, а подстановочно-переста-
暗号の構造は、Feistel
новочная 型ではなく、SPN(Substitution
сеть (Substitution Permutation
Permutation Network: SPN, SP-сеть), Network)型と呼
состоящая из
ばれるものです。入力ブロックと各段の鍵を XOR 演算し、換字と転置の処理を同時に行
множества раундов, в которых над результатом сложения по модулю 2 входного
блока и ключа соответствующего раунда одновременно выполняются замены и
いながら、段数を重ねていくというものです。
перестановки.
今後は、DES から安全性の高い
Можно предположить, AES に移行
что шифр AES, обладаю-
щий высокой криптостойкостью,
していくことになるでしょう。 в будущем заме-
нит шифр DES※.
※
AES уже по факту заменил DES – Прим. ред..
неужели
AES って ПРЕДСТАВИМ, ЧТО
DES の解読に
этот AES НА ВСКРЫТИЕ des
そんなに
ОБЛАДАЕТ 1 秒かかると
требуется
安全性がУЖ
ТАКОЙ したら
одна секунда.
高いの?
ВЫСОКОЙ
СТОЙКОСТЬЮ? сколько времени
AES の解読には
тогда, по-вашему,
どれくらい
примерно
かかると思う?на
потребуется
вскрытие AES?
аа !!
НЕСМОТРЯ НА
РАСКРЫТИЕ
устройствА S-БЛОКОВ ЗНАЧИТ, AES
И РАБОТУ МНОГИХ ОСТАНЕТСЯ
ИССЛЕДОВАТЕЛЕЙ, БЕЗОПАСНЫМ
И В БУДУЩЕМ?!
...НИКАКИХ
ПРОБЛЕМ
НА ДАННЫЙ
МОМЕНТ
ОБНАРУЖИТЬ
НЕ УДАЛОСЬ.
НО КРИПТОАНАЛИЗ
ТОЖЕ
РАЗВИВАЕТСЯ!
НЕКОТОРЫЕ СЧИТАЮТ,
ЧТО AES БУДЕТ
ОСТАВАТЬСЯ БЕЗОПАСНЫМ
ЕЩЁ ЛЕТ ДЕСЯТЬ.
А...
Я ЗНАЛ, ЧТО ТЫ
ЭТО СКАЖЕШЬ,
ДА?! ПРАВДА?!
И КОЕ-ЧТО
ПРИГОТОВИЛ!
АХ!
АХ! АХ!
ВОТ!
85
ЭТА ЭЛЕКТРОННАЯ
ВЫЧИСЛИТЕЛЬНАЯ
МАШИНА НАМНОГО
УДОБНЕЕ, ЧЕМ
СЧЁТЫ!
Й С Я!
РАДУ
ДРР
ДРР
ДРР
Я ЖЕ ПРОСИЛА
НЕ КАЛЬКУЛЯТОР..,
...А КОМПЬЮТЕР!!
КАКОЙ ЖЕ ТЫ,
БРАТЕЦ, ДУРАК...
ТЕПЕРЬ попрактикуйтесь
в шифровании
и расшифровании
с помощью ОПИСАНИя
УПРОЩЁННОГО DES,
НАЧИНАЮЩЕгоСЯ на
СЛЕДУЮЩЕЙ СТРАНИЦе.
А В ГЛАВЕ 3 ВАС
ЖДЁТ КОЕ-ЧТО
ОЙ...
ИНТЕРЕСНОЕ:
Я Открою КЛЮЧ,
КОТОРЫЙ ДО ЭТОГО
БЫЛ СЕКРЕТНЫМ!
Как暗号では、どのように暗号化と復号が行われるのでしょうか。DES
DES же осуществляется шифрование и расшифрование DES? Попробуем
暗号の簡略版を用い разо-
браться в этом с помощью облегчённой версии DES.
て説明します。
Преобразование
2 進データへの変換 в двоичные данные
Данные,
DES используемые во всех современных
暗号に限らず現代暗号では、2 шифрах, включая DES, вообще гово-
進データを取り扱うので、文章にせよ数字にせよ、平文
ря, являются двоичными, поэтому открытый текст, состоящий из букв и цифр, необхо-
を 2 進データに変換しておく必要があります。ここでは、表
димо 2.7 に示す 16 только
преобразовать в двоичные числа. Здесь мы будем использовать 文字(1 16文字は意味
симво-
лов (один из которых является ничего не значащим
のない「捨字」)のみを用いることにし、1 文字を 4 ビットの 2 進コードに対応づけたものに変 «исключённым символом»). Пре-
образовав эти символы в соответствующие им 4-битные двоичные коды, мы выразим
換して、平文を「0」と「1」の系列で表すことにします。
данные в виде ряда, состоящего из нулей и единиц.
表 Символы
Таблица 2.7. 2.7 文字とи2 進コード
их двоичные коды
Генерирование
DES 暗号文の生成 шифртекста DES
Длина блока в реальном шифре DES равна 64 битам, но здесь мы будем использо-
DES
вать 暗号では 64шифр
упрощённый ビットを DES 1 ブロックとしていますが、一般性を損なうことなく、わかりや
с 8-битным блоком и двумя раундами шифрования, что
すく説明するために、8
позволит ビットを
более наглядно 1 ブロックとし、2
описать 段の簡易 DES
общие закономерности. 暗号を考えます。DES
Генерирование шифртекста 暗号
DES основано на двух процессах: шифровании и генерировании ключей (рис. 2.12).
の生成は、暗号化と鍵生成の 2 つの処理に基づいて行われます(図 2.12)。
Сначала с помощью табл. 2.7 представим открытый текст, который мы хотим за-
まず最初に図
шифровать, в виде に示すように、暗号化したい平文を表
2.12последовательности какにより「0」と「1」の列に変換
нулей и единиц,2.7 показано на рис. 2.12, а за-
тем перемешаем 8-битные двоичные данные
します。8 ビットの 2 進データは、まず初期転置 IP によってランダム化されます。どのように с помощью начальной перестановки IP
в соответствии с табл. 2.8.
ランダム化されるかについては、表
Смысл табл. 2.8 заключается 2.8 の通りです。
в том, что, например, 1-й слева бит 8-битного блока
введённого открытого текста становится
表 2.8 は、8 ビットずつにブロック化された平文入力に対して、例えば、入力の第 5-м слева битом на выходе начальной пере-
1 ビットは
становки, 2-й слева бит –1-м слева битом и т. д. (рис. 2.13).
初期転置で出力の第 5 ビットに転置されることを意味します(図 2.13)。以下、左から右へとい
う順に入力の第 2 ビットは出力の第 1 ビットに、……というように置換します。
初期転置
Начальная IP IP
перестановка
ビット
(44 бита) 4 ビット
(4 бита)
L0 R0
6 ビット
(6 битов) 鍵 K1 K1
Ключ
f (R 0 , K 1 ) ER0 (復号時は鍵 K 2)
(при расшифровании –
1 ⊕ f ключ K2)
段
4 ビット 6 ビット
Раунд
(4 бита) (6 битов)
目 1
L1=R0 R1=L0 ⊕ (R
f 0,K1)
6 ビット
(6 битов) Ключ
鍵 K2K2
(
f R1,K2) ER1 (при расшифровании
(復号時は鍵 K 1) –
⊕ f ключ K1)
2 ビット
(44 бита) 6 ビット
(6 битов)
段
Раунд
目 2
L2=R1 R2=L1 ⊕(
f R1,K2)
L'
2 =R2 R'
2 =L2
4 ビット
(4 бита) 4 ビット
(4 бита)
Конечная
最終転置 IP − IP
перестановка 1 –1
8 ビット
(8 битов)
Выходной
暗号文出力 шифртекст (L",2 R")
2
Таблица 2.8.表Начальная
2.8 初期転置 перестановка
IP IP
入力ビット位置
Позиции входных битов,jj 1 2 3 4 5 6 7 8
出力ビット位置
Позиции выходных битов,kk 5 1 6 2 7 3 8 4
表 2.9 初期転置(表
Таблица 2.9. Начальная перестановка2.8 の別表現)
(другая форма записи табл. 2.8)
出力ビット位置
Позиции выходных битов,kk 1 2 3 4 5 6 7 8
入力ビット位置
Позиции входных битов,jj 2 4 6 8 1 3 5 7
88
88 第 2 章 Глава 2. Одноключевой шифр
共通暗号化技術
入力ビット位置
Позиции входных битов
1 2 3 4 5 6 7 8
1 2 3 4 5 6 7 8
出力ビット位置
Позиции выходных битов
図 2.13 初期転置
Рис. 2.13. Начальная перестановка
IP IP
出力ビット位置
Позиции выходных битов
1 2 3 4 5 6 7 8
1 2 3 4 5 6 7 8
Позиции
入力ビット位置 входных битов
図 записи
Рис. 2.14. Другая форма IP の別表現
начальной
2.14 初期転置 перестановки IP
入力ビット位置
Позиции входных битов, k 1 2 3 4 5 6 7 8
出力ビット位置
Позиции выходных битов,j j 2 4 6 8 1 3 5 7
Другими словами,
すなわち、表 2.8 と表совместив табл. 2.8 и 2.10, можно заметить, что, 2.8
2.10 とを連続して形で表現してみると、例えば、表 например,
で入力の第 5-й5
входной бит в табл. 2.8 оказывается на выходе 7-м битом, а затем, в табл. 2.10, 7-й бит
ビットは第
опять 7 ビットとして出力されます。さらに、その第
возвращается в первоначальную позицию 5-го бита7 ビットは表 2.10 より第 5 ビットに
(рис. 2.15).
なり、もとの第 5 ビットの位置に戻ってくることがわかります(図 2.15)。
初期転置
Начальная перестановка
IP IP
1 2 3 4 5 6 7 8
最終転置
Конечная IP − 1 IP –1
перестановка
1 2 3 4 5 6 7 8
出力ビット位置
Позиции выходных битов
Рис. 2.15. Совместное действие перестановок:
図 2.15 初期転置 IP と最終転置 IPначальной
-1
IP и конечной IP –1
の組み合わせ
Шаг 11
ステップ
初期転置として、表 2.8 の初期転置表に基づいて、平文(11000010)=「MC」の転置出力
Используя табл. 2.8, выполняем начальную перестановку IP открытого текста
データを作成します(図
11000010 = «MC» (рис.2.16)。
2.16).
MC 1 1 0 0 0 0 1 0
初期転置 IP
Начальная перестановка IP
Выходные данные
転置出力データ 1 0 0 0 1 0 0 1
начальной перестановки
L0 R0
図 2.16 平文の初期転置
Рис. 2.16. IP による出力データ
Начальная перестановка ( IP) открытого текста
90
90 第 2 章 Глава 2. Одноключевой шифр
共通暗号化技術
ステップ
Шаг 22
ステップ 1 で得られた転置出力データを、上位
Делим выходные 4 ビット(左側)L
данные начальной перестановки, 0 と下位
полученные 4 ビット(右側)
на шаге 1, на стар-
ший (левый) 4-битный блок L и
R0 に分割します。図 2.16 より、以下のようになります。
0 правый (младший) 4-битный блок R 0, как показано на
рис. 2.16.
Шаг 33
ステップ
表Используя
2.11 の拡大転置 табл.E(Expansion
2.11, проводим перестановку с расширением E (Expansion
Permutation)に基づいて、式(3)の下線部分の第 3 ビッ
Permutation) блока R0, продублировав 3-й и 4-й биты, подчёркнутые в выражении (3)
トと第 4 ビットを重複させて、R0 を拡大転置します(4 ビットを 6 ビットにビット数を増やし、
(в результате этой операции битность числа увеличится с 4 до 6, кроме того, изменятся
ビット位置を変えます)
номера 。
позиций битов).
表 2.11 拡大転置сEрасширением E
Таблица 2.11. Перестановка
出力ビット位置
Позиции выходных битов,kk 1 2 3 4 5 6
入力ビット位置
Позиции входных битов,jj 3 4 1 2 3 4
Шаг 44
ステップ
式(4) の 拡 大 転 置 し た ER0 と、 鍵 K1=(110001) と の 排 他 的 論 理 和 を 計 算 し ま す( 図
Складываем по модулю 2 результат перестановки с расширением ER0 (4) и ключ
K2.17) 。
1 = 110001 (рис. 2.17).
R0 1 0 0 1
ス 拡大転置 E E
Перестановка с расширением
ER0 0 1 1 0 0 1
⊕ ⊕ ⊕ ⊕ ⊕ ⊕
K1 1 1 0 0 0 1
ER0(K1) 1 0 1 0 0 0
図 2.17
Рис. 2.17. [ステップ
Порядок вычислений
4]の計算の流れ шагов 3 и 4
列 番 号
Номера строк
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
行 番 号
0 14 4 13 1 2 15 11 8 3 10 6 12 5 9 0 7
столбцов
Номера
1 0 15 7 ④ 14 2 13 1 10 6 12 11 9 5 3 8
2 4 1 14 8 6 2 11 15 12 9 7 3 10 5 0
3 15 12 8 2 4 9 1 7 5 11 3 14 10 0 6 13
Таблица 2.12 состоит из четырёх строк с номерами 0, 1, 2, 3, каждую из которых
表 2.12рассматривать
можно には、行番号 0,как 1,2, выходной
3 で表示された алфавит шифра моноалфавитной замены. Выби-
4 種類の換字表が用意されています。このとき、
раем строку по значению 2-битного двоичного числа (диапазон принимаемых значе-
式(6)の 6 ビットのうち最初のビット(最左端で第 1 ビット)と最後のビット(最右端で第 6
ний (0)10–(3)10), составленного из 1-го (крайнего слева) и 6-го (крайнего справа) битов
ビット)の
выражения 2 ビットが指示する値により、換字表の種類を表す行番号を選別します。そして、
(6): (101000)2 = (10)2 = (2)10. Выбираем столбец по значению 4-битного дво-
残りの 4 ビットが指示する値により、列番号(0
ичного числа (диапазон принимаемых значений: ~ 15)の つを決定し、換字を選択します。
(0)101–(15)10), составленного из осталь-
ных битов(6)
例えば、式 выражения
の(① 0100 (6):⓪)
(101000)
2 に対しては、2 = (0100)
(①⓪) 2 =2(4) 10. 10 行目を選び、次に(0100)
=(2) 2=
(4)10
Выбираем в табл. 2.12 ячейку на пересечении строки № 2 и столбца № 4 и преобра-
列目の交差する値(13)10 を選択した後(表 2.12 の□で囲む位置)、2 進数に変換して(1101)2
зуем содержащееся в ней десятичное число к двоичному виду: (13) 10 = (1101) 2.
を得ます。さらに、得られた(1101)
Полученное двоичное число подвергаем 2 を表 2.13 の出力転置 (PS に基づいて転置処理すると、
выходной перестановке PS по табл. 2.13:
(1101) → (0111)となります(図 。なお、 ( )
(1101)2 → (0111)2 (рис. 2.18). Использованные здесь
2.18) 2 および( ) 10 の添字はそれぞれ
обозначения 2 進数、
( )2 и ( )10 указывают,
10 進数表示を示します。
является ли число в скобках двоичным или десятичным соответственно.
Таблица 2.13. Выходная перестановка PS после
表 2.13 圧縮換字変換の出力転置 PS замены со сжатием
入力ビット位置
Позиции входных битов,jj 1 2 3 4
出力ビット位置
Позиции выходных битов,kk 3 4 1 2
ER0(K1) 1 0 1 0 0 0
圧縮換字変換(
Замена S )
со сжатиемPS
1 1 0 1
PS の出力転置
Выходная перестановка PS
f 0,K1)
(R 0 1 1 1
Рис. 図
2.5. [ステップ
Порядок
2.18 вычислений
5]計算の流れшага 5
92
92 第 2 章 Глава 2. Одноключевой шифр
共通暗号化技術
Рассматривая преобразования шага 4: сложение по модулю 2 с ключом K1, замену
со сжатием S и выходную перестановку PS как единую нелинейную функцию f, мы мо-
以上の一連の処理計算が圧縮換字・転置変換です。この変換を非線形関数 f として、
жем записать:
Функция f нелинейна, так как она не удовлетворяет условию f(ax + by) = af (x) + bf (y).
と表すことにします。ここで、非線形関数とは、f
Например, проходящая через начало координат(ax + by)= 1-го
функция af(x)+ bf(y)を満たさない関数
порядка f (x) = 2x удов-
のことです。f(x)
летворяет этому =2x のような原点を通る一次関数は、この条件を満たすので線形ですが、
условию и поэтому является линейной, а квадратичная функция
f (x) = x22 этому условию не удовлетворяет и поэтому является нелинейной.
f =x のような二次関数は、条件を満たさないので非線形関数です。
(x)
Шаг
ステップ66
図В2.12
соответствии с рис. 2.12, используя
より、1 段目の出力として上位 выражения (2),
4 ビット(左側)L (3) и (7), находим выходное
1 と下位 4 ビット(右側)R1 を、式
значение 1-го раунда, состоящее из двух 4-битных блоков: старшего (левого) L1 и млад-
(2)、式(3)
шего 、式(7)を利用して、次式により求めます。
(правого) R1.
ステップ
Шаг 77
表Используя
2.11 の拡大転置 табл.E に基づき、R перестановку с расширением E (Expansion
1 を拡大転置します。
2.11, проводим
Permutation) блока R1 (10):
ステップ
Шаг 88
式(11)の拡大転置した ER21 と、鍵
Складываем по модулю K2 =(111000)との排他的論理和を計算します。
результат перестановки с расширением ER1 (11) и ключ
K2 = 111000:
ステップ
Шаг 99
Чтобы выполнить
式(13)の(⓪ над
0011 ①) выражением
2 に対しては、
(13)2 перестановку
(⓪①) со сжатием S, выбираем
=(1)10 行目を選び、次に(0011) 2 =
(3)10 列
в табл. 2.12 ячейку на пересечении строки с номером (000111)2 = (01)2 = (1)10 и столбца
с номером (000111)2 = (0011)2 = (3)10.
Пример использования упрощённого DES 93
93
Преобразовав десятичное значение этой ячейки в двоичное число: (4)10 = (0100)2,
подвергаем его выходной перестановке PS по табл. 2.13:
(0100)→(0001) (14)
となり、最終的に、
Все преобразования шага 9 можно записать в виде:
f(R1, K2)=(0001) (15)
と表されます。
Шаг 10
В соответствии с рис. 2.12, используя выражения (8), (10) и (15), находим выходное
значение 2-го раунда, состоящее из двух 4-битных блоков: старшего (левого) L2 и млад-
шего (правого) R2.
Шаг 11
В соответствии с рис. 2.12 меняем местами старший (L2) и младший (R2) 4-битные
блоки (рис. 2.19).
L'
2 = R2 =
(1000) (19)
R'
2 = L2 =(1111) (20)
L2 R2
1 1 1 1 1 0 0 0
1 0 0 0 1 1 1 1
L'
2 R'
2
Шаг 12
В соответствии с табл. 2.10 выполняем конечную перестановку IP –1 двоичных дан-
ных рис. 2.19. 8-битное число, составленное из старшего (L2'') и младшего (R2'') 4-бит-
ных блоков, является искомым шифртекстом DES (рис. 2.20).
L'
2 R'
2
1 0 0 0 1 1 1 1
Конечная перестановка IP –1
Шифртекст DES 1 1 1 0 1 0 1 0
L"
2 R"
2
Шаг 1
Используя табл. 2.8, выполняем начальную перестановку IP шифртекста 11101010
(рис. 2.21).
Шаг 2
Делим выходные данные начальной перестановки, полученные на шаге 1, на стар-
ший (левый) 4-битный блок L0 и правый (младший) 4-битный блок R0. Сравнивая
рис. 2.21 с выражениями (19) и (20), мы можем записать:
L0 =(1000)
(= L'
2 ) (24)
R0 =(1111)
(= R'
2 ) (25)
暗号文
Шифртекст 1 1 1 0 1 0 1 0
初期転置 IP
Начальная перестановка
Выходные данные
転置出力データ
начальной перестановки 1 0 0 0 1 1 1 1
L'
2 R'
2
L0 R0
Рис. 2.21. Начальная перестановка
図 2.21 暗号文の初期転置 ( IP) шифртекста
IP によるデータの出力
ステップ33
Шаг
表 2.11 の拡大転置
Используя E に基づき、式(25)の下線部分の第
табл. 3 ビットと第 4Eビットを重複させて、
2.11, проводим перестановку с расширением блока R0, продубли-
Rровав 3-й и 4-й биты, подчёркнутые в выражении (25).
0 を拡大転置 E します。
ステップ
Шаг 44
式(25)を拡大転置した ER0 2と、鍵
Складываем по модулю K2 =(111000)との排他的論理和を計算します。
результат перестановки с расширением ER0 (26) и ключ
K2 = 111000.
ER0(K2)
= ER0 ⊕ K2 (27)
=(111111)⧻(111000)
=(000111) (28)
ステップ
Шаг 55
表 2.12 の圧縮換字変換に基づき、式(28)を圧縮換字変換します。式(28)の(⓪ 0011 ①)2
Чтобы выполнить над выражением (28) замену со сжатием S, выбираем в табл. 2.12
に対しては、
ячейку на (⓪①) 2 =(1)
пересечении 10 行目を選び、次に(0011)
строки с номером (000111)2 2==(3) 10 列目の交差する値(4)
(01)2 = 10 を
(1)10 и столбца с номером
(000111)2 = (0011)2.12
選択したあと(表 2 = (3)10.
の○で囲まれた位置)、2 進数に変換して(0100)2 を得ます。さらに
Преобразовав десятичное значение этой ячейки в двоичное число: (4)10 = (0100)2,
(0100)2 は表его
подвергаем の出力転置
2.13выходной PS により、(0100)
перестановке →(0001)となり、最終的に、
PS по табл. 2.13: (0100)2 → (0001)2.
Все преобразования шага 5 можно записать в виде:
f(R0, K2)=(0001) (29)
と表されます。
96
96 第 2 章 Глава 2. Одноключевой шифр
共通暗号化技術
ステップ
Шаг 66
図В2.12 より、1 段目の出力として上位
соответствии 4 ビット(左側)L
с рис. 2.12, используя 1 と下位
выражения (24), (25)4иビット(右側)R 1 を、式
(29), находим выход-
ное значение 1-го раунда, состоящее
(24)、式(25)、式(29)を利用して、次式により求めます。 из двух 4-битных блоков: старшего (левого) L1 и
младшего (правого) R1.
ステップ
Шаг 77
表Используя
2.11 の拡大転置 табл.E に基づき、R 1 を拡大転置します。
2.11, проводим перестановку с расширением E (Expansion
Permutation) блока R1 (32):
ステップ
Шаг 88
式(33)の拡大転置した ER21 と、鍵
Складываем по модулю K1 =(110001)との排他的論理和を計算します。
результат перестановки с расширением ER1 (33) и ключ
K1 = 110001:
ステップ
Шаг 99
式(35)の(①
Чтобы выполнить ⓪)выражением
0100над 2 に対しては、 (①⓪) 2=(2)
(35) замену 行目を選び,次に(0100)
со10сжатием 2=
S, выбираем в табл. (4)
2.1210
ячейку на пересечении строки с номером
列目の交差する値(13) を選択したあと(表 2.12 の□で囲んだ位置)
(101000)2 = (10)2 = (2)10 и столбца с номером
、2 進数に変換して
(101000)2 = (0100)2 = (4)1010.
(1101) 2 を得ます。さらに、表
Преобразовав десятичное 2.13 の出力転置
значение PS により、
этой ячейки в двоичное число: (13)10 = (1101)2,
подвергаем его выходной перестановке PS по табл. 2.13:
(1101)→(0111) (36)
Все преобразования шага 9 можно записать в виде:
となり、最終的に、
f(R1, K1)=(0111) (37)
と表されます。
L2 = R1 =(1001) (38)
R2 = L1 ⧻ f(R1, K1) (39)
=(1111)⧻(0111)=(1000) (40)
と求められます。
Шаг 11
В соответствии с рис 2.12 меняем местами старший (L2) и младший (R2) 4-битные
блоки (рис. 2.19).
L'=
2 R2 =(1000) (41)
R'=
2 L2 =(1001) (42)
L2 R2
1 0 0 1 1 0 0 0
1 0 0 0 1 0 0 1
L'
2 R'
2
Шаг 12
В соответствии с табл. 2.10, выполняем конечную перестановку IP –1 двоичных дан-
ных рис. 2.22 (рис. 2.23).
L"=
2 (1100) (43)
R"=
2 (0010) (44)
得られた平文 1100 0010
Открытый текст
「M」 「C」
1 0 0 0 1 0 0 1
Конечная перестановка
最終転置 IP IP−–11
Открытый текст
平文 1 1 0 0 0 0 1 0
L"
2 (=‘M’) R"
2 (=‘C’)
図 2.23
Рис. [ステップ
2.23. Вычисления шага 12
12]の計算の流れ
こうして得られた
Полученное нами 8 ビットの出力データが平文に相当し、式(43)と式(44)の
8-битное двоичное число является открытым текстом,2 進コードはそ
а двоич-
ные коды выражений
れぞれ表 2.7 より「M」 、 (43) и (44) соответствуют символам «M»,
「C」という文字であることから、DES 暗号文が解読できたことになります。 «C» по табл. 2.7. Таким
образом, расшифрование шифртекста DES было проведено правильно.
以上のことから、DES 暗号における暗号化処理と復号処理を対比させてみると、暗号化処
На основании вышеизложенного, сопоставив этапы шифрования и расшифрова-
ния DES, мы можем убедиться, что расшифрование происходит благодаря выполне-
理の流れをまったく逆にたどることにより、復号処理を実行していることが確認できます(図
нию в обратном порядке того же самого процесса, который использовался для шифро-
2.24)。
вания (рис. 2.24).
Шифрование
暗号化処理の流れ Расшифрование
復号処理の流れ
① 平文(11000010)
Открытый текст 暗号文(11101010)
Шифртекст ❶
② Начальная
初期転置(10001001)
перестановка 初期転置(10001111)
Начальная перестановка ❷
③ L0(1000)R0(1001) L0(1000)R0(1111) ❸
鍵 KK11
Ключ 鍵 KK22
Ключ
④ L1(1001)R1(1111) L1(1111)R1(1001) ❹
鍵
КлючKK22 鍵 KK11
Ключ
⑤ L2(1111)R2(1000) L2(1001)R2(1000) ❺
⑥ 2 (1000)R'
L' 2 (1111) 2 (1000)R'
L' 2 (1001) ❻
最終転置
Конечная перестановка(11101010) 最終転置
Конечная перестановка(11000010)
⑦ ❼
Шифртекст
暗号文 Открытый
平文 текст
上位 4 ビット
Обратите Li と下位 4наビット
внимание то, Ri が
入れ換わっていることに注意(i =(R0,
что старший ( L i) и младший i) 1,2)
4-битные блоки на этих этапах
меняются местами (i = 0, 1, 2)
Теперь опишем
続いて、DES порядок генерирования ключей шифрования и расшифрования
暗号の共通鍵について暗号化鍵、および復号鍵の生成手順を説明します。8 ビッ из
общего ключа DES. Сначала, положив 8-битный общий ключ (начальный ключ) K0 рав-
トの共通鍵(初期鍵)K 0 を、例えば、
ным, например, следующему значению:
共通秘密鍵
Общий K0K0
секретный ключ
※1
В случае расшифрования все
циклические сдвиги влево заменяются на
選択転置
Перестановка PC−1PС–1
с выбором
циклические сдвиги вправо.
※注
※2 1 復号鍵の生成の場合、左を右に読み換える
В случае расшифрования K'
0
※注ключи
2 復号鍵の生成の場合、鍵 K2,K1 の順に得られる
применяются в порядке K2, K1.
ビット
4 бита 4 ビット
бита
C0 D0
左 1 ビット巡回シフト
Циклический сдвиг влево на 1 бит 左 1 ビット巡回シフト
Циклический сдвиг влево на 1 бит
1
段
Раунд
目 1
ビット
66 битов C1 D1
ビット
4 бита 44 ビット
бита
鍵 K11
Ключ 圧縮転置
Перестановка PC−2PС–2
со сжатием
左 2 ビット巡回シフト
Циклический сдвиг влево на 2 бита 左 2 ビット巡回シフト
Циклический сдвиг влево на 2 бита
2
段
Раунд
目 2
C2 D2
ビット
66битов
ビット
4 бита 44 ビット
бита
鍵 K2
Ключ 圧縮転置
Перестановка PC−2PС–2
со сжатием
図 2.25 暗号化鍵と復号鍵の生成手順
Рис. 2.25. Порядок генерирования ключей шифрования и расшифрования
ステップ
Шаг 11
В соответствии с табл. 2.14
式(45)の共通鍵(秘密鍵)K −
перемешиваем биты общего (секретного) ключа K0 (45)
0 を、表 2.14 の選択転置 PC 1 に基づき、ランダム化すると、
с помощью операции перестановки с выбором PC-1 (рис. 2.26).
K'=
0 (00110101) (46)
が得られます(図 2.26)。
100
100 第 2 章 Глава 2. Одноключевой шифр
共通暗号化技術
Разделяем ключ K0' (46)
ここで、式(46)の鍵 K'を、上位
0 4 ビット
на старший (C0) C と下位 4 ビット
и0младший D0 に分けて、
(D0) 4-битные блоки.
Табл. 2.14.表Перестановка
2.14 選択転置 PC −1
с выбором PС-1
Старший
上位の4-битный
4 ビット блокCiC i Младший
下位の4-битный
4 ビット блокDD
i i
Позиции
入力ビット位置 входных битов,j j 1 2 3 4 5 6 7 8
出力ビット位置
Позиции выходных битов,kk 8 7 1 3 6 2 5 4
Начальный初期鍵
ключ KK00 1 0 0 1 1 0 0 1
K'
0 0 0 1 1 0 1 0 1
C0 D0
Рис. 2.26. 図
Перастановка −1
с выбором
2.26 選択転置 PC PC–1
ステップ
Шаг 22
表В2.15 の左巡回シフトのビット数より、
соответствии 1 段目の左巡回シフトのビット数は
с табл. 2.15 величина 1 ビットなので、
циклического сдвига в 1-м раунде равна 1 би-
ту, поэтому мы циклически сдвигаем все биты каждого из
C0 と D0 の各ビットを 1 ビット左へ巡回シフトし、その結果を C1 と D1 と表します(図 2.27)。 блоков C0 и D0 по отдельно-
сти на одну позицию влево и обозначаем полученные результаты C1 и D1 (рис. 2.27).
表 2.15 左巡回シフトのビット数
Таблица 2.15. Величины циклического сдвига влево
段数
Номера раундов 1 2
シフトビット数
Величины циклического сдвига 1 2
Циклический
1 ビット сдвиг
влево на 1 бит
左巡回シフト
0 1 1 0 1 0 1 0
C1 D1
ステップ
Шаг 33
В соответствии
表 2.16 の圧縮転置 PC−2с табл. 2.16 объединяем
に基づき、 блоки C1 (49)
C1 と D1 全体(式(49) и D1 (50)
、式(50) )を с 8помощью
ビットから переста-
6 ビッ
новки со сжатием PC-2 (битность уменьшается с 8 до 6) и получаем ключ K1, который
トに圧縮変換して、1 段目の暗号化に使う鍵
будет использоваться K1 が得られます(図
в первом раунде шифрования 2.28)。
(рис. 2.28).
出力ビット位置
Позиции выходных битов,kk 1 2 3 4 5 6
入力ビット位置
Позиции входных битов,j j 7 5 1 8 6 2
C1 D1
0 1 1 0 1 0 1 0
圧縮転置
Перестановка PC−2 PC-2
со сжатием
鍵K
Ключ K11 1 1 0 0 0 1
図 2.28.
Рис. PC−2 による処理[ステップ
Перастановка
2.28 圧縮転置 со сжатием PC-23]
(шаг 3)
Раз за разом повторяя вычисления шагов 2–3, мы сможем один за другим получать
以下同様に、ステップ 2 から ステップ 3 を反復して計算することにより、次々と暗号化に使
ключи, которые будут использоваться для шифрования.
う鍵を得ることができます。
102
102 第 2 章 Глава 2. Одноключевой шифр
共通暗号化技術
ステップ
Шаг 44
表В 2.15 の左巡回シフトのビット数より、
соответствии 段目の左巡回シフトのビット数は
с табл. 2.15 величина2 циклического 2 ビットなので、
сдвига влево во 2-м раунде рав-
на 2 битам, поэтому мы циклически сдвигаем все
C1 と D1 の各ビットを 2 ビット左へ巡回シフトし、その結果を C2 と D2 と表します(図биты каждого из блоков C1 и2.29)
D1 по
。
отдельности влево на 2 бита и получаем C2 и D2 (рис. 2.29).
C2 =(1001) (52)
D2 =(1010) (53)
C1 D1
0 1 1 0 1 0 1 0
2 ビット
Циклический сдвиг
左巡回シフト
влево на 2 бита
1 0 0 1 1 0 1 0
C2 D2
ステップ
Шаг 55
表В2.16 の圧縮転置сPC
соответствии −2 に基づき、
табл. C2 と D2 全体(式(52)
2.16 объединяем блоки C2 (52)、式(53)
и D2 (53))を 8 ビットから
с помощью 6 ビッ
переста-
новки со сжатием PC-2 (битность уменьшается с 8 до 6) и получаем ключ K2, который
トに圧縮変換して、2 段目の暗号化に使う鍵 K2 が得られます(図 2.30)。
будет использоваться во втором раунде шифрования (рис. 2.30).
C2 D2
1 0 0 1 1 0 1 0
PC−2
сжатием PC-2
Перестановка со圧縮転置
鍵K
Ключ K22 1 1 1 0 0 0
図 2.30 圧縮転置
Рис. 2.30. PC−2
Перастановка соによる処理[ステップ 5] 5)
сжатием PC-2 (шаг
ステップ11
Шаг
В соответствии с табл. 2.14
式(45)の共通鍵(秘密鍵)K −
перемешиваем биты общего (секретного) ключа K0 (45)
0 を、表 2.14 の選択転置 PC 1 に基づき、ランダム化します。
с помощью операции перестановки с выбором PC-1.
K'
0 =(00110101) (55)
C0 =(0011) (56)
D0 =(0101) (57)
ステップ22
Шаг
表 2.17 の右巡回シフトのビット数より、
В соответствии 1 段目のビット数は
с табл. 2.17 величина 1 ビットなので、
циклического сдвига 0とD
вправо вC1-м 0 の各ビッ
раунде рав-
на 1 биту, поэтому мы циклически сдвигаем
トを 1 ビット右へ巡回シフトし、その結果を C1 と D1 と表します(図 2.31)。
все биты каждого из блоков C 0 и D0 по от-
дельности на одну позицию вправо и обозначаем полученные результаты C 1 и D1
(рис. 2.31).
C1 =(1001) (58)
D1 =(1010) (59)
表 2.17 右巡回シフトのビット数
Таблица 2.17. Величины циклического сдвига вправо
段数
Номера раундов 1 2
シフトビット数
Величины циклического сдвига 1 2
104
104 第 2 章 Глава 2. Одноключевой шифр
共通暗号化技術
C0 D0
0 0 1 1 0 1 0 1
Циклический
1 ビットсдвиг
вправо на 1 бит
右巡回シフト
1 0 0 1 1 0 1 0
C1 D1
図 2.31 右巡回シフトによる処理[ステップ
Рис. 2.31. Операции циклического сдвига вправо
2] (шаг 2)
ステップ
Шаг 33
表В2.16 の圧縮転置сPC −2 に基づき、C1 と D1 全体(式(58)、式(59))を 8 ビットから 6 ビッ
соответствии табл. 2.16 объединяем блоки C1 (58) и D1 (59) с помощью переста-
トに圧縮変換して、1
новки 段目の復号に使う鍵
со сжатием PC-2 K2 が得られます(図
(битность уменьшается 。
с 8 до 6) и 2.32)
получаем ключ K2, который
будет использоваться в первом раунде расшифрования (рис. 2.32).
со сжатиемPCPC-2
Перестановка圧縮転置 −2
鍵 K2 K2
Ключ 1 1 1 0 0 0
Рис.図2.32.
2.32 圧縮転置 PC−2 による処理[ステップ
Перестановка со сжатием PC-23]
(шаг 3)
ステップ
Шаг 44
表В2.17 の右巡回シフトのビット数より、
соответствии 2 段目のビット数は
с табл. 2.17 величина ビットなので、
циклического 2сдвига вправоCво1と D1 の各ビッ
2-м раунде
равна 2 битам, поэтому мы циклически сдвигаем
トを 2 ビット右へ巡回シフトし、その結果を C2 と D2 と表します(図 2.33)。 все биты каждого из блоков C 1 и D1
по отдельности на две позиции вправо на 2 бита и получаем C2 и D2 (рис.2.33).
Циклический
2 ビットсдвиг
вправо на 2 бита
右巡回シフト
0 1 1 0 1 0 1 0
C2 D2
Рис.
図 2.33. Операции циклического сдвига
2.33 右巡回シフトによる処理[ステップ 4] вправо (шаг 4)
ステップ
Шаг 55
表 2.16 の圧縮転置 PC−с2табл.
В соответствии に基づき、 と D2 全体(式(61)
2.16C2объединяем блоки、式(62)
C 2 (61) )を ビットから
и D 28 (62) 6 ビッ
с помощью
перестановки со сжатием
トに圧縮変換して、2 PC-2 (битность
段目の復号に使う鍵 8 до。6) и получаем ключ K1,
уменьшается с2.34)
K1 が得られます(図
который будет использоваться во втором раунде расшифрования (рис. 2.34).
C2 D2
0 1 1 0 1 0 1 0
圧縮転置
Перестановка PC−
со сжатием PC-2
2
Ключ 鍵
K1K1 1 1 0 0 0 1
図 2.34 圧縮転置
Рис. 2.34. PC−со
Перестановка 2 による処理[ステップ 5]5)
сжатием PC-2 (шаг
以上
Наのосновании
結 果 か ら、 вышеприведённых
復 号 に 使 う 鍵( 式(60)、 式(63))
результатов, と 暗 号 化 ключи
сравнивая に 使 う 鍵( 式(51)、 式
расшифрования
(60), (63) с ключами шифрования (51), (54), можно сделать вывод, что вышеописанным
(54))との対比から、暗号化に使う鍵が得られる順(K1,K2 の順)とは逆順(K2,K1 の順)
способом можно получать ключи расшифрования в порядке K2, K1, обратном порядку
で復号に使う鍵が得られることがわかります。
получения ключей шифрования (K1, K2).
106
106 第 2 章 Глава 2. Одноключевой шифр
共通暗号化技術
Глава 3
第3章
公開鍵暗号化技術
ш ифр
с открытым
ключом
3 ー 1 公開鍵暗号の基本
3-1 Основы шифра с открытым ключом
ин Магази
Магаз н
пьютеры
Дёшево
Поздравляю с
よかったわね!
долгожданным
買ってもらえて
компьютером!
えへへ
хе-хе
お兄ちゃん
спасибо,
ありがとう
братец!
ох...
в ちぇっ
моём кошельке いつだって
а сам только
すっからかんだよ
стало совсем
и ラーメンчто ест
делает,
пусто!
食べてるくせに
«рамэн»...
これから мне
придётся
当分ラーメン
переходить на
лапшу рамэн!
ばっかりだな…
108
108
第 3 章Глава 3. шифр с открытым ключом
公開鍵暗号化技術
что?!
パソコンがあれば
с помощью おいおい
ты же
いろんなことが
компьютера
勉強に
говорила,
можно многое...
できるわ… 使うんだろ?
что для
гладь
えへへ учёбы?
хе-хе
гла
д ь
общение
по е-мейл,
メール
интернет-
ショッピング
шоппинг,
ゲーム……
онлайн-игры...
わたしも
я тоже часто
インターネットで
делаю покупки
よく買い物を
в интернете!
しているわ
х
аю и
о пл а чи в й
и о
о вск
ба н к
а р той .
к о!
до бн
та к у
Э то
危険じゃないのか?
но не опасно ли это? чтобы не украли,
盗聴されないために
ведь информацию используют
クレジットカードの情報が 公開鍵暗号技術が
кредитной карты шифрование с открытым
盗まれたりとか…
могут украсть... 利用されてるのよ
ключом!
Рай покупок
ステキでしょ?
сумка! まあ…да,
наверное...
そうかもな
Сумка класса «люкс»
хорошо разбираюсь...
хотя я не очень
Купить Описание
теперь
じゃあちょっと
давай испытаем попробуй клац
это ещё
どうする気だ?
クレジットカード
твою кредитную
情報を入れて
ввести сюда
зачем?
貸してкарту. информацию. кл
ац
молодец!
はい
а теперь мы
なっчто ты
クリック!
кликнем по посмотри
これ見て!
этой кнопочке!
なにをした
наделала?!
!? вот на это!
Купить Описание
клац
110
110
第 3 章Глава 3. шифр с открытым ключом
公開鍵暗号化技術
Открытый ключ отображается
公開鍵は、暗号による通信を行っ
только в состоянии шифрованного
ている状態のときに表示できます。
соединения. Если в качестве брау-
ブラウザが
зера Explorer
используется の場合は、メ
Internet Explorer,
Сертификат
тоニューをファイル→プロパティ→
для отображения открытого
Основное Подробности Путь сертификации
ключа необходимо пройти по пун-
証明書→詳細の順にたどっていき
Показать (S): <Всё>
ктам меню: Файл → Свойства →
Поле
Серийный номер
Значение ます。
Сертификат и открыть вкладку
Алгоритм подписи
Центр выдачи
Safari や F irefox のブラウザの場
Подробности.
Действителен не ранее 16 мая 2006 г., 8:18:11
Действителен не позже 16 мая 2007 г., 8:18:11
При использова-
合 は、 南京錠の
Субъект нии таких браузе-
Открытый ключ マークをクリック
ров, как Safari или
して、詳細な情報
Firefox, необходи-
моにкликнуть
ア ク セ スпо しま
изображению
す。 перед
замка
Редактировать (E)... Копировать(С)...
адресной строкой
и просмотреть
подробную
информацию.
※
В современных браузерах всё не так – Прим. ред..
おおого!
16 進数が
тут какие-то
длинные ряды
えらくたくさん
шестнадцатеричных
並んでるぞ
чисел! это что,
これが公開鍵か
и есть !?
открытый ключ?!
そうよ
да!
こうして
благодаря おおкак
здорово!
нему связь
安全に通信 それなら安心
тогда
становится
я だっ !!
спокоен!!
できるのよ!
безопасной!
Вор
хи-хи
あんた
спокоен?
勝手にカード
она использует
使われてるよ…
твою кредитную
карту, как хочет...
そうだ
да,
実はみんなが
давайте
да!!
そうだ !!
インターネットで
посмотрим,
使っている公開鍵に
как он
работает!
ついて学びましょう!
на самом
тогда
実はделе,
どうしてпочему
здесь его 鍵は公開鍵
кроме
鍵が知られても
можно спокойно открытого
だけではなくて
平気なの?
раскрыть? ключа,
秘密鍵という
здесь
используется
ものも使う
и секретный
のよ!тоже!
ключ
Открытый Открытый
公開鍵ключ Открытый
平文
текст 平文
текст
Секретный
Шифрова- 秘密鍵
ключ Расшифро-
暗号化
ние 復号
вание
Шифртекст
暗号文
送信者
Голосовая
音声通信 связь, 受信者
Отправитель Получатель
передача
データの送受信данных,
запись и накопление данных и т. д.
データの記録,蓄積など
112
112
第 3 章Глава 3. шифр с открытым ключом
公開鍵暗号化技術
Секретный
в общем, в том
秘密鍵
公開鍵
ключ
Открытый
つまり
интернет-магазине
ключ
さっきのショッピング
данные, передаваемые
пользователем,
では客からのデータが
зашифровывались ...а
公開鍵で暗号化され
открытым ключом... 店側が秘密鍵で
интернет-магазин
расшифровывал
復号しているって
их с помощью
イメージなの
секретного ключа.
спасибо
за покупку! Ма
я хочу купить газ
эту сумку. ин
Сумки
盗聴者
Перехватчик
暗号化
復号
Открытый Шифрова- Расшифро- Открытый
Отправитель
送信者
受信者
Получатель
平文
текст ние: 平文
текст
вание:
鍵 EE
Ключ Шифртекст 鍵 DD
Ключ
kk 暗号文 k k
鍵の公開
Публикация
ключа ※
Получатель (магазин) публикует
※受信者(店側)が暗号化鍵
ключ шифрования Ek,
но E k を公開し,復号鍵
держит в секрете Dk を
秘密にします。
ключ расшифрования Dk.
называют ещё
ные ключи?
も呼ばれているわ
асимметричным. 非対称鍵暗号方式
Асимметричная криптосистема
(Asymmetric Key Cryptosystem)
нет
нет へ?
как?
если у всех
通信する当事者が
пользователей
秘密鍵と公開鍵を
будет по два ключа: В шифре с открытым с ключом для
секретный и открытый,
1 つずつ持っていれば 公開鍵暗号方式では、利用者 n 人が互い
обмена зашифрованной информаци-
ей между n пользователями
に暗号通信をするとしても、鍵の総数は требуется
то они смогут
всего 2n ключей.
обмениваться друг
n 個あればすみます。
2Например, если в одноключевой
全員で暗号による通信
с другом 利用者が 1000 人の場合、共通鍵暗号方
криптосистеме для обмена информа-
зашифрованной цией между тысячей пользователей
ができるわ! 式では、
информацией! потребуется:
1000 ×( 1000 - 1 )
1000 C2 = ,
2
で、鍵が 個必要ですが、公開鍵
499500ключей,
то есть 499 500 то в крипто-
системе с открытым
暗号方式では 2×1000 ключом
で、鍵はпри 2000 個
том же количестве пользователей
しか必要としていません。
понадобится всего
2 × 1000 = 2000 ключей. ほほう!
ага!
...поэтому его,
公開されてる鍵を
ведь ключ в отличие от
шифрования 共通鍵と違って
одноключевого
使って暗号化すれば
является 鍵の配送も
шифра, легко
いいので передавать
открытым... 問題にならないわ
по обычным
каналам
связи.
114
114
第 3 章Глава 3. шифр с открытым ключом
公開鍵暗号化技術
однако...
одни
открытый ключ,
преимущества!
который
почему бы
мы видели,
тогда был таким
не отказаться от длинным!
одноключевого
шифра вообще?
в действительности
шифр с открытым ключом
требует более сложных
вычислений, которые
занимают
больше времени.
мм...
хм.. .
Манга
Криптология
....в которых
общий и открытый ключи
а как же используются вместе
зашифровывают друг с другом.
длинные о них будет рассказано
сообщения? в главе 4.
(См. стр. 188)
Фи
По дан
ши
д м ны х
нг
ен
а
расскажи нам
для этого сначала о
используется видах и устройстве
аутентификация. шифра с открытым
ключом.
тология
о ней я тоже
потом
расскажу!
хорошо. как и
у одноключевого
шифра, у шифра
с открытым ключом
есть разновидности.
фокус
чтобы повысить
криптографической чтобы понять
магии?! безопасность шифра,
это, требуется
задача фактризации используют трудно-
целых чисел?
изучить основы
решаемые математи-
задача дискретного криптологии!
логарифмирования? ческие задачи,
на поиск решения ко-
торых потребуется
много времени
и усилий.
ам
та -д
что всё это
такое?!
a =≡ y( mod p )
x
a と がわかっている場合に
Поx известным y を求めることは比較的容易です。ところが、
значениям a и x достаточно легко найти значениеa と y がわかっ
y, однако по
известным значениям a и y чрезвычайно трудно найти значение x, которое является
ていても、y の対数の x を求めることは非常に困難です。これが離散対数問題です。離散とは、
логарифмом y. Это называется задачей дискретного логарифмирования. Слово
連続の反対語で、とびとびの値であることを示しています(175 ページ参照)
«дискретный» означет величину, значение которой не может 。 непрерыв-
изменяться
но, другими словами, она может принимать только отстоящие друг от друга значе-
ния (см. стр. 175).
некоторые
難しそうな
термины
ほんとだなっ
правда?! !?
言葉が多いけど
могут
показаться
сложными,
少しずつ
...но постепенно
わかってくるから
вы поймёте,
心配しないで
поэтому
не волнуйтесь.
118
118
第 3 章Глава 3. шифр с открытым ключом
公開鍵暗号化技術
о й ь!
Дол жност
ところでзачем
кстати, да,公開鍵暗号の場合
но в случае шифра с
なぜ一方向性が
с ло
нужны эти открытым ключом, если
一方向性でないと
必要なの?
односторонние функция не будет одно-
функции? 秘密鍵が割り出されてしまう
сторонней, есть
危険があるのよ!
опасность раскрытия
секретного ключа!
Опа
с но !
скользь
一方向性関数のことを
поэтому их называют
落とし戸付き一方向性関数と
односторонними функциями
いうのよ
с потайным входом.
鍵なしでも部屋から
Из комнаты наружу 鍵なしでは部屋に
Войти в комнату без Если ключ есть, то
鍵があれば部屋に
можно выйти, даже
出ることができる ключа не получится.
入ることはできない можно войти в ком-
入ることができる
не имея ключа. нату.
ЭТО
...И О ТОМ, КАКИЕ
そのなかで数学が БЫЛА ДОЛЖНА
С КА З
МАТЕМАТИЧЕСКИЕ АТЬ Я
どのように用いられているか
ЗАКОНОМЕРНОСТИ
!!
見ていきましょう!
В НЁМ ИСПОЛЬЗУЮТСЯ!
120
120
第 3 章Глава 3. шифр с открытым ключом
公開鍵暗号化技術
RSA 暗号の誕生
Рождение шифра RSA
Шифр
RSA RSA, опубликованный
暗号は、1977 в 1977 году, является первым в мире шифром с от-
年に公表された世界最初の公開鍵暗号です。
крытым ключом.
RSA の名は、開発したアメリカの 3 人の研究者、リヴェスト(Rivest)、シャミア(Shamir)、
Название RSA образовано из первых букв фамилий разработчиков – американ-
エイドルマン(Adleman)の頭文字からつけられました。
ских учёных Рональда Ривеста (Rivest), Ади Шамира (Shamir) и Леонарда Адлемана
暗号の強度を保証しているのは、素因数分解問題です。この年、サイエンス誌に 3 人が作っ
(Adleman).
た問題が掲載されました。それは、ある数を素因数分解して、メッセージを解読しなさいとい
Стойкость шифра обеспечивает задача факторизации целых чисел. В 1977 году
журнал
うものです。 Scientific American опубликовал задачу, предложенную этими тремя учёными,
в которой предлагалось факторизовать (разложить на простые множители) нижепри-
その数とは、次の 129 桁の自然数でした。
ведённое 129-значное натуральное число и прочитать зашифрованное сообщение.
114381625757888867669235779976146612010218296721242
362562561842935706935245733897830597123563958705058
989075147599290026879543541
для начала
Я раздам вам
эти материалы!
МАТЕМА ТИКА,
МАТЕМА ТИКА...
весёлые
простые совсем даже
числа? не весело!
я распрощался
г
д ры
а теперь
じゃあ問題よ!
えっ
Да? задачка!
ほんと?
правда?
30 個
ミカンがесть
пусть
30 ありました
мандаринов.
тогда
я смогу!
Мандарины
余りを出さないよう
как разделить
их 子供たちに平等に
между детьми
поровну и без
分ける方法は?
остатка?
Ма нда р и
ны
Число
人数 Число мандаринов,
1 人あたりの個数
разделение мандаринов
個数にあたる数を
детей получаемых одним ребёнком поровну без остатка...
3人 10 個
5人 6個
の約数
Число
30 30(因数)
имеетは{ 1,
6人 5個 восемь делителей:
2,3,5,6,10,15,
10 人 3個
{1, 2, 3, 5, 6, 10, 15, 30}
30 }の 8 種類です。
15 人 2個
30 人 1個
次に далее,
натуральное число,
ある自然数で
которое имеет только
два1 とその数自身しか
делителя: единица
и約数でないものが
само это число,
そ すう
『素数 называется
』よ!
«простым»!
а единица-
1 は素数 数学上の約束事として
нет, в математике давайте теперь
20 までの素数を
это простое принято не отно- посмотрим на
じゃないのか? 1 は素数に含めない 見ていきましょう
число? сить единццу простые числа
кことになっているの
простым числам. до 20!
п ро с
ед и н
ти на
ица !
с,
124
124
第 3 章Глава 3. шифр с открытым ключом
公開鍵暗号化技術
Таблица 3.2. Тест на 表
простоту натуральных чисел от 2 до 20
3.2 20 までの素数判定
素数でない数を
Числа, не являющиеся
и это
простыми, называются それを
合成数といい называется
составными, так как их 素因数分解と
素数の積(掛け合わせ)で
можно представить в
факторизацией
いうわчисел.
целых
表すことができるのよ!
виде произведения
простых чисел!
8 = 23 = 2 × 2 × 2 これを素因数分解の
это свойство называется
«однозначностью
一意性というの
9 = 32 = 3 × 3 факторизации
целых чисел».
10 = 2 × 5
12 = 22 × 3 = 2 × 2 × 3 единицу не относят
1 を素数に加えないのは
к простым числам
14 = 2 × 7 именно с целью
素因数分解の一意性を
15 = 3 × 5 сохранения этого
保つためなのよ
свойства однозначности.
16 = 24 = 2 × 2 × 2 × 2
18 = 2 × 32 = 2 × 3 × 3 вот как?!
20 = 22 × 5 = 2 × 2 × 5
1 個 1 個調べて エラトステネスの篩
нужно проверять под названием
という方法があるわ
«решето эратосфена».
いかなきゃ
на простоту
все числа
いけないのか?
одно за другим?
в нём
次の性質を
используется
利用するのよ!
вот такое
свойство!
なんで
но почему
そうなるの?
это так?
является простым.
126
126
第 3 章Глава 3. шифр с открытым ключом
公開鍵暗号化技術
N = pq
Подумай над
N= pq と考えてみ
выражением
て! N = pq.
p ≦√N
q ≦√N
N が 2 つの自然数 pq の積で
Если N можно представить
表されるなら
в виде произведения двух
少なくとも p かчисел
натуральных q の pq,
いずれかは
то хотя бы одно из этих
√N 以下でないと
чисел - p или q, -
いけないからよ
должно быть меньше
или равно √N.
なるほど!
ясно!
p >√N かつ
и q >√N
Ведь если
pと qが
числа p иより
оба両方とも√N q будут pq > N
√N
大きければ , то
больще
その積は
их N より
произведение
больше N.
大きくなっちゃうわね
окажется
わしゃя
古代ギリシャ人の
древнегреческий
учёный!
学者じゃ
それで…ну, и причём
здесь этот «эрот»
エラなんとかってのは
или как его там?
なんなんだ?
Эратосфен
初めて
地球の大きさを
это я первый
計算したのも
вычислил
размеры
わしだぞ! земли!
взгляните на
プリントを見て
эту распечатку.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80
81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100
101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120
121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140
141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160
161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180
181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200
201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220
221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240
241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260
261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280
281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300
301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320
321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340
341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360
361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380
381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400
а теперь закрась
√Так = 20√400
400как だから= 20, まず 2 は素数だから
в этой таблице
以下の素数
числа, которые сами
20 残しておいて
все числа, кратные 2!
не превышают 400 и
2,3,5,7,11,13, само число 2
не делятся нацело それ以外の 2 の
17,19 で не закрашивай,
倍数を塗り消して
на простые числа,
так как это -
не превышающие 20:
割り切れない数が
{2, 3, 5, 7, 11, 13, 17, 19}, - ちょうだいчисло.
простое !!
400 以下の素数
являются простыми
ということになるわ
числами.
128
128
第 3 章Глава 3. шифр с открытым ключом
公開鍵暗号化技術
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80
Ух! 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100
101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120
121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140
141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160
161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180
181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200
201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220
221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240
241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260
261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280
281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300
301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320
321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340
341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360
361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380
381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400
а теперь закрась
все числа,
кратные 3,
кроме самого
числа 3.
2 3 5 7 9 11 13 15 17 19
21 23 25 27 29 31 33 35 37 39
теперь сделай
41 43 45 47 49 51 53 55 57 59
это для всех
61 63 65 67 69 71 73 75 77 79
простых чисел
до 19.
81 83 85 87 89 91 93 95 97 99
101 103 105 107 109 111 113 115 117 119
121 123 125 127 129 131 133 135 137 139
141 143 145 147 149 151 153 155 157 159
161 163 165 167 169 171 173 175 177 179
181 183 185 187 189 191 193 195 197 199
201 203 205 207 209 211 213 215 217 219
221 223 225 227 229 231 233 235 237 239
241 243 245 247 249 251 253 255 257 259
261 263 265 267 269 271 273 275 277 279
281 283 285 287 289 291 293 295 297 299
301 303 305 307 309 311 313 315 317 319
321 323 325 327 329 331 333 335 337 339
341 343 345 347 349 351 353 355 357 359
361
381
363
383
365
385
367
387
369
389
371
391
373
393
375
395
377
397
379
399
ох...
2 3 5 7 11 13 17 19
23 29 31 37
41 43 47 53 59
61 67 71 73 79
83 89 97
101 103 107 109 113
127 131 137 139
149 151 157
163 167 173 179
181 191 193 197 199
211
223 227 229 233 239
241 251 257
263 269 271 277
281 283 293
307 311 313 317
331 337
347 349 353 359
367 373 379
383 389 397
ほら смотри! かんたん
просто,
мы нашли все Пр о сты неじゃろ?
так ли?
400 までの素数が
простые числа,
ч ис ла е
みんな拾いだせたわ!
меньшие 400!
вот!
Эратосфен
130
130
第 3 章Глава 3. шифр с открытым ключом
公開鍵暗号化技術
но искать
パソコンを а ВЕДЬ простые числа,
большие RSA 暗号に使う
使えば
простые
используемые в
素数はすごい
ШИФРЕ RSA, ИМЕЮТ ТАКОЕ
楽かも
числа
очень
桁数なんだろ?
ОГРОМНОЕ КОЛИЧЕСТВО
しれない РАЗРЯДОВ...
трудно...
けれど хл о п
大きな数の素数を
...если только
хл о п
見つけるのは大変だと
не делать этого
на компьютере!
思うわ!
ПОЭТОМУ
そこで実際には
В ДЕЙСТВИТЕЛЬНОСТИ
素数らしい大きな数を
СНАЧАЛА НАХОДЯТ
БОЛЬШОЕ ЧИСЛО,
見つけてきて
КОТОРОЕ ПОХОЖЕ
НА ПРОСТОЕ...
本当に素数かどうかを
...А ЗАТЕМ
調べる方法が ЕГО
ПОДВЕРГАЮТ
ТЕСТУ на ПРОСТОТу.
とられているわ
素数判定
Тест на простоту
Хотя решето Эратосфена является методом, позволяющим надёжно обнаружи-
ふるい
エラトステネスの篩
вать простые числа, на は、確実に素数を見つける方法です。ところが、大きい数が素数か
определение с его помощью простоты очень больших чисел
требуется слишком много времени.
どうかを判定する場合には、処理時間が長くなってしまいます。
В связи с этим в качестве теста на простоту используются методы, не являющие-
ся そこで 100%確実ではありませんが、確率的にほぼ素数であることを判定する方法が用
достоверными на все 100 %, однако позволяющие с большой долей вероятности
いられます。 исследуемое число является простым.
полагать, что
Тест Ферма позволяет с некоторой долей вероятности полагать, что число n яв-
フェルマー法では、
ляется простым, если ある整数 a と、素数かどうかを判定する数 n について an − 1 =1(mod n)
для любого целого числа a, которое не делится на n, выполня-
であれば
ется n が素数であることを確率的に判定できます(156
сравнение an−1 = 1 (mod n) (см. стр. 156), но при егоページ参照) 。ただし、素数で
использовании существует
опасность того, что не простое (то есть составное) число будет ошибочно принято
ない数(合成数)を素数と判定してしまう危険がわずかながら生じます。
за простое, хотя вероятность этого не так высока.
㋯ ㋶ ー ㋶ ビ ン
そこでフェルマー法の欠点を改善したのが
Этот недостаток теста Ферма был исправленMiller-R тесте法です。1
в abin 回のテストで誤判定
Миллера-Рабина, позволяю-
щем
が発生する確率はフェルマー法の 4 分の 1 以下となり、ほぼ確実に素数を判定できます。 с
снизить вероятность ошибочной оценки не менее чем в 4 раза, по сравнению
тестом Ферма, и таким образом почти надёжно обнаруживать простые числа.
составное число,
素数と判定される
для которого
существует вероятность
可能性がある数を
быть принятым
ぎ そ すう
擬素数
за простое,
と呼ぶのよ
называется
псевдопростым.
じゃあ
о!
ВЕрн а теперь -
77 の素因数
число 77.
7 × 11 ね
分解は?
ил ьно! разложи-ка
を
пра в 1001
на простые
素因数分解して!
множители
今度は твоя
теперь
число 1001!
очередь,
お兄ちゃんよ
братец!
ой !
132
132
第 3 章Глава 3. шифр с открытым ключом
公開鍵暗号化技術
тогда разложи
на простые
множители
мм...??
почему ты
задаёшь такие
сложные задачи
только мне?!
насчёт числа 1001,
это будет
7 × 11 × 13,
не так ли?
ох
верно!
рамэн готов!
извините, что
заставила
вас ждать!
«З аяц»
Ка фе
на множители.
なので、1001
мы получим:= 103 + 13 と考えて、
1001 =(10 + 1)×(100 - 10 + 1)
= 11 × 91
= 11 × 7 × 13
вс ё
в п р он ял
он ду
п
ав
и
?
н е та к
л и?
Кафе
«Заяц»
что касается
Так как
9991 は
числа 9991, xx22 −-y2y2==
(x y)(x
(x++ (−x y),
y) - y)なので、
103 × 97 よ!
получится
9991= 1002 - 32
103 × 97!
=(100 + 3)×(100 - 3)
= 103 × 97
Каф
«З а я е
ц»
да ты
なかなか
おーっ
ого!! !! неплохо
やるわね!
разбираешья!
вот,
видела?!
じゃあ
а как насчёт
10001 は
числа 10001?
どう?
но решил
ведь не ты...
134
134
第 3 章Глава 3. шифр с открытым ключом
公開鍵暗号化技術
формулы разложения
на множители помогают
при факторизации вот вам ответ.
целых чисел только
в ограниченных
случаях.
73 × 137
то п
с ней всё
в порядке?
в подавляющем
Перебираем по одному все простые числа, большинстве случаев
являющиеся кандидатами в делители числа 10001, приходится действи-
то есть те, которые меньше или равны √10001: вать методом
перебора.
{ 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43,
47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97}.
В процессе этих попыток вы обнаружите,
ох
что 10001 = 73 × 137.
...
мне кажется,
ясно!
что мы с вами ждём
сможем вас снова!
подружиться!
е
Каф »
ц
«З а я
ЭТО ЧТО-ТО
на этот раз ВРОДЕ
мы подумаем ВОТ ТАКИХ
об остатке ВЫЧИСЛЕНИЙ?
от деления.
вшш..
записав это
выражение в а что
виде сравнения 15 ≡ 1 (mod 7) означает
по модулю, этот mod?
мы получим
следующее.
то есть это
остаток
деления 15 на 7?
эта запись
この式は
означает, что числа
モジュロ
15 7 について
и 1 являются
と 1 は等しい
15сравнимыми
(равноостаточными)
という意味よ
по модулю 7.
a=≡ b(mod N )
Это これが一般的な合同式の形で、モジュロ演算ともいいます。
общая форма записи сравнения по модулю.
Число N называется
N を法として a とмодулем сравнения.
b は合同とも読みます。合同を示す記号として、
Числа a и b в этой формуле называются сравнимыми (равноостаточными)
「=」でなく「≡」を用いることがあります。
числами по модулю N.
За рубежом вместо знака «≡» иногда используют знак «=».
но зачем нужны
整数の計算だけなら
всякие там с точки зрения
暗号にぴったりの
шифрования,
簡単なのに
«сравнения
利点がいくつか
по модулю», в таком обозначении
なぜ面倒な
когда речь идёт あるのよ!
есть несколько
合同式なんて
от обычном делении выгод!
使うんだ?
с остатком?
правда?
каких?
каких?
0
0号
Позиция № 6
位置 6 6
6号 1
1号 Позиция
位置 1 №1
Позиция
№5
位置 5 5
5号 2
2号 位置 2
Позиция №2
Позиция Позиция
№4 №3
Посадка на位置
колесо
4 4号4 3
3号 位置
Высадка
3 с колеса
обозрения
乗り口 降り口
обозрения это колесо
これはモジュロ
обозрения 7
прекрасно подходит
での演算を図式化
для объяснения
7 つかご観覧車
Колесо обозрения
арифметики
したものよ
по модулю 7.
с семью кабинками
図 3.1 モジュロ
Рис. 3.1. Колесо 7 の観覧車
обозрения по модулю 7
制限できるの
определённого
диапазона.
138
138
第 3 章Глава 3. шифр с открытым ключом
公開鍵暗号化技術
аこの観覧車
это колесо
時計回りに動くことを
конечно!
動くのか?
вращается? когда оно вращается
足し算
по часовой стрелке -
反時計回りに動くことを
это сложение по модулю,
а引き算と
когда против -
это вычитание по модулю!
考えてみましょ!
Сложение
足し算
引き算
Вычитание
1оборота
1/7 / 7 周 動поく と、0 号か
часовой ご は、 位
стрелке, то置ну-
0 2
7
левая кабинка переместится из пози- 周=+ об. 7=0 周=+об. 2
から位置 1 に動きます。これを+1(1 を 7 7
ции № 0 в позицию № 1. Определим 位置 0№ 0
Позиция
加える)と定義します。
это как операцию прибавления едини-
цы (+1).
00号
2 При повороте 号かごは位置
/ 7 周動くと、0 на 2/7 оборота0か Позиция
нулевая кабинка переместится из по-
ら位置 № 2 に動きます。これが+2(2 を加 位置 №6 位置 1
Позиция
зиции 0 в позицию № 2. Это соот- №1
ветствует
える)です。 операции +2.
При повороте на 7/7 оборота,
другими
7 / 7 周、словами,
つ ま りкогда
1 周動колесо
い た とсовер-
き、0
Позиция
шит один полный оборот, нулевая ка- 位置№5 5 位置 2
Позиция
号かごは位置
бинка, 0 から再び位置
начав движение 0 に戻りま
с позиции № 0, №2
вновь вернётся в позицию
す。これが+7 です。+7 は 0、つまり動 № 0. Это
соответствует операции +7, которая
かないことと同じです。
эквивалентна прибавлению нуля, то 位置
Позиция №44 位置
Позиция
3 №3
есть случаю, когда кабинка не двига-
лась вообще.
この観覧車モデルを使うと、足し算表
Используя эту модель колеса обо- 図 3.2 モジュロ演算の足し算のモデル(1)
Таблица 3.2. Модель (1) сложения по модулю 7
のすべてを説明できます。
зрения, можно прекрасно объяснить
таблицу сложения по модулю 7.
5+
5 + 66 ≡
=44 (
(mod
mod 7).
7)
位置 5 55号 位置 2
Приняв номер кабинки, равный её Позиция
№2
номеру позиции в начальном состоя-
初期状態のかご番号(かごの位置番号)を Позиция № 5
нии, за слагаемое a, легко определить
a、回転移動を / 7 周とすると、移動後の
на рисунке её bпозицию после поворота 位置
Позиция №44 位置
Позиция
3 №3
колеса на b/7 оборота. Таким образом,
位置が足し算の答えになります。このやり方
можно убедиться в том, что для любых
で、足し算のすべての組み合わせが、表
слагаемых a и b результат операции 3.3
のようになることが確認できます。
сложения по модулю 7 будет соответ- Рис.図3.3. Модель (2) сложения по модулю 7
3.3 モジュロ演算の足し算のモデル(2)
ствовать приведённому в табл. 3.3.
続いて、引き算の場合も観覧車で説明して
Теперь объясним с помощью этого
колеса обозрения операцию вычита- 表 3.3 モジュロ
Таблица 3.3. Cложение a 7+のbaпо
+ bмодулю 7
みましょう。
ния по модулю.
a b 0 1 2 3 4 5 6
0 0 1 2 3 4 5 6
1 1 2 3 4 5 6 0
2 2 3 4 5 6 0 1
3 3 4 5 6 0 1 2
4 4 5 6 0 1 2 3
5 5 6 0 1 2 3 4
6 6 0 1 2 3 4 5
140
140
第 3 章Глава 3. шифр с открытым ключом
公開鍵暗号化技術
Рассмотрим сначала нулевую Позиция № 0
まず、0 Если
кабинку. 号かごに注目します。
колесо повернётся на 1 7
7 об.
周=- 1 об.
周=- 7 = 0
1 оборота
1/7 / 7 周反時計回りに動くと、0 号かごは
против часовой стрелки, 位置 0 7
то нулевая кабинка переместится из
位置 0 から位置 6 に動きます。これを−1(1 2
позиции № 0 в позицию № 6. Опреде- об.
周=- 2 00号
を減じる)と定義します。 7 Позиция
лим это как операцию вычитания еди-
№1
ницы (−1). Позиция
位置 6 位置 1
№6
При 7повороте
2/ на 2/7 оборота против
周反時計回りに動くと、0 号かごはча-
совой стрелки нулевая кабинка переместит-
ся位置 0 から位置
из позиции №50に動きます。これが−2(2
в позицию № 5. Это соот- 位置 5 位置 2
ветствует Позиция Позиция
を減じる)です。 вычитания двух (−2).
операции №5 №2
位置
Позиция № 44 位置
Позиция
3 №3
При повороте
反時計回りに на один полный
1 周動いたとき、0 оборот
号かごは
против часовой стрелки нулевая кабинка,
位置 0движение
начав から位置 0сに戻ります。 позиции №これが−7 です。
0, вновь вер- Рис. 3.4. 図 3.4 モジュロ演算の引き算のモデル(1)
Модель (1) вычитания по модулю 7
−7 は 0、つまり動かないことと同じです。
нётся в позицию № 0. Это соответствует
4 位置 0№ 0
Позиция
операции вычитания семи (−7), которая эк- об.
周=- 4
7
вивалентна вычитанию нуля, то есть слу-
この観覧車モデルを使うと、引き算のすべ
чаю, когда кабинка не двигалась вообще.
Эта модель колеса обозрения позволяет
てを説明できます。 Позиция
прекрасно понять, почему в ячейках таб- Позиция
位置 6 位置
№ 11
№6
лицы вычитания по модулю 7 содержатся те
или иные значения.
例えば、3 − 4(3 から 4 を引く)につい
Представьте
て考えます。
что в операции вычитания 位置 5 位置 2
Позиция Позиция
3−4 число 3 – это третья кабинка в началь- №5 №2
ном положении (в позиции № 3). Посмо-
трим
3 − по4 рис. 3.4,初期状態の
の 3 は、 в какую позицию
3 号かごだと思っона при-
Позиция位置
№ 44 33号 位置
Позиция
3 №3
дёт, если колесо сделает 4/7 оборота против
てください。この
часовой стрелки. Как3 号かごが / 7 周反時
ясно из 4рисунка, при
перемещении на 4 позиции против часовой Рис.3.4. Модель (2) вычитания по модулю 7
図 3.5 モジュロ演算の引き算のモデル(2)
計回りすると、どの位置にくるでしょう?
стрелки третья кабинка переместится из 表 Вычитание
Таблица 3.4. 3.4 モジュロ a7 の
− ba -
поb модулю 7
反時計回りに、4
позиции つ動かすと、位置
№ 3 в позицию 6 にい
№ 6, что соответ-
くことがわかります。
ствует нижеприведённой つまり次のとおりです。
формуле сравне- a b 0 1 2 3 4 5 6
ния по модулю.
0 0 6 5 4 3 2 1
3 −– 44 =
3 ≡6 (mod7)
6 (mod 7).
1 1 0 6 5 4 3 2
Приняв номер кабинки, равный её но-
初期状態のかご番号(かごの位置番号)を 2 2 1 0 6 5 4 3
меру позиции в начальном состоянии, за
a、反時計回りの回転移動を
уменьшаемое b / 7 周として、
a, легко определить на рисун- 3 3 2 1 0 6 5 4
её позицию после поворота колеса на b/7
ке回転後の位置が、引き算の答えになります。
оборота против часовой стрелки. Таким об- 4 4 3 2 1 0 6 5
このやり方で、引き算が右表のようになるこ
разом, можно убедиться в том, что для лю-
бых чисел a и b результат операции вычита-
とが確認できます。 5 5 4 3 2 1 0 6
ния a − b по модулю 7 будет соответство-
вать приведённому в табл. 3.4. 6 6 5 4 3 2 1 0
я
спасибо, та ка а
тот
было вкусно!
п ро с
мн е
да же чу!
о п ле
п
時間の計算や
расчёт времени а 今度は
теперь давай
и даты - это тоже モジュロ演算の
曜日を調べるのも
операции модульной
изучим умножение
モジュロ計算の
арифметики,
掛け算と割り算を
и деление
по модулю!
一種ね
не так ли? やろう!
!в
то
го
я
например, совершенно
例えば そのとおりよ!
умножение 5 × 4 верно!
5по×модулю
4 の計算って 7
これでいいの?
будет вот таким? 5
5××44==7 7× ×
2 +2 6.
+6 та к モジュロ 7の
вот таблица
а ть!
д ерж 掛け算の表は
なので
Следовательно, умножения
по модулю 7!
こうなるわ!
×44≡=6 6(mod
5× (mod 7).
7)
142
142
第 3 章Глава 3. шифр с открытым ключом
公開鍵暗号化技術
Таблица 表
3.5. 7 のa a××
Умножение
3.5 モジュロ b bпо модулю 7
なんだか
да, все числа
в таблице
a b 0 1 2 3 4 5 6 ずいぶん表の中の
почему-то
数字が
расположены
0 0 0 0 0 0 0 0 вばらけてきたな
беспорядке.
1 0 1 2 3 4 5 6
2 0 2 4 6 1 3 5
3 0 3 6 2 5 1 4
4 0 4 1 5 2 6 3
5 0 5 3 1 6 4 2
6 0 6 5 4 3 2 1
но смотри!
всеでも見て!
строки и столбцы,
a かкроме
b が 0 でない
тех,
в которых
どの行にも 必ず 1 から 6 все
содержат までの
a=0 или b = 0,
数字がひとつずつ
числа от 1 до 6
по одному разу!
入っているわ!
表 3.6 モジュロ
Таблица 3.6. 8の
Умножение a×
a× b по
b модулю 8
いいところに
верно
気付いたわね!
заметила! a b 0 1 2 3 4 5 6 7
0 0 0 0 0 0 0 0 0
ところが вот
однако
モジュロ
вам 8の
таблица 1 0 1 2 3 4 5 6 7
умножения
掛け算だと 2 0 2 4 6 0 2 4 6
по модулю 8.
こうなるの
3 0 3 6 1 4 7 2 5
4 0 4 0 4 0 4 0 4
5 0 5 2 7 4 1 6 3
6 0 6 4 2 0 6 4 2
7 0 7 6 5 4 3 2 1
掛け合わせる数に
да, 0が
не очень приятно,
入っていないのに
когда перемножение Ведь перестаёт выполняться
ненулевых чисел
結果が 0 になるのは つまり、
правило a × b = 0 なら
умножения:
даёт в результате ноль. если a × b
a = 0 または = 0, то bхотя
= 0бы
といодин
困るわよね
из множителей, a или b,
う計算の法則が成り立た
обязательно должен быть
равен 0.
なくなってしまいます。
но как же
どうして
получаются ну, в общем...
こんな結果に それはね…
подобные это происходит
なったの? モジュロの 8 という数と
в тех случаях,
результаты?
a またはそчисла
когда
たが
b が aи b
『互
не いに素』でない場合に
являются взаимно
простыми по отношению
起きることなの!
к модулю!
добавкой
温泉の素なら
для ванны я
よく使ってるぞ…
пользуюсь
Д ля
часто.※ ва н н ы
※
Игра слов с называнием добавки для ванны
«Простая добавка для горячих источников».
144
144
第 3 章Глава 3. шифр с открытым ключом
公開鍵暗号化技術
互いに素とは
ある数同士が
Взаимно простые
пол н
ое
ни е ..
. 1 以外に共通の
числа - это такие числа,
р о ва у которых нет
и гн о р и
約数(公約数)を
общих делителей,
持たないことを
кроме единицы.
いうのよ
к прим ер
ということは じゃあ
тогда... у. ..
в а Д ля
значит, в качестве
ы
нн
модуля лучше
モジュロにとる数は
использовать
素数がいいの? 3 ÷...как
5 って
простое число? посчитать
どうやるんだ?
3 ÷ 5?
そうよ!
верно!
если
7 のように
использовать
素数ならчисло
простое
вроде 7, то
割り算も
и деление будет
できるのよ
возможно.
逆数は、逆元とも呼びます。
также обратным элементом.
おっага! ……でも
но как нам
なるほど! どうやって逆数を 1
понятно! найти обратное
3 × = 1
さがせばいい?
число? 3
?
что
例えば
ну, например, в обычной
3 の逆数は 3 分のчисло,
арифметике 1 だから
обратное 3, – это 1/3,
掛け合わせて 1 になる数が
ведь при умножении
逆数でしょう?
получается 1, не так ли?
Таблица 表
3.7. Умножение
3.7 モジュロ 7のa a× ×
b по
b модулю 7
Давайте ещё
モジュロ 7の a b 0 1 2 3 4 5 6
раз взглянем
掛け算の表を
на таблицу умножения 0 0 0 0 0 0 0 0
もう一度見て
по модулю 7
が現れているところを
и1 найдём пары чисел, 1 0 1 2 3 4 5 6
произведение
拾いだしましょう 2 0 2 4 6 1 3 5
которых равно 1.
3 0 3 6 2 5 1 4
4 0 4 1 5 2 6 3
5 0 5 3 1 6 4 2
6 0 6 5 4 3 2 1
表 3.7 から、
Согласно 1 の逆数は
табл. 1、2 の逆数は
3.7, 1 обратно 4、3 の逆数は
1, 2 обратно 4, 5、
の逆数は 5,
34 обратно の逆数は
4 обратно
2、5 2,3、6 の逆数は
5 обратно となります。
3, 66обратно 6.
146
146
第 3 章Глава 3. шифр с открытым ключом
公開鍵暗号化技術
Поделить
3 を 5 3で割ることは、3
на 5 – значит に 5 の
умножить 3 на число, обратное 5. молодец,
значит, 3 ÷ 5
じゃあ 逆数の 3 を掛けることなので、 よくできたわね!
Следовательно, правильно!
вычисляется
3 ÷ 5 を計算すると
вот так?
こうか? 3÷5=≡ 3×3=9
9÷9
7=7+2= ≡ 2 (mod 7) от похвалы
растут!!!
Такимとなる。つまり、
образом,
3÷5=
≡ 2 (mod 7)
なのです。
では давайте
итак, Таблица 表
3.7. Деление 7aの
3.8 モジュロ ÷ ba ÷
поb модулю 7
割り算も и
составим
таблицу a b 0 1 2 3 4 5 6
表にするわよ
деления.
0 ー 0 0 0 0 0 0
1 ー 1 4 5 2 3 6
2 ー 2 1 3 4 6 5
3 ー 3 5 1 6 2 4
4 ー 4 2 6 1 5 3
5 ー 5 6 4 3 1 2
6 ー 6 3 2 5 4 1
умножение и
掛け算と割り算は
деление тоже
観覧車モデルでも
можно объяснить
説明できるわ
на модели
колеса обозрения.
5 5
Рис. 3.7. Позиция через 分間に 回転する場合の
図 3.7 1 6 мин. вращения со 6
скоростью
分後の位置 об/мин.
7 7
148
148
第 3 章Глава 3. шифр с открытым ключом
公開鍵暗号化技術
Для понимания деления по модулю
割り算の場合は、掛け算の場合の逆を考え
мы применим подход, обратный умно-
жению: будем находить время вращения, Перемещение
1 分間に進む距離 за 1 мин.
ます。回転後の位置と回転したスピードから、
используя данные о конечной позиции
かごが回転した時間を逆算するのです。
нулевой кабинки и скорости вращения Позиция位置
№ 00
5(最終位置)÷
5 (конечная позиция) ÷2(速さ)=6(分間)
2 (скорость) = 6 (время вращения). Позиция
№2
У нас получился результат 6 минут, 位置 4
Позиция
位置 3
Позиция №3
но
6как нам его интерпретировать? Рас-
分間回転したという答えは出ますが、こ №4
суждать надо следующим образом: за 6
れをどう解釈すればよいのでしょう?
минут вращения нулевая кабинка при-
こう考えてください。最終位置は
шла в конечную позицию № 5, 5но だった
для Перемещение
6 分間に進む距離за 6 мин.
этого ей пришлось сделать один лишний
が、余分に 1 回転していたと。つまり、実際
оборот. Другими словами, хотя конечной 2 2
Рис. 3.9. Вращение
図 3.9 1 со скоростью
分間に 回転する場合 об/мин.
の最終位置は
была на самом2×6= 12 であったが、mod
деле позиция № 127 7 7
(6 × 2 = 12),
のため 5 と表された。 по причине (mod 7) она была
выражена как позиция № 5.
したがって、12
Следовательно, ÷ 2так
= 6как
なので、
12 ÷「6
2= 分間6,
найденный в таблице
回転した」という答えが正しかったことがわ деления по модулю
7 ответ – «колесо вращалась 6 минут», –
かります。
оказался абсолютно верным.
аそれって
что в этом такой自由自在に
большой выбор
すごいことなの?
особенного? 演算できるから
операций очень
暗号化や復号の
подходит для методов
шифрования и
数学に用いるのに
расшифрования.
適しているわ !!
непобедимость!
красота!
だめなのか?
целых чисел? деления не обладает
できないのよ!
свойством
замкнутости.
150
150
第 3 章Глава 3. шифр с открытым ключом
公開鍵暗号化技術
Например, результат операции 3 ÷ 8 не принадлежит
множеству натуральных чисел, так как является дроб-
例えば
ным 3 ÷ 8 の答えは分数(小数)になってしまい、
числом.
С整数では表せません。
другой стороны, операции арифметики по модулю
простого числа p, обладая такими же свойствами ком-
一方、素数 p のモジュロ演算では、交換法則、結合法
мутативности, ассоциативности, дистрибутивности, от-
則、分配法則が成り立ち、演算の結果は、必ず{
личаются 0,1,
тем, что их результат всегда принадлежит
……,p - 1чисел
множеству }のいずれかになります。
{0, 1,... p − 1}.
в о т!
коммутативность - это
a+b=b+a
a + b = b + a или ab = ba,
ab = ba が交換法則
ассоциативность - это
(a + b)+ c = a +(b + c)
(a + b)(ab)
+ с c==a a(bc)が結合法則
+ (b + с) или (ab)с = a(bс),
а дистрибутивность
a(b + c )= ab + ba が分配法則よ! - это
a(b + с) = ab + bс!
Таблица 3.9.表Возведение
3.9 モジュロв7степень (abb)乗)
の a (a の
b
по модулю 7
6 6 1 6 1 6 1
モジュロ演算していくと
да, результаты
結果の数字が
операций
по модулю имеют
ずいぶんとばらばらな値
такой большой
になるんだなあ
разброс.
152
152
第 3 章Глава 3. шифр с открытым ключом
公開鍵暗号化技術
ой, а это
верно
что такое?!
подметил!
почему
поэтому операции
в этой таблице
модульной
все числа при
арифметики
возведении в
используются также
шестую степень
и для генерирования
дают единицу?
псевдослучайных
чисел.
(См. стр. 225)
да,
это так!
и это имеет отношение
кр
ут к малой теореме ферма,
ь которую мы сейчас
с вами изучим!!
фе...
ферма?
ох .. .
ой, я боюсь
высоты...
итак, теперь
とっても素敵な
я познакомлю вас...
...с одной очень
フェルマーの小定理を
красивой теоремой -
紹介するわ! Малая теорема Ферма
малой теоремой フェルマーの小定理
ферма! Если n – простое число, то для
любого целого числа a, которое
n が素数のとき、n
является と互いに素で
взаимно простым с n
ある整数 aсловами,
(другими (n の倍数でない整数не является
a)
кратным числу n), верно следующее
について、次の式が成り立ちます。
сравнение:
nー1
a =
≡ 1(mod n)
Это
つまりозначает,
aをn- что1 乗したものを
остаток от
деления числа a в 1степени
n で割ると余りが になるという n−1
на число n будет равен 1.
わけです。
フェルマーの小定理は
малая теорема ферма
素数判定でも利用したわよね
используется и в качестве
теста на простоту.
(131 ページ参照)
но главное, - она является
何よりオイラーの定理を
основой, необходимой для
勉強するための基礎として必要よ
понимания теоремы эйлера.
表 3.10 モジュロ
Таблица 3.10. Возведение в степеньb
(aの
7 の a (a b
乗)
) bпо модулю 7
モジュロ ときに
значит, 7именно
по этой теореме a b 1 2 3 4 5 6
1 ~ 6 までの数を
все числа от 1 до 6 1 1 1 1 1 1 1
6 乗して 1 степеней
в таблице になるのは
この法則が
по модулю 7
2 2 4 1 2 4 1
в示していたこと
шестой степени 3 3 2 6 4 5 1
дают единицу!
だったのね! 4 4 2 1 4 2 1
5 5 4 6 2 3 1
6 6 1 6 1 6 1
154
154
第 3 章Глава 3. шифр с открытым ключом
公開鍵暗号化技術
フェルマーってのは
а кто такой
どんな奴だ?
этот ферма?
なお、大定理の証明は、フェルマーの死から
Считается, что Ферма написал на полях 年を経て、1995
330такое 年にイギリスのアン
примечание к своей великой
теореме.
ドリュー・ワイルズ(1953 年生~)によってなされました。
я хотел здесь
написать та к,
フェルマーの大定理の
доказательство
証明をここに書こうと
великой теоремы
та к
思ったけど余白がせま
ферма, но поля
книги слишком
すぎる!
узки для этого!
と、ノートに書かれ
ていたようです。
なら、n
то число は素数ではないと言えます。
n не является простым.
→
а 対偶って
что такое Это замена высказывания
命題『A ならば B』に対して
контрапозиция?
なあに? вида «если A, то B»
『B でないなら A でない』
на высказывание вида
というのが対偶よ!
«если не B, то не A»!
→
так...
бесплатное
питание? если высказывание
оплачиваемый
отпуск?
正しい命題の対偶は
верное, то и его
常に正しいのよ!
контрапозиция
та и тоже всегда верна!
Рабо та
зарпла
основанный на
вот как?
なるほど… これを利用して
этом тест на
тогда это явно
これはマンガじゃない
Если
命題
верно высказывание: 素数を判定する方法が
простоту...
не манга... «любая манга увлекатель-
『すべてのマンガは楽しい』
на», ...называется ой,
が正しいならば、 フェルマー法 Что это
тестом ферма.
то можно утверждать, というのよ с ним?
что
対偶 и его контрапозиция:
Ве сё лые шмы г 『楽しくないのは
«если книга скучна, то
どれもマンガじゃない』
всё,
брр. .. пр остые это не манга», – сдаюсь!
числ а も正しい、と言えます。
б рр
. . . тоже является верной.
брр. ..
156
156
第 3 章Глава 3. шифр с открытым ключом
公開鍵暗号化技術
Тест Ферма и псевдопростые числа
フェルマー法と擬素数
При оценке простоты чисел с помощью теста Ферма нужно помнить о том, что
フェルマー法による素数判定において注意すべきなのは、
верность сравнения
a =
≡ 1 (mod n)
nー1
является
を満たすことは、nнеобходимым, но не достаточным условием простоты числа n.
が素数であるために必要な条件ではありますが、十分な条件であるといえな
По
い点です。
этой причине возможны случаи, в которых число, которое не является
простым, вероятностно оценивается как простое.
このため、フェルマー法では、素数でないのに、確率的に素数であると判定される場合があ
Например, хотя число n = 3215031751 и взаимно простые к нему числа 2, 3, 5 и 7
ぎ そ すう
ります。そのような数を擬素数と呼んでいます。
удовлетворяют сравнениям
例えば、n = 3215031751 は互いに素である 2,3,5,7 との間に、
23215031750 =
≡ 1 (mod 3215031751)
,
33215031750 =
≡ 1 (mod 3215031751)
,
53215031750 =
≡ 1 (mod 3215031751)
,
73215031750 =
≡ 1 (mod 3215031751)
,
простым числом оно не является, так как его можно разложить на простые множители
を満たしていますが、素数ではありません。なぜなら、
следующим образом:
Теорема
オイラーの定理 Эйлера
Для любого натурального числа n и взаимно простого с ним целого числа a
自然数 n と、互いに素である整数 a について、次式が成り立ちます。
верно следующее сравнение:
a
a φ(n) ϕ(n)
= 1 (mod
≡ 1 (mod n). n)
式の中の
Эйлера, ϕ(n)をオイラー関数といいます。オイラー関数は、1
значение からвn диапазоне
которой равно количеству натуральных чисел までの自然数で、 от 1
n と互いに素である数の個数を表すものです。
до n, которые являются взаимно простыми по отношению к числу n.
Кромеϕ(n)
また、a того,
× aтак
= aкак a+ ≡
ϕ(n) 1 a (mod n), перемножив левые и правые части:
なので、明らかに次式も成り立ちます。
a φ(n) × a ≡ 1 × a (mod n), получим, что
a φ(n)+1 ≡ a (mod n).
aϕ(n)+ 1 = a (mod n)
При дальнейшем повышении степени:
)
a φ(n × a φ(n) ≡ 1 × 1 (mod n), то есть
なぜなら、a2φ(n ϕ(n)
) = 1 (mod n)なので、a を(ϕ (n)+ 1)乗すると、a に戻ることを意
a ≡ 1 (mod n),
味しています。
a 2φ(n)+1 ≡ a(mod n) и так далее.
さらにべき乗をしていくと、2ϕ
Обобщая вышеизложенное, (n)乗で 1 になり、(2ϕ
можно записать, что(n)
для+любого a に戻ります。こ
1)乗でнатурального
числа n и взаимно простого
れを一般的に表せば、自然数 с ним целого числа aaверны
n と互いに素である整数 следующие два сравне-
について、次のようになります。
ния:
a kφ(n) ≡ 1 (mod n),
a (n) = 1 (mod n)
kϕ
a kφ(n)+1 ≡ a(mod n), где k – неотрицательное целое число.
a = a (mod n)
kϕ(n)+ 1
)+1
akϕkφ(n
(n)+ 1 ≡ a(mod n) ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ (1)
a = a (mod n) (1)
158
158
第 3 章Глава 3. шифр с открытым ключом
公開鍵暗号化技術
так как все числа Если n является простым числом,
ϕ(7)なら
{1, 1,2,3,4,5,6
2, 3, 4, 5, 6} が то из всех чисел от 1 до n
n が素数なら 1 から
единственным n までの
числом,
7 と互いに素なので
взаимно просты
имеющим с n отличные от 1
自然数で n と互いに素では
по отношению к 7... общие делители
ないのは
(то есть не n だけ! простым),
взаимно
ϕ(7)
....φ(7)==66ね!
! является само это число n!
другими словами,
つまり 数学者オイラーЭйлер
Математик
в этом случае
ϕ(n)= n - 1
получается,
Леонард Эйлер (1707–1783 гг.) –
レオンハルト・オイラー(Leonhard
ということよ
что φ(n) = n − 1. один из самых выдающихся математи-
Euler:1707
ков 年 生родившийся
XVIII века, ~ 1783 年 没 в)Швей-
は、
Если n – простое число, スイス生まれの
царии. 18 世紀を代表する数
Он известен не только огром-
n が素数の場合、
то φ(n) = n − 1 и, ными достижениями в разнообразных
ϕ(n)= n - 1 なので、 学者です。
следовательно, областях математической науки, но
ϕ(n)
aaφ(n) ≡= 数学の幅広い分野で大きな業績を残しただけで な
n-1
= 1 (mod
a na− 1 (mod n), n) также и активной работой в области
физики, астрономии.
となり、フェルマーの小定
что соответствует малой く、物理学や天文学の分野でも活躍しました。
理 と一致します(154
теореме Ферма ペー 数学の業績で一般によく知られているものとして、
Среди его широко известных математических
ジの表
(см. 3.10 の 部分に
закрашенный 一
столбец открытий есть так называемая формула Эйлера
オイラーの公式(複素数のオイラー表示)と呼ばれる
в致します)
табл. 3.10。на стр. 154). (формула Эйлера для комплексных чисел):
ものがあります。
これは複素指数関数 e θと三角関数のi
Она связывает комплексную экспоненту
cosθと sinθ
iθ
eが虚数単位
с тригонометрическими функциями cos θ и
i =√− 1 を介して、結びついていることを
sin θ посредством мнимой единицы i = √−1.
示しています。
オイラーってのは
А КТО ТАКОЙ
どんなやつだ?
ЭТОТ ЭЙЛЕР?
ЗВЁЗДЫ Я
ТОЖЕ ЛЮБЛЮ...
で一番小さいもの(最小公倍数)を
L とすると、次の式が成り立ちます。
aL ≡ 1 (mod p, mod q).
aL ≡ 1 (mod N).
すなわち、N(= pq)と互いに素な整数 a に対して次式が成り立ちます。
Другими словами, в том случае, если N можно разложить на простые множители p и
q, наименьшее общее кратное L чисел (p − 1) и (q − 1) может выполнять ту же самую
a = 1(mod
L
роль, что и функция N) φ(N).
Эйлера
160
160
第 3 章Глава 3. шифр с открытым ключом
公開鍵暗号化技術
Далее, так как произведение двух целых чисел можно представить в виде произведе-
最小公倍数と最大公約数の積に等しいので、
ния (p − 1)
их наименьшего общего кратного (НОК) и( q − 1)= LG という関係に基づき、次式が
наибольшего общего делителя (НОД):
成り立ちます。
(p − 1) (q − 1) = LG,
(p − 1)
(q − 1)
L = , где L – ※ L は最小公倍数、G
наименьшее は最大公約数
общее кратное,
G
G 例をあげます。例えば、p
– наибольший общий делитель = 3、qчисел (p − 1) и (q =
= 5 とします。N − 1).
pq は 15、 (p − 1)は 2、 (q − 1)は 4、
Перейдём к рассмотрению конкретного примера. Положим, что p = 3 и q = 5, тогда
ϕ(N)=(p − 1) (q − 1)は 8、2 と 4 の最小公倍数 L は 4 で、最大公約数 G は 2 です。このとき、
N = 15; (p − 1) = 2; (q − 1) = 4; φ(N) = (p − 1) (q − 1) = 8;
L15 と互いに素な自然数
= НОК(2, に対して次式が成り立っています(表
4) = 4; G =aНОД(2, 4) = 2. 3.11)。
Аналогично тому, как было показано на стр. 158 для функции Эйлера, из сравнения
aL ≡ 1 a
(mod
4k
=N) 1(следует
mod 15) ※ k формула:
обобщённая は非負整数
kL
a ≡ 1 (mod N), где a – взамно простое с N число; k = 0, 1, 2,...
つまり、a
Возвращаясьを ϕ(N)乗するまでに、
к рассматриваемому (pслучаю,
− 1)と(q для − любого
1)の最小公倍数 натурального L を周期に、最大公約
числа a, взаим-
но простого с 15, будет верно
数の G 回は、少なくとも「1」が現れることになります。 сравнение:
a 4k ≡ 1 (mod 15).
なお、オイラーの定理(158 ページ参照)の式(1)により、1 から(N − 1)のすべての整数
Кроме того, заменив функцию φ(N) в показателе степени сравнения (1) (см. стр. 158)
a に対して、
на L, получим, что если N = pq, где p и q – простые числа, то для любого целого числа a
от 1 до (N − 1) верно следующее сравнение:
a a k L +1 = ⋅
⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅(2)
kL + 1
≡ aa(mod
(mod N)
N) ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ (2)
В рассматриваемом случае
であり、RSA a 4k暗号マジックのトリックになります。
+1
≡ a (mod 15).
В верности данного сравнения можно убедиться с помощью табл. 3.11.
Таблица 3.11. Возведение
表 3.11 2 в степень (a b) по модулю
つの素数の積のオイラー関数の例 ab 15
(N = 3 ×
(для иллюстрации 5,�(15)=
случая × 5,=φ4,G
N = 38,L =8,
( N) = 2)L = 4, G = 2)
a b 1 2 3 4 5 6 7 8
1 1 1 1 1 1 1 1 1
2 2 4 8 1 2 4 8 1
3 3 9 12 6 3 9 12 6
4 4 1 4 1 4 1 4 1
5 5 10 5 10 5 10 5 10
6 6 6 6 6 6 6 6 6
7 7 4 13 1 7 4 13 1
8 8 4 2 1 8 4 2 1
9 9 6 9 6 9 6 9 6
10 10 10 10 10 10 10 10 10
11 11 1 11 1 11 1 11 1
12 12 9 3 6 12 9 3 6
13 13 4 7 1 13 4 7 1
14 14 1 14 1 14 1 14 1
Первый период Второй период
1 周期 1 周期
Закрашенные серым столбцы, соответствующие таким показателям степени
※ 部分は式(2)の関係を示す
(b), при которых степень сравнима по модулю с самим числом a, повторяются с
перидом L = 4, что находится в соответствии со сравнением (2). В диапазоне зна-
чений показателей степени от 1 до φ(N) = 8 эти столбцы повторяются G = 2 раза. 161
161
всё нормально!
大丈夫、大丈夫!
как говорится,
「千里の道も一歩から」
дорога в тысячу
オイラーも
ненавижу
миль начинается
их обоих: よ!
フェルマーも с первого шага!
и ферма,
嫌いだ…
и эйлера...
少しずつ
двигаясь
шаг за шагом,
やっていけば
ты сможешь
いいのよ!
понять всё!
да?
そ…そうだな конечно! конечно!
правда?
ой, что
это с ним... オイラー
Эйлер フェルマー
Ферма
успокойся,
あ、見て
посмотри
наあの星座
звёзды.
итак, на этом
мы暗号数学の
закончим
基礎は
изучение
математических
ここまで!
основ
криптографии!
и наконец-то
переходим
次はいよいよ
к примеру
公開鍵暗号
практического
RSA の実際を
использования
見ていきましょう
RSA - шифра
!!
с открытым
ключом!! уфф...
162
162
第 3 章Глава 3. шифр с открытым ключом
公開鍵暗号化技術
ЧИПСЫ
3
3-5ー 5 RSA 暗号の仕組み
Устройство шифра RSA
Пиро
со сл жок
ма L E V
соевоадкой
7-E
Се и н о в
Сочный
газ EN
пудинг паст й
ть
АНМ ой
АН
ох, наконец-то
やっと数学から рано
мы покончили
喜ぶのは早いわ!
解放されたな!
с этой радуетесь!
математикой!
数学はまだまだ
математика
出てくるわよ
ещё будет!
поем-ка
я тоже
сладостей -
заряжу мозги!
ほっと
как что?!
хорошо...
したわ
итак, теперь
さてя ЧЕСТНО
RSA 暗号の鍵の
РАССКАЖУ вам
秘密は ключей
тайну
ШИФРА RSA!!
ずばり
ЭТО НЕ ЧТО КАК?!
ИНОЕ, КАК... СЛАДКИЙ
これよ !!
ВОТ ЭТО!!
へっ?
ПИРОЖОК
АН あんまん?
М «АНМАН»?!
АН
Начинка:
сладкая
соевая
паста
秘密鍵:d
Секретный
ключ: d
公開鍵暗号は二重構造
Шифр с открытым ключом имеет двухслойное строение.
おれは
но лично я х рю
хрю
どっちかというと
предпочёл бы
пирожок
ブタまんのほうが
со свининой...
好きだな
仕組みを学ぶのね?
про устройство осуществляется
仕組みを
шифра RSA? шифрование
и 整理しておくわ
расшифрование
информации.
ПОЛНОЕ
ИГНОРИРОВА-
НИЕ...
164
164
第 3 章Глава 3. шифр с открытым ключом
公開鍵暗号化技術
RSA 暗号の暗号化と復号
Шифрование и расшифрование RSA
Обозначив P открытый текст и C – шифртекст, можно выразить процесс
平文を P、暗号文を C とすると、暗号化は次のように表されます。
шифрования в виде следующей формулы:
≡ P (mod N).
C =
e
≡ C (mod N)
P =
d
.
ТакимC(暗号文)を
つまり、 образом, результат возведения CN(公開鍵)
d(秘密鍵)乗した値を (шифртекста)
в степень d (секретный ключ) делится на N (открытый
で割った余りが P(平文)になり、復号できます。ここで
ключ), и остатком от этого деления будет P (открытый
N とは、異なる大きな2つの素数を掛け合わせたものです。
текст). Здесь N – это число, полученное перемножением
двух отличных друг от друга больших простых чисел.
ПОНИМАЕТЕ ЛИ ВЫ
P в этом
を x とする方程式と
Pприняв
最初の式で
ПРИЧИНУ ТОГО, ЧТО
考えれば…… ЗА x....
сравнении
公開鍵の e と N と
ВСКРЫТЬ ШИФР RSA
НЕ УДАСТСЯ,
暗号文 C が知られても
ДАЖЕ ЗНАЯ ОТКРЫТЫЕ ПРЕКРАТИ!
解読されない 聞きたくない!
КЛЮЧИ e, N НЕ ХОЧУ ДАЖЕ
理由はわかる?
и иМЕЯ НА РУКАХ
СЛУШАТЬ!
Шифртекст?
解けば暗号文の
и прочитать オイラーの定理から
шифртекст можно 素因数分解に
понадобится
膨大な時間がかかる
очень много
解読が可能よね?
Шифртекст, 計算できちゃうはず!
было бы, используя времени.
не так ли? теорему эйлера! わけだから
другими словами,
безопасность
но для того, 「暗号の安全性=
ϕ(N)を
этого шифра
ところが
чтобы вычислить
素因数分解」
зависит от
функцю φ(N),
割り出すには сложности задачи
нужно разложить
となるわけね
факторизации
N を素因数分解 целых чисел.
число N на простые
しなくちゃ
множители,
ать
いけないでしょ?
не так ли? слуш л ьно!
н и м а те
в
実際上は不可能に近いの!
будет практически
невозможно!
このことを「計算量的に
такое свойство называется
«вычислительной
安全な暗号」というのよ
криптостойкостью».
в шифре с открытым
公開鍵では暗号化鍵と
ключом большое
気の毒に…
БЕДОЛАГА...
внимание уделяется
復号鍵が重要な役割を
ключам
果たすの
шифрования
и расшифрования,
次は鍵の生成法を
поэтому сейчас
мы по порядку
順番に学んで
изучим процесс
генерирования
いきましょう!
ключей RSA!
166
166
第 3 章Глава 3. шифр с открытым ключом
公開鍵暗号化技術
Метод
RSA генерирования ключей RSA
暗号の鍵の生成法
① Выбираем произвольно
① 十分に大きな 2 つの異なる素数 дваp、q
достаточно больших простых числа p и q.
を任意に選びます。
② Вычисляем значение
② オイラー関数 ϕ(pq)=(pфункции
- 1) Эйлера
(q - φ(pq) = (p − 1) (q − 1).
1)を求めておきます。
③
③ (Находим число
p - 1)と(q -L1)の最小公倍数
– наименьшееLобщее кратное чисел
を計算します。
(p − 1) и (q − 1).
⑤ Выбираем произвольно
⑤ 任意の正整数 положительное dцелое
e に対して、次式を満たす正整数 число d так, чтобы оно
を求めます。
удовлетворяло следующему сравнению.
ed = 1(mod
ed ≡ 1 (mod L). L)
Это число
ただし d は、ϕ(N) d, мыより小さく、p
выбираем его
およびтак,qчтобы оно было меньше φ(N),
よりも大きいものにします。
но больше чисел p и q.
求めるために
составляющий пару с
ключом
必要なものよ!
шифрования e!
次に暗号化鍵 e とペアの関係になる復号鍵
Теперь давайте d を求めてみましょう。
найдём ключ расшифрования d, образующий пару с ключом
ed = 1(mode.L)なので、
шифрования ed − 1L)=следует,
Из ed ≡ 1 (mod 0(mod что ed −L),
ed − 1 ≡ 0 (mod
L)です。つまり 1は L の倍数なので、
другими словами,
что
число (ed − 1) кратно числу L.
ed − 1 = kL ※ k は非負整数
ed − 1 = kL, где k – неотрицательное целое число.
であり,次式が成り立ちます。
Следовательно,
ed = kL + =
ed 1, где
kL +k –1 ※
неотрицательное целое число.
k は非負整数
значит,
秘密鍵 dと
секретный
теперь давайте
ではここで
公開鍵
ключe d
はи потренируемся
公開鍵と秘密鍵を
в генерировании
一対になって
открытый
作る練習をしてи
ключ e
открытого
いるのね!
составляют
секретного
みましょ!
ключей!
пару!
168
168
第 3 章Глава 3. шифр с открытым ключом
公開鍵暗号化技術
Генерирование
公開鍵と秘密鍵の作り方 открытого и секретного ключей
いま、2 つの素数をそれぞれ p = 5,q = 11 とするとき、公開鍵 N と秘密鍵 d を求め
Здесь мы попробуем найти открытый ключ N и секретный ключ d для двух про-
てみます。
стых чисел p = 5 и q = 11.
ステップ
Шаг 11
p と q の積を N とします。
Число N равно произведению чисел p и q.
N = pq = 5 × 11 = 55
Шаг 22
ステップ
N のオイラー関数 ϕ(N)を求めます。
Вычисляем значение функции Эйлера φ(N) для найденного N.
ステップ
Шаг 33
( p - 1)と(q - 1)の最小公倍数を求めます。4 と 10 の最小公倍数なので、L = 20
Находим наименьшее общее кратное L чисел (p − 1) и (q − 1).
です。
Наименьшее общее кратное чисел 4 и 10: L = 20.
ステップ
Шаг 44
最小公倍数 L と互いに素となる自然数
Выбираем e を求めます。L
натуральное число e от = 20чтобы
1 до (L − 1) так, と互いに素である自然数
оно было взаимно
e
простым с наименьшим общим кратным L. Для L = 20 это может быть одно из сле-
となりうるのは、{ 1,3,7,9,11,13,17,19 } の 8 個です。
дующих восьми чисел: {1, 3, 7, 9, 11, 13, 17, 19}.
Шаг
ステップ55
Находимe に対する逆元
暗号化鍵 обратный элемент d к ключу шифрования e, другими словами, ключ
d、すなわち復号鍵を求めます。
расшифрования d. Подумаем над тем, каким будет обратный элемент к e = 17 отно-
mod 20 の演算で、例えば e = 17 の乗算に対する逆元 d を考えます。
сительно операции умножения по модулю 20.
Необходимым
ed = kL +и1(
достаточным = 20k + 1сравнения ed = 1 (mod 20)
условием верности
mod 20)なので、17d
является выполнение равенства ed = 20k + 1, где k – неотрицательное целое число.
これを変形すると、
Решая уравнение относительно d, получим:
(20k + 1)
d=
17
Так как правая часть уравнения является целым числом, нужно подобрать
右辺は整数なので、20k
такое k, чтобы число (20k+ 1が
+ 1) 17 の倍数になるものをさがしていくと、k
было が 11k,のとき、
кратно 17. Последовательно перебирая
221 = 20 × 11 + 1 = 17 × 13 であることから、
17 × 13 =
≡ 1(mod 20)
では
хорошо.
ねえねえ
Послушайте!
まとめとして
теперь, когда начиная со
鍵も暗号化鍵と следующей страницы
у нас есть пара 次のページから
復号鍵のペアが
ключей, давайте
я БУДУ ОБЪЯСНЯТЬ
170
170
第 3 章Глава 3. шифр с открытым ключом
公開鍵暗号化技術
Генерирование
RSA 暗号文の生成 шифртекста RSA
Прежде всего я объясню порядок генерирования шифртекста с помощью открытого
ключа まず、RSA
RSA. 暗号の公開鍵を用いて、暗号文を生成する処理手順を説明します。
具体例として、鍵の例で作った暗号化鍵
В этом e=
примере мы будем зашифровывать 17 により、アルファベット
открытый 文字からなる平文
текст, состоящий4из 4 букв англий-
ского алфавита (GOLF), используя ключ шифрования e = 17, сгенерированный в предущем
(GOLF)を暗号化していきます。
примере.
表 3.12 文字コード表
Таблица 3.12. Таблица кодов символов
文字 Коды
Буквы コード 文字 Коды
Буквы コード 文字 Коды
Буквы コード
ステップ
Шаг 11
a 0 s 18 K 36
Прежде всего назначим буквам открытого текста
まず、表の文字コード表をもとに、整数を割 b 1 t 19 L 37
целые числа, используя таблицу кодов символов. c 2 u 20 M 38
り当てます。 d 3 v 21 N 39
e 4 w 22 O 40
G O L F f 5 x 23 P 41
↓ ↓ ↓ ↓ g 6 y 24 Q 42
32 40 37 31 h 7 z 25 R 43
i 8 A 26 S 44
j 9 B 27 T 45
Шаг 22
ステップ k 10 C 28 U 46
Преобразуем целые 2числа в 6-битные двоичные l 11 D 29 V 47
整数を 6 ビットの 進数データに変換します。 m 12 E 30 W 48
строки.
n 13 F 31 X 49
32 40 37 31 o 14 G 32 Y 50
↓ ↓ ↓ ↓ p 15 H 33 Z 51
100000 101000 100101 011111 q 16 I 34 ⋮ ⋮
r 17 J 35 空白
Пробел 63
Шаг 33
ステップ
2 進数データを、
Представим (N -
двоичные в виде неотрицательных целых чисел,=не
1)以下の非負整数で表します。この例では、N
данные で、N - 1 =
55 превышающих
число 55
(N-− 11). Так как в нашем примере N = 55, (N − 1)
= 54 となるので、5 ビットごとに区切ることにします。つまり、5 ビットで表せる最大 = 54, мы перегруппируем данные в
5-битные строки: это позволит представить данные в виде целых чисел от 0 до 31, что удов-
値は 31
летворяет で、54 以下となり、条件を満たします。もちろん、3
вышеуказанному ビットでも
условию. Разумеется, ничто не запрещает 4 ビットでもよいので
разделить данные и на
4-битные, и на 3-битные строки, но чем будет больше длина двоичной строки, тем более эф-
すが、区切るビット数が大きいほど暗号化効率がよくなるという性質があります。
фективен будет процесс шифрования.
1 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 1 0 1 1 1 1 1 0 を追加
(Добавляем)
1 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 1 0 1 1 1 1 1 0
(最後の 0ноль
(Последний は 5 ビットに区切ったときに不足したビットです。
является битом-заполнителем последней ここでは便宜上 0 とします。)
5-битной строки,
в которой после перегруппировки не хватало одного бита.)
Шаг 44
ステップ
2 進数データを
Преобразуем 10 進数に直します。
двоичные данные в десятичные числа.
10000 01010 00100 10101 11110
↓ ↓ ↓ ↓ ↓
16 10 4 21 30
1617(mod 55), 1017(mod 55), 417(mod 55), 2117(mod 55), 3017(mod 55)
162 = 256 =
≡ 36(mod 55) 36 = 1296 =
2
≡ 31(mod 55)
312 = 961 =
≡ 26(mod 55) 26 = 676 =
2
≡ 16(mod 55)
1017(mod 55)=
≡ 10 4 (mod 55)=
17
≡ 49
2117(mod 55)=
≡ 21 30 (mod 55)=
17
≡ 35
36 10 49 21 35 (3)
172
172
第 3 章Глава 3. шифр с открытым ключом
公開鍵暗号化技術
36 10 49 21 35
↓ ↓ ↓ ↓ ↓
K k X v J
Расшифрование
RSA 暗号文の復号 RSA
Теперь я объясню порядок преобразования шифртекста в открытый текст с помощью се-
今度は、RSA
кретного 暗号の秘密鍵を用いて、暗号文を平文に復号する処理手順を説明します。
ключа RSA.
具体例として、秘密鍵である復号鍵(d
В этом примере = 13)を使って、10
будет продемонстрирован 進数の暗号データ(式(3)
процесс расшифрования десятичных )を、
зашиф-
рованных данных (3) до преобразования в открытый текст, состоящий из букв алфавита, с
アルファベットの平文に復号するまでを以下に示します。
помощью секретного ключа расшифрования (d = 13).
Шаг
ステップ11
復号鍵(d
Используя =
ключ C d(mod
расшифрования
13)を用いて、 (dN)を計算します。具体的には、 式(3)の
= 13), вычисляем C d (mod N): находим 進数のデー
10остатки от де-
ления
タをна
1355 результатов
乗して возведения десятичных данных (3) в степень 13, другими словами,
55 で割ったときの余りを求めて、平文データにします。したがって、
мы должны вычислить следующие степени по модулю 55:
Расшифрование остальных зашифрованных данных {10, 49, 21, 35} производится ана-
残りの暗号データ{10,
логичным 49,
образом, поэтому мы приведём 同様の計算を行います(結果だけを記します)
21,35}についても、
здесь только результаты вычислений. 。
1013(mod 55)=
≡ 10 4913(mod 55)=
≡4
2113(mod 55)=
≡ 21 3513(mod 55)=
≡ 30
16 10 4 21 30
Шаг 22
ステップ
平文データとして得られた 進数を 5 ビット
10 десятичные
Преобразуем полученные 2 進数に直します。
данные открытого текста в 5-битные двоич-
ные числа.
16 10 4 21 30
↓ ↓ ↓ ↓ ↓
10000 01010 00100 10101 11110
Шаг 33
ステップ
表の文字コードに対応づけるため、2
Для того чтобы воспользоваться進数データを 6 ビットごとに区切り直します。
таблицей кодов символов, перегруппируем дво-
ичные данные в 6-битные строки.
1 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 1 0 1 1 1 1 1 0
0 を削除
(Отбрасываем)
1 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 1 0 1 1 1 1 1
(最後の
(Последний は 6 ビットに区切ったときの過剰なビットなので、削除します。
0 0является битом-заполнителем, добавленным во время )
перегруппировки в 5-битные строки, поэтому отбрасываем его.)
ステップ
Шаг 44
6 ビットの 2 進数データを整数に変換します。
Преобразуем 6-битные двоичные строки в целые числа.
なぜа почему
зашифровано
ゴルフを暗号に
именно
ステップ
Шаг 55 したんだ?
слово GOLF?
表の文字コード表をもとに、整数データを文字に置き換えます。
Используя таблицу кодов символов, заменяем цело-
численные данные буквами.
32 40 37 31
↓ ↓ ↓ ↓
G O L F 著者の先生の
наверное,
авторы этой
Итак, расшифрование завершено. 趣味なのよ…
манги - любители
たぶん
こうして、復号は完成しました。 гольфа...
174
174
第 3 章Глава 3. шифр с открытым ключом
公開鍵暗号化技術
3
3-6 ーс открытым
Шифр 6 公開鍵暗号と離散対数問題
ключом и задача дискретного логарифмирования
КСТАТИ, В ШИФРАХ
ところで公開鍵暗号って
С ОТКРЫТЫМ КЛЮЧОМ
暗号のこと
RSAну что,
のように
RSAВЕДЬ ИСПОЛЬЗУЮТ
поняли про
理解できた?
шифр RSA?
НЕ ТОЛЬКО ЗАДАЧУ
ФАКТОРИЗАЦИИ
素因数分解問題
ЦЕЛЫХ ЧИСЕЛ,
КАК В rsa?
だけじゃないわよね?
ты говорила про
他にもあるの?
другую задачу...
は…はは
ХА-ХА-ХА...
もちろんだとも…
РАЗУМЕЕТСЯ...
правда,
нет, не только. ほんとよ!
そうね я простыми
давайте 簡単?
правда? правда!
простыми
離散対数問題を
словами расскажу うそじゃないだろな!
словами?
для начала
まずは
ознакомься
根拠にした
вам о шифре
次の解説を
㋓ ㋸Эль-гамаля,
ガ ㋮ ㋸ с теоретическими
ElGamal 暗号についても
основанном а 読んで
основами
а м е- то
簡単に説明するわ
на задаче а с а ки ы е этого шифра...
н
е к ят
дискретного уж пон о ва т. . .
е е
暗号のもとになる
прочитай
логарифмирования. н сл ьзу
п ол 理論を学んでね!
вот это
ис описание!
ск
р
ск р
{ 0,1,2,3,4,5,6 } 4 4 2 1 4 2 1
5 5 4 6 2 3 1
аですが、3
с помощью степеней числа
のべき乗は、0 3 можно выра-
以外のすべての要素を
зить все эти элементы, за исключением 0. 6 6 1 6 1 6 1
表すことが可能だということになります。
Число 表 3.12
3, выражающее все числа в табл. 3.13
の a = 3 のように、1 から 6 までの数値が重複
от 1 до 6 по одному разу, называется перво-
образным корнем по модулю 7.
なく 1 回ずつ現れる性質を有する数のことを原始根といいます。
素数Для pлюбого модуля p, являющегося простым числом, обязательно
をモジュロにとると、必ず原始根が存在し、その個数は существуют
ϕ(p − 1)です。モジュ
φ(p − 1) первообразных корней. Например, для простого модуля 7 существуют два
ロ 7 の場合は、 корня.
первообразных
176
176
第 3 章Глава 3. шифр с открытым ключом
公開鍵暗号化技術
このとき、k をαを底とする離散対数と呼びます。
В этом случае число k называют дискретным логарифмом по основанию α.
Пусть вас не
ここで、log смущает такой математический термин, как логарифм, так как
という記号を難しく考える必要はありません。
здесь всё очень просто. Например, такое выражение, как 23, имеет точно такой же
例えば、2 3
= 8 という式は、
смысл, как все нижеприведённые выражения.
とまったく同じ意味です。
Ведь, например, фразу «2 в степени 3 равно 8» можно выразить и так: «Чтобы
получить 8, надо 3 раза умножить 2 само на себя».
「2 を 3 乗すると 8 になる」の表現を言い換えれば、「8 にするために、2 を掛け合わせ
Как упоминалось на стр. 118, используя следующее сравнение
る回数は 3 回だ」になるということです。
α ≡ Zi(mod p),
k
118 ページでも説明したように、
x =α y
よ
y = α x! !!
かっていても、離散対数の k を求めるのは大変
難しいというのが、離散対数問題です。
итак, теперь я
Ну что,
では つづいて
説明は理解 расскажу вам про
поняли моё 離散対数問題を利用する
шифр эль-гамаля -
できたかな?
объяснение?
は…はは
ха-ха-ха. 暗号アルゴリズムの
алгоритм шифрования,
ElGamal 暗号を
в котором используется
задача дискретного
説明するわ!
логарифмирования!
ну же,
успокойся!
к,
ы к
хн ны
х
暗号の送信者を「ルカ」とし、受信者を
Пусть отправителем шифртекста будет аランって
кто такая
Рика, а получателем – Лана. лана?
だれだ?
「ラン」としましょう。
это официантка
ラーメン屋の女の子!
из кафе «заяц»!
友達になったのよ
мы с ней
подружились!
g ≡ α gd (mod q), q)
=α (mod
d
を計算し、g とαと
в качестве q を公開鍵として公開します。
открытого ключа.
сегодня
выберу
этот!
さらに、平文 に対して、Cоткрытый
Кроме того,Pиспользуя 2 = P × g (mod P, она вычисляет также и
текстq)を計算します。
r
C2 ≡ P × g (mod q).
r
178
178
第 3 章Глава 3. шифр с открытым ключом
公開鍵暗号化技術
④ Отправитель Рика
④ 送信者ルカは、C отправляет C1 и C2 получателю Лане.
1 と C2 をランに送信します。
秘密鍵
Секретный
d ключ: d
Открытый
公開鍵 g,α,q ключ:
g, α и q
Кафе «Заяц »
C1,C2
=(α
(α r)d)==α(α
r d d)
= (α=α
d r rd =g
) = g r, よね!
d r d r r
C
C11 = точно! должен
ほんとだ!
ということは
не так ли! А значит, получиться
ちゃんと
C2 P×g r
открытый
= r = P 平文 P になるわ!
C1 d
g текст P!
つまり P に復号される
другими словами,
ура!
восстанавливается
というわけ
открытый текст P.
おお ого!
да это
これは
просто!
わかりやすい! да.
иそのうえ
криптостой-
強度も高いのよ
кость высокая.
180
180
第 3 章Глава 3. шифр с открытым ключом
公開鍵暗号化技術
Шифр эль-гамаля
в улучшенном виде
используется и в
алгоритме цифровой
подписи DSA,
И В БОЛЕЕ СТОЙКОЙ
КАЯ
ВЫСО О
КРИПТОСИСТЕМЕ
НА ЭЛЛИПТИЧЕСКИХ
КРИПТ СТЬ КРИВЫХ!
О
СТОЙК
ЦИФРОВАЯ ПОДПИСЬ? ПРО ЭТО ТРЕНЬ
ЭТО ТЕХНОЛОГИЯ, МЫ ПОГОВОРИМ
ИСПОЛЬЗУЕМАЯ ДЛЯ В ГЛАВЕ 4!
АУТЕНТИФИКАЦИИ?
ОЙ, мне
Е-МеЙЛ
ПРИШЁЛ.
пойдём
ラーメン
есть
食べにいこ!
лапшу
рамэн!
みなさん
дорогие читатели,
вы тоже, наверное,
もうわかったわよね
уже догадались?! !?
стук
182
182
第 3 章Глава 3. шифр с открытым ключом
公開鍵暗号化技術
Дополнительная информация
コラム 拡張ユークリッド互除法
Расширенный алгоритм Евклида
Алгоритм Евклида – это метод нахождения наибольшего общего делителя
ユークリッドの互除法は、2
(НОД) つの自然数の最大公約数を導き出すアルゴリズムです。素
двух натуральных чисел, являющийся более эффективным, чем алгоритмы
факторизации целых чисел. Алгоритм Евклида прост и надёжен: чтобы найти НОД
因数分解に比べて効率よく計算できます。互除法で 2 つの自然数 a,b(a > b)の最大公
двух натуральных чисел a и b (a > b), достаточно выполнять вычисления в следую-
約数を見つけるには、次の手続きを用います。
щем порядке.
① a を b で割り、余りを
① Поделив r とする。
a на b, находим остаток r.
② r = 0rの場合は、最大公約数は
② Если であり、手続きは終わりになる。
= 0, то НОД = b (поискbзавершён).
③ Если
③ r r ≠0, то возвращается
≠ 0 の場合は、a と b の組を кb шагу ①, приняв a = b и b = r.
と r に置き換えて、最初の手続きにもどる。
1365
(a) (b) = 17 × 77 + 56
(r) (← 1365
(a) ÷ 77 =
(b)17 余り
(r) 56 の計算による)
77
1365 ÷ 77 = 1 ×(ост.
= 17 56 +56)
21 → (← 77
1365÷=5617=×177
余り 21 の計算による)
+ 56
56
77 ÷ 56 =
= 21×(ост.
21 +21)
14 → (← 5677÷=211=×256余り
+ 2114 の計算による)
21
56 ÷ 21 =
= 12 ×(ост.
14 +14)
7 → (← 2156÷=142=×121余り
+ 147 の計算による)
21 ÷ 14 =
14 = 21 ×(ост.
7 + 07) → (← 1421÷=7 =
1 ×2 14
余り + 07の計算による)
14 ÷ 7 = 2 (ост. 0) → 14 = 2 × 7 + 0
となり、最大公約数は 7 となります。手順どおりに進めていけば確実に結果が出るので、
Таким образом, наибольший общий делитель чисел 1365 и 77 равен 7.
互除法の有用性が実感できることと思います。
●一次不定方程式の解の計算●
Нахождение решения неопределённого уравнения
Теперь попробуем использовать алгоритм Евклида для поиска наибольшего
次に、互いに素な
общего делителя двух と 17 で、互除法を用いて最大公約数を求めてみます。
20 взаимно простых чисел, например 20 и 17.
20 = 1 × 17 + 3 (1)
17 = 5 × 3 + 2 (2)
3 = 1 × 2 + 1 (3)
2 = 2 × 1 + 0
НОД оказался равным 1, о чём мы знали и так, поэтому может показаться, что
最大公約数は、当然ながら
в использовании алгоритма1 なので、互除法を使う必要がないように感じられることで
Евклида здесь нет никакой необходимости, однако в
действительности из формул промежуточных вычислений по этому алгоритму
しょう。しかし、その結果を求める過程の式に、大きな利用価値があるのです。
можно извечь большую практическую пользу.
6 × 3 - 1 × 17 = 6 ×(20 - 1 × 17)- 1 × 17 = 6 × 20 - 7 × 17 = 1
Перепишем результат этих преобразований следующим образом:
この一連の手続きから得た結果を、次のように書き換えます。
20 × 6 + 17 ×(- 7)= 1
Вышеприведённое тождество по форме соответствует уравнению ax + by = c,
в 上の式は、ax +x,byy =
котором a, b, c, c という形になっていて、a,b,c,x,y
– целые числа. Уравнения подобного вида にあたる数はすべて整数で
с неизвестными
xす。このような形の方程式は一次不定方程式といい、整数解の
и y называются неопределёнными уравнениями первогоxпорядка. と y を求めるものです。
Другими словами, используя формулы промежуточных вычислений по алго-
つまり、ユークリッド互除法の計算過程を利用することで、a
ритму Евлкида, мы нашли целочисленное решение неопределённого = 20,b = 17 уравнения
のとき、一
первого порядка для a = 20 и b = 17 – пару
次不定方程式の整数解(x,y)=(6,- чисел (x, y) = (6, −7). Этот метод, называ-
7)が得られるということが示されているのです。
емый расширенным алгоритом Евклида, имеет очень большую практическую цен-
この方法が拡張ユークリッドの互除法で、非常に利用価値の高いアルゴリズムです。
ность.
一般に a と b をслучая,
Для общего 0 でない整数とし、a
когда a и b –と の最大公約数を
неbравные c とすると、一次不定方程式
нулю целые числа, c – их наиболь-
ший общий делитель, уравнение
ax + by = c
ax + by = c
は、整数解(x1,y1)を持ち、解の 1 組は、拡張ユークリッドの互除法を用いて求めるこ
имеет целочисленное решение (x1, y1), которое может быть найдено с использова-
とができます。ただし一次不定方程式の解は、1
нием 組だけではありません。方程式のすべて
расширенного алгоритма Евклида. Правда, неопределённые уравнения пер-
вого порядка имеют множество
の整数解は、任意の整数 k を用いて次のように表されます。 решений, которые могут быть представлены в сле-
дующем виде (здесь k – произвольное целое число):
(x,y)=(x1 + k・ ,y1 - k・ )
b a
(8)
c c
●モジュロ演算での逆元の計算●
Вычисление обратного элемента по модулю
式(8)に示す解の公式を用いれば、
Используя решение в общем 一次不定方程式 + 17y = 1множество
20xвыразить
виде (8), можно のすべての整数解は、
решений
неопределённого уравнения первого порядка 20x + 17y = 1 в следующем виде:
次のようになります。
184
184 第 3 章 Глава 3. шифр с открытым ключом
公開鍵暗号の技術
(6 + 17k,- 7 - 20k) (9)
.
kПри
=- k1 の場合、解は(x,y) =(- 11,13)です。これを一次不定方程式
= −1 мы имеем решение (x, y) = (−11, 13), подставив которое20x + 17y=1
в неопреде-
лённое уравнение
に代入します。 первого порядка 20x + 17y = 1, получим следующее тождество:
17 × 13 =
≡ 1(mod 20) (11)
.
На стр. 168 говорилось, что если ed ≡ 1 (mod L), то ключ расшифрования d –
168 ページで、ed
обратное = 1(mod
число (обратный L)の場合、
элемент) 「モジュロ
к ключу L に関して、復号鍵
шифрования d は暗号化鍵
e относительно умноже- e
の乗算に対する逆数(逆元)である」という説明をしました。すなわち、
ния по модулю L. Другими словами, сравнение (11) означает, что число 式(11)はモジュ
13 является
обратным элементом к числу 17 относительно умножения по модулю 20.
ロ 20 に関して、13 が 17 の乗算に対する逆元であることを意味しています。
Это означает, что, используя расширенный алгоритм Евклида, можно легко на-
つまり、拡張ユークリッド互除法を使えば、モジュロ演算での逆元が効率よく導き出せ
ходить обратные элементы, а так как в шифре с открытым ключом это использует-
ся для генерации секретного ключа (ключа расшифрования), этот алгоритм широ-
るわけです。公開鍵暗号においては、秘密鍵(復号鍵)の生成のために逆元を求めること
ко используется и в криптографии.
が必要になるので、暗号の世界でも、拡張ユークリッド互除法は大きな力を発揮します。
Итак, выше мы смогли найти 17−1 – обратный элемент к 17 по модулю 20, но
можно
17(mod ли найти,
20)の逆元 например, 16−1 – обратный элемент к 16 (mod 20)の逆元
17 - 1 を求めることができましたが、16(mod 20)? Так как
16 НОД
-1
の
чисел 16 и 20 равен 4, мы можем найти решение уравнения 20x + 16y = 4, как было
場合はどうでしょう? 16
показано と 20 の最大公約数は
выше. Однако неопределённое 4 なので、20x
уравнение первого+ 16y = 420x
порядка は、前述のと
+ 16y = 1,
решить которое нужно для нахождения обратного элемента, не имеет решений
おり解を求めることができます。しかし、逆元を求めるための一次不定方程式 20x + 16yв
области целых чисел, так как его левая часть всегда будет кратна 4. Другими слова-
= 1если
ми, は、左辺が必ず 4 の倍数なので、整数解は存在しません。つまり、2
два числа не являются взаимно простыми, то нельзя найти つの数が互いに обратный эле-
素でない場合には、逆元を求めることはできません。拡張ユークリッド互除法による逆元
мент. Таким образом, получение обратного элемента возможно только в том слу-
чае, если два числа являются взаимно простыми.
の導出は、2 数が互いに素である場合にのみ可能となります。
В заключение попробуем на практике найти 73−1 в качестве обратного элемента
к 最後に、モジュロ
73 по модулю 1001, 1001 に関してрасширенный
используя 73 の逆元 73 - 1 алгоритм
を求める計算を、互除法を使って実際
Евклида. Сначала с помо-
щью алгоритма Евклида мы находим НОД чисел
にやってみましょう。まず、ユークリッドの互除法で、73 と 1001 の最大公約数を求めます。 73 и 1001.
1001 = 13 × 73 + 52
73 = 1 × 52 + 21
52 = 2 × 21 + 10
21 = 2 × 10 + 1
10 = 10 × 1 + 0
Следовательно, наибольший общий делитель чисел 73 и 1001 равен 1, другими
よって、73 と 1001 の最大公約数は 1、つまり 73 と 1001 は互いに素です。次に、これ
словами, 73 и 1001 являются взаимно простыми числами.
Подставим10выражение
式(15)の (14) вместо множителя 10 в выражение (15).
に、式(14)を代入します。
В выражении (16)
式(16)で、52 と 21сгруппируем
をくくり出します。 члены по множителям 21 и 52.
5 × 21 - 2 × 52 = 1 (17)
Подставим21выражение
式(17)の (13) вместо множителя 21 в выражение (17).
に、式(13)を代入します。
В выражении (18)
式(18)で、73 と 52сгруппируем
をくくり出します。 члены по множителям 52 и 73.
5 × 73 - 7 × 52 = 1 (19)
式(19)の に、式(12)を代入します。
Подставим52выражение (12) вместо множителя 52 в выражение (19).
式(20)で、1001
В выражении (20)とсгруппируем
73 をくくり出します。
члены по множителям 73 и 1001.
96 × 73 = 1 + 7 × 1001
これは、96
Так как это× тождество
73 = 1(mod 1001)と同じ意味なので、モジュロ
означет верность сравнения 96 × 73 ≡1001 に関して
1 (mod 1001),73 の逆
−1
обратным элементом
元 73 は 96 となります。
-1 73 к числу 73 по модулю 1001 является число 96.
186
186 第 3 章 Глава 3. шифр с открытым ключом
公開鍵暗号の技術
Глава
第4章 4
実際に暗号を使うには
как используют
ш ифр на практике?
4− 1 ハイブリッド暗号
4-1 Гибридные криптосистемы
※1
!
сотрудик
※2
лана!
まだかな…
рамэн?
店をやめちゃったから
как лана ушла,
им, наверное,
忙しいのかも…
трудно...
Срочно!!
ладно,
ハイブリッドって
«гибридный»
じゃあ значит «смешанный»...
複合って意味よね
пока не принесли, то есть в них
待ってる時間に
давайте я расскажу つまり複数の方式を
использовано
ハイブリッド暗号に
вам про
組み合わせるってこと?
сразу несколько
гибридные методов?
ついて教えるわ
криптосистемы.
ёб а .. .
ь уч
о п ят
188
188
第 4 章Глава 4. как используют шифр на практике?
実際に暗号を使うには
в гибридном шифре
そうよ!
да! эти криптосистемы ハイブリッド暗号では
общий ключ зашифровыва-
共通鍵暗号と
восполняют недостатки 共通鍵を公開鍵暗号で
ют открытым ключом
公開鍵暗号の短所を
одноключевого шифра
暗号化して送り メッセージは
и передают, а сообщение
補い合う暗号方式なの
и шифра с открытым
共通鍵で暗号化して送るの
зашифровывают общим
ключом.
ключом и передают!
その手順を見てみましょ!
вот в таком порядке!
共通鍵暗号の短所は鍵交
Недостаток одноключе-
вого шифра – трудность
換が困難であること、長
обмена ключами, а досто-
所は処理速度が速いこと
инство – высокая ско-
です。
рость обработки инфор- ラ ー メже
когда ン
公開鍵暗号の短所は長い
мации. принесут
メッセージを暗号化する
Недостаток шифра с об- 遅いな…
рамэн?
щим ключом – долгая об-
のに計算時間がかかるこ
работка длинных сооб-
と、長所は鍵交換が容易
щений, а достоинство –
であることです。
простота обмена ключа-
ми.
Процесс шифрования
共通鍵暗号のプロセス
общим ключом
Отправитель
送信者 Получатель
受信者
五里霧中
Нет слов Нет слов
五里霧中
Полученный
共通鍵 A と
メッセージ
Сообщение 言語道断
Как в тумане Как в тумане
言語道断 メッセージ
Сообщение ключ совпа-
同一のものが
(открытый текст) (открытый текст) дает с общим
(平文) (平文) 得られる
ключом A.
Общий ключ A
共
共通鍵 A Общий Шифрование
暗号化 Расшифрование 共 Общий ключ
共通鍵 BB
復号 Общий
Открытый текст
Общий
共通鍵
ключ AAを 1110010 1110010 暗号データを
Расшифро-
平文とみな
зашифровы- 101110 101110 вав данные,
復号して
вается как находят
して入力し 010111… 010111… 共通鍵 Bを
Интернет
открытый общий
暗号化する
текст. インター 得るключ B.
ネット
Открытый
公開鍵ключ 0011 0011 Секретный
秘密鍵ключ
011001 011001
公
Открытый
Шифрование
暗号化 Расшифрование
復号 秘
секретный
01110… 01110…
図 4.1 ハイブリッド暗号の暗号化と復号の全体像
Рис. 4.1. Общая картина шифрования и расшифрования в гибридной криптосистеме
.
кр
.
кр
се
от
й
ты
ры
отк
Открытый ключ
公開鍵
公開鍵
й
ыты
откр
Открытый ключ
Нам три
暗号化
Шифрование
メッセージを
так... сообщение
рамэна! 共通鍵で暗号化して
надо зашифровать
ий
Об
щ Общий
共通鍵 ключ общим ключом, а
Сообщение Шифртекст 共通鍵を
メッセージ 暗号文 потом общий ключ -
同じもの
Тот же самый ключ
公開鍵で暗号化するよ
открытым ключом...
暗号化
Шифрование
ий
бщ Зашифрованный
О
共通鍵 ыт
ый
Полученный 暗号化した
общий ключ
Общий ключ от
кр
もらった公開鍵
открытый ключ 共通鍵
ではитак, я はいよー
пожалуйста!
送信しまーす!
отправляю! 暗 号 化 し たзашифрованного
Отправка 共通鍵とメッ
общего ключа и шифртекста
セージの暗号文を送信する
復号
Расшифрование эй!
へい!
й
щи готовьте
бл
Об
ラーメン
а г за
Секретный
общий ключ Общий
共通鍵 ключ 3 つね!
а р з!
共通鍵
ю
同じもの
Тот же
за
й
самый ключ Нам три
щи
Об
共通鍵
Общий ключ рамэна!
Полученный
もらった暗号文 復号
Расшифрование メッセージ
Сообщение
шифртекст
190
190
第 4 章Глава 4. как используют шифр на практике?
実際に暗号を使うには
понятно.
это обеспечивает
ах,
эффективную
вот бы рамэн
и быструю
тоже приносили
шифрованную
быстро и
связь!
эффективно.
грр...
гибридные
криптосистемы
используются
на практике,
например в сети
интернет. Программа PGP, используемая,
например, для шифрования со-
общений электронной почты;
протокол SSL/TLS, используе-
мый для шифрования ве б-
страниц (см. стр. 226), являются
гибридными криптосистемами.
бам!
4-1 Гибридные криптосистемы 191
4-2 Хеш-функция и код аутентификации сообщения
ой!
Подмена данных
нн... на кого
он сердится?
вуууу
не знаю...
где же
она
скрывается?
я сайфер!
Кафе «Заяц »
нам заказали
Сато из
доставку на дом
1-го квартала Кафе «Заяц»
по электронной
почте...
Прошу 30 порций
1 порцию рамэна!
рамэна. срочно!
ого!
Злоумышленник
подменяем
данные!
а нельзя ли
...но кто-то защититься от
подменил подмены данных
с помощью
содержание
криптографии?
сообщения!
дун
ай
- яй
стра шн
о..
- яй
...
ха-ха
слово Hash
切り刻むことを
по-английски
и означает
ハッシュというの
«мелко нарезать». да?
牛肉のかわりに
но здесь мы
вместо говядины
メッセージを очень
мелко нарезаем
細かく切り刻んで
сообщение и вкусно,
наверное...
ハッシュ値を作りだすのが
получаем его хеш.
это называется
ハッシュ関数よ
хеш-функцией.
194
194
第 4 章Глава 4. как используют шифр на практике?
実際に暗号を使うには
Хеш-функция
ハッシュ関数
ハッシュ関数を使い、もとのメッセージからハッシュ値を計算します。指紋が本人確認の手
Хеш-функция вычисляет хеш для собщения. Хеш можно уподобить отпечаткам
пальцев, помогающим идентифицировать личность. Он представляет собой данные
段として有効であるように、ハッシュ値は、メッセージの指紋と言えます。メッセージを要約
фиксированной длины, полученные путём свёртки данных исходного сообщения, и
したものなので、データ量は小さくなります。また、固定の大きさを持ちます。
содержит меньше информации, чем исходное сообщение.
Отсутствие подмены данных в исходном сообщении называется целостностью
「メッセージが改ざんされていないことを受信者が確かめられる」という性質を正真性(完全
данных, и её проверка возможна благодаря тому, что отправитель прилагает к исход-
性、integrity)といい、送信者が、もとのメッセージとハッシュ値を一緒に送信することで正
ному сообщению его хеш. Другими словами, с помощью этих «отпечатков пальцев»
проверяют наличие или отсутствие в сообщении злонамеренных изменений. Получа-
真性が保証されます。つまり、メッセージの指紋を手掛かりに、改ざんの有無をチェックする
тель сообщения, используя ту же самую хеш-функцию, что и отправитель, вычисляет
のです。受信者は、送信者と同じハッシュ関数を用いて、メッセージの指紋となるハッシュ値
хеш полученного сообщения и сравнивает его с хешем, которое приложил к исходно-
му сообщению отправитель. Если эти два хеша совпадают, то получатель убеждается в
を計算し、添付されたハッシュ値と比較します。ハッシュ値が同じなら、改ざんはなかったこ
то, что данные в сообщении не были подменены.
とがわかります。
送信者
Отправитель Есть подмена
改ざんあり
(открытый текст)
0101
Сообщение
001101
Зависит
他力本願 от других ハッシュ関数
Хеш-функция ハッシュ関数
Хеш-функция 111011…
(数式にあてはめる)
Всё
森羅万象в природе 異なる
Отличаются
Оповещение
結果通知
「指紋」抽出 Сравнение
比較する о результате
メッセージ (平文) Совпадают
同じ
改ざんなし
Нет подмены
他力本願
Зависит от других 他力本願
Зависит от других
0101 インター 0101
他力本願
Зависит от других
森羅万象 + 001101 ネット 森羅万象 + 001101
Всё в природе Интернет Всё в природе
111011… 111011…
Хеш
森羅万象
Всё в природе
Сообщение Хеш
Сообщение
メッセージ ハッシュ値
(«отпечатки
メッセージ ハッシュ値
(«отпечатки
(открытый текст) пальцев») (открытый текст) пальцев»)
Сообщение
(平文) (指紋) (平文) (指紋) メッセージ
(открытый текст)
(平文)
受信者
Получатель
図 4.2 ハッシュ関数
Рис. 4.2. Хеш-функция
防止すれば
данных вам не でも
однако...
будет страшна!
いいでしょ
сегодня,
今日だって мы
например,
ラーメン 30 杯分
потеряли
攻撃者 うさぎ食堂
損したんだ
30 порций
!! Злоумышленник уфф...
Кафе «Заяц»
рамэна!! сейчас
пошутим!
мне
Доставьтерамэна!
е мне и
3 порци нака
Принесийт рамэна! Срочно при Та
ц и
10 пор итани н
5 порций те мне из 4-го квартала
е с и
М рам
ртала Са эна!!
из 1-го ква из 2-го квтао
ртала
Прошруамэна!
ий
7 порц удзуки а 5 порц Жду
С вартал ий р
3 - г о к и Цуда амэна!
из з 5-го к
вартал
а
а можно
だれかが客に
кто-то выдавал аа! なりすましを
как-нибудь
себя за наших
なりすましたんだよ! 防ぐ方法は
защититься
клиентов!
отないの?
спуфинга?
вух
вух
ну, тогда понятно,
почему он так сердится...
196
196
第 4 章Глава 4. как используют шифр на практике?
実際に暗号を使うには
なりすましの対策
Защита от спуфинга
можно, если
メッセージ Имитовставка (код аутентификации сообщения)
использовать имитовставку, メ ッ セ ー ジ 認 証 コ ー ド
認証コードを
то есть код аутентифика- MAC:Message Authentication Code
使えばいいのよ!
ции сообщения!
メッセージの
認証?
аутентификации?
что такое
аутентификация?!
порц Аутенти
ра и чно
и»!
две п мэн,
正しい送信者からの
это проверка
орци
и!
подлинности
те м
не рамэн, ого!
メッセージで
сообщения, и неси амэн»! 3 порции!
р
П н «Р
あること……
то есть того, оди о но
Накаи
Сат -го тич из 3-го
ите мне из 1ртала Аут
е н квартала どういうふうに
а как это
Пришл гёдза! можно
рамэн
и ква Аутентично 確認するの?
но проверить?
Аида е н тич В ы ш
из 6-го а Аут лите
квартал 2 пор «Рамэн»,
ции! Жду
«Рам
受け取ったメッセージが
...то собщение
действительно
なりすましによる
отправил
不正な送信者からの
настоящий
отправитель,
メッセージではなく
о
Аутентичн
正しい送信者からの
...а не злоумышленник,
メッセージであることを
который им
確認することよ
притворяется.
共通鍵 Отправитель
共通鍵は 共通鍵
Общий ключ и получатель
あらかじめ送信者
Общий ключ
заранее обмениваются
送信者
Отправитель 受信者で交換
общими ключами.
Подмена
改ざんあり
Спуфинг
メッセージ認証コード生成
Генерирование MAC-кода Генерирование MAC-кода 0111
責任転嫁
Безответственность (鍵に依存した一方向性
(Односторонняя хеш-функция, メッセージ認証コード生成
(Односторонняя хеш-функция, 011101
ハッシュ関数)
зависящая от ключа) зависящая от ключа) 110010…
前途多難
Трудности впереди
MAC 値の 異なる
Отличаются
Оповещение
メッセージ
Сообщение 生成 比較する
Сравнение 結果通知
о результате
(открытый текст) Совпадают
同じ
(平文)
Целостностно
改ざんなし и аутентично
責任転嫁
Безответственность 責任転嫁
Безответственность 責任転嫁
0111 インター 0111 Безответственность
前途多難
+ 011101 ネット
Интернет 前途多難
+ 011101
Трудности впереди Трудности впереди 前途多難
110010… 110010… Трудности впереди
Сообщение MAC-код
MAC 値 Сообщение MAC-код
MAC 値
メッセージ
(открытый текст) メッセージ メッセージ
Сообщение
(открытый текст) (открытый текст)
(平文) (平文) (平文)
受信者
Получатель
198
198
第 4 章Глава 4. как используют шифр на практике?
実際に暗号を使うには
メッセージ認証コードでは、お互いが MAC 値を計算すると
Для генерирования MAC-кода и отправитель, и полу-
きに、自分たちだけが共有している鍵を使います。これにより、
чатель используют один и тот же общий ключ, которым
もとのメッセージから 値を計算したのが、自分の持って
MACони.
должны обладать только Это позволяет убедиться в
том, что MAC-код, приложенный к полученному сообще-
いるのと同じ鍵を持っている相手だと確信できます。
нию, был сгенерирован отправителем, у которого есть тот
メッセージ認証コードの仕組みはこのようなものですが、共
же самый общий ключ, но порождает такой же недостаток,
通鍵暗号と同じように、鍵の共有をいかに安全に行うかが問題
какой имеется у одноключевого шифра: проблему безопас-
になってきます。
ности совместного обладания общим ключом.
メッセージ認証コードは、国際的な銀行間の送金業務やウェ
Имитоставка используется в международных денеж-
ных переводах между банками, в протоколе SSL/TLS,
ブ上でのオンラインショッピングなどで利用する кото-
SSL / TLS で
рый используется, например, для интернет-шоппинга, и
も利用されています。
т. д.
Отказ
否認とは
ну,
ご主人теперь-то いや
нет, погоди!
待てっ!
хозяин может
これで安心だね!
быть спокоен!
приступим
к Рамэну!
итак,
)
что, ещё
まだ
какие-то
а что мне
もし
делать вот
問題あるの?
проблемы? こうなったら
в этом
どうする?
случае?
うちは
а я «рамен»
頼んで
не заказывал!
ないよ!
ええーっ!
что?!
когда кто-то
送信した本人なのに
сначала делает заказ,
аそのことを
потом отрицает,
認めないわけね
что он вообще
что-то заказывал.
вот
негодяй!
200
200
第 4 章Глава 4. как используют шифр на практике?
実際に暗号を使うには
Два недостатка имитовставки
(1) Проблема невозможности предотвращения отказа (non-repudiation)
Представим, что пользователь A сначала отправил пользователю B сообщение
и MAC-код, а потом стал утвержать, что он ничего не отправлял: якобы сооб-
щение и MAC-код пользователь B создал сам. В подобном случае B не сможет
опровергнуть это утверждение A, ведь даже если попросить третью сторону
разрешить спор, она не сможет этого сделать, так как не имеет никаких
средств, позволяющих определить, кто на самом деле создал сообщение и
MAC-код – A или B.
не переживайте,
есть хороший
способ!
否認の対策
Защита от отказа
можно!
а нельзя ли
否認を ディジタル署名を
надо использовать
Цифровая подпись
как-нибудь ディジタル 署名
防ぐ方法って
защититься 使うのよ! подпись!
цифровую
なんだ?
от отказа?
Digital Signature
そうすれば
и доказать третьей
第三者に対する
стороне тоже
получится без
証明もできるわ
проблем.
どういう
а что
это такое? ディジタル署名の
давайте
ものなの?
посмотрим,
仕組みを
как устроена
это公開鍵暗号の
тот же шифр 見てみましょう!
цифровая
с открытым
鍵の使い方を подпись!
ключом, только
逆にしたものよ
используемый
наоборот!
表 4.1 公開鍵暗号とディジタル署名
Таблица 4.1. Шифр с открытым ключом и цифровая подпись
Шифр 受信者の公開鍵で
Шифрование от- 受信者の秘密鍵で
Расшифрование
с公開鍵暗号
открытым крытым ключом → Шифр-
暗号文 → секретным ключом
ключом 暗号化
получателя текст 復号
получателя
ディジタル
Цифровая 送信者の公開鍵で
Расшифрование 送信者の秘密鍵で
Шифрование
открытым ключом ← Цифровая
署名 ← секретным ключом
署名
подпись 復号
отправителя подпись 暗号化
отправителя
202
202
第 4 章Глава 4. как используют шифр на практике?
実際に暗号を使うには
ディジタル署名の仕組み
Устройство цифровой подписи
Отправитель, зашифровывая отправляемое сообщение своим секретным ключом,
ディジタル署名では、送信者が自分の秘密鍵でメッセージを暗号化したものを署名にします。
создаёт из него цифровую подпись и прилагает её к отправляемому сообщению.
Получатель, расшифровывая подпись с помощью открытого ключа отправителя,
その署名は、メッセージとともに受信者に送ります。
восстанавливает из неё сообщение, а затем сравнивает его с сообщением, к которому
受信者は送信者の公開鍵で署名を復号し、メッセージを得ます。そして、復号したメッセー
эта цифровая подпись была приложена.
ジと、送られてきたもう一方のメッセージとを比較します。
Идентичность этих двух сообщений подтверждает как целостность данных сооб-
щения, так и аутентичность отправителя.
両者が同一であるならば、正真性の検証と送信者の認証が同時に行われたことになります。
Кроме того, благодаря использованию открытого ключа отправителя для расшиф-
また、送信者の公開鍵で復号するため、第三者も受信者と同様に署名を検証でき、第三者に
рования цифровой подписи и третья сторона, и сам получатель имеют возможность
удостовериться в том, что сообщение и его цифровая подпись были созданы настоя-
対する証明が可能になるとともに、送信者の否認防止になります。
щим отправителем, а это решает проблему доказательства третьей стороне и проблему
отказа отправителя.
秘密鍵
Секретный ключ Шифрование и 公開鍵
Открытый ключ
公開鍵暗号による
расшифрование 正真性・認証
Подмена
送信者
с помощью шифра Спуфинг
に問題あり
Отправитель 暗号化と復号
с открытым ключом
一騎当千
Могучий воин
一騎当千
Могучий воин Шифрование
暗号化 Расшифрование
復号 意到筆随
Лёгкое перо
意到筆随
Лёгкое перо
Отличаются
異なる Оповещение
メッセージ
Отправляемое сообщение Сравнение
比較する 結果通知
о результате
(открытый
(平文)текст) Совпадают
同じ
正真性・認証に
Целостностно и аутентично
問題なし
010010 010010
一騎当千
Могучий воин 一騎当千
Могучий воин 一騎当千
Могучий воин
101100