SlideShare a Scribd company logo
1 of 39
Download to read offline
公開 暗号方式を利用した通信
@oroponya
暗号
暗号
• アリスがボブにメッセージを送る
• キャロルには内容を見られたくない
ボブアリス
キャロル
暗号
• 第三者(キャロル)にバレないでメッセージ
のやり取りを行なう方法が「暗号」
ボブアリス
キャロル
シーザー暗号
シーザー暗号
• 文字をズラす暗号方式

ボブアリス キャロル
えおそにわ えおそにわ えおそにわ
?あいしてる あいしてる
暗号化 解読
3文字ズラすとき
あ → え
い → お
て → に
ん → う
シーザー暗号の弱点
• 暗号方式(何文字ズラすか)をボブとアリス
が知らないといけない
キャロル
えおそにわ えおそにわ えおそにわ
?あいしてる あいしてる
暗号化 解読
3文字
ズラしとくね
OK
3文字戻すよ
ボブアリス
シーザー暗号の弱点
• 暗号方式(何文字ズラすか)をボブとアリス
が知らないといけない
キャロル
えおそにわ えおそにわ えおそにわ
?あいしてる あいしてる
暗号化 解読
3文字
ズラしとくね
OK
3文字戻すよ
ボブアリス
シーザー暗号の弱点
• 暗号方式(何文字ズラすか)をボブとアリス
が知らないといけない
キャロル
えおそにわ えおそにわ えおそにわ
?あいしてる あいしてる
暗号化 解読
ボブとアリスの間で
ルールの共有が必要
3文字
ズラしとくね
OK
3文字戻すよ
ボブアリス
シーザー暗号の弱点
• 暗号方式(何文字ズラすか)をボブとアリス
が知らないといけない
キャロル
えおそにわ えおそにわ えおそにわ
?あいしてる あいしてる
暗号化 解読
ルールがキャロルにバレたらオシマイ
(解読されて通信が漏れてしまう)
3文字
ズラしとくね
OK
3文字戻すよ
ボブアリス
シーザー暗号の弱点
• 暗号方式(何文字ズラすか)をボブとアリス
が知らないといけない
キャロル
えおそにわ えおそにわ えおそにわ
?あいしてる あいしてる
暗号化 解読
それ、「公開 暗号方式」
なら大丈夫!
3文字
ズラしとくね
OK
3文字戻すよ
ボブアリス
公開 暗号
突然ですが、南京錠の説明です
南京錠
• 南京錠と、開けられる はペアになっている
南京錠
• だれでも「南京錠をロックする」ことは出来
る( を持っていなくてもよい)
ロック
南京錠
• 「南京錠を解除する」には、 が必要
解除
公開 暗号
• ボブは、「南京錠と のペア」を持っている
ボブアリス キャロル
公開 暗号
• 南京錠のコピーをバラまく

( はダメ!)
ボブアリス キャロル
好きに
使っていいよ
公開 暗号
• 南京錠はみんな持っている
• はボブだけが持っている
ボブアリス キャロル
公開 暗号 STEP 1
• アリスはメッセージを南京錠でロックする
ボブアリス キャロル
あいしてる
あいしてる
ロック
公開 暗号 STEP 2
• ロックされたメッセージをボブに届ける
ボブアリス キャロル
あいしてる
?あいしてる
ロック
あいしてる あいしてる
公開 暗号 STEP 3
• ボブは自分だけの でロックを解除する
ボブアリス キャロル
あいしてる
?あいしてる あいしてる
ロック 解除
あいしてる あいしてる
公開 暗号 FINISHED!
• キャロルにバレずに、メッセージを送れた!
ボブアリス キャロル
あいしてる
?あいしてる あいしてる
ロック 解除
あいしてる あいしてる
公開 と秘密
• 「南京錠」が公開 、「南京錠の 」が秘密
に相当する
公開 秘密
公開 と秘密
• バレてもいい公開 と、

絶対に漏らしてはいけない秘密
公開 秘密
サーバーへのログイン
• 公開 暗号方式は、サーバーにログインもで
きるスグレモノ
サーバーへのログイン STEP 0
• ログインする前に、

公開 をサーバーに設置しておく
あなたサーバー
サーバーへのログイン STEP 1
• サーバーでランダムな文字列を作ってロックする
あなたサーバー
ロック
サーバーへのログイン STEP 2
• あなたはロックされた文字列を受け取る
あなたサーバー
ロック
サーバーへのログイン STEP 3
• 秘密 でロックを解除する
あなたサーバー
ロック 解除
サーバーへのログイン STEP 4
• 解除した文字列をサーバーに送る
あなたサーバー
ロック 解除
サーバーへのログイン
• 解除した文字列をサーバーに送る
あなたサーバー
ロック 解除
この二つが同じものなら
ログイン成功
サーバーへのログイン
• 解除した文字列をサーバーに送る
あなたサーバー
ロック 解除
なぜなら
文字列のロックを正しく解除できるのは
秘密 を持っている人だけ
公開 ・秘密 の使い回し
• 秘密 さえしっかり守れば使い回しOK
その他
ATTENTION
• 公開 をもとに秘密 を割り出すことは「不可能ではない」が、十分な
強度があれば「不可能に近い」

(非現実的な時間がかかる)
• 十分な強度がないと、公開 から秘密 を割り出されてしまう
• 基本的に 強度= の長さ
• 現状では、2048bit を使っていればよいみたい

(作るときに長さを選べる)
• さらに秘密 にパスワードをかけると、より安全

(秘密 を使うときにパスワードの入力を要求されるようになる)
FURTHER INFORMATION
• 公開 と秘密 のペアは、手元のパソコンで簡単に作れる
• Windows: PuTTYgen
• Mac/Linux: Terminal
• GitHubに公開 を登録しておくと、APIからだれでも公開 を
取得できる
• 新規サーバーにログインしたいとき、サーバーの管理者に
「公開 はGitHubにおいてあるから設置しといて」とか頼
めて楽
FURTHER INFORMATION
• SSHとかSSLも大体似たようなかんじ
• 公開 暗号では一般にRSA暗号がよく使用される
• RSA暗号では、公開 で暗号化して秘密 で復号するだけ
でなく、秘密 で暗号化して公開 で復号化することも
できる

そのためデジタル署名にも使われる
• RSA暗号以外にも楕円曲線暗号とかある
CREDITS
• Icons made by Freepik from www.flaticon.com is licensed by CC BY 3.0
• Icon made by SimpleIcon from www.flaticon.com is licensed under CC BY 3.0
• Icon made by Elegant Themes from www.flaticon.com is licensed under CC BY 3.0
• 著者: @oroponya
この 作品 は クリエイティブ・コモンズ 表示 4.0
国際 ライセンスの下に提供されています。

More Related Content

What's hot

Gareth hayes. non alphanumeric javascript-php and shared fuzzing
Gareth hayes. non alphanumeric javascript-php and shared fuzzingGareth hayes. non alphanumeric javascript-php and shared fuzzing
Gareth hayes. non alphanumeric javascript-php and shared fuzzing
Yury Chemerkin
 
Djangoアプリのデプロイに関するプラクティス / Deploy django application
Djangoアプリのデプロイに関するプラクティス / Deploy django applicationDjangoアプリのデプロイに関するプラクティス / Deploy django application
Djangoアプリのデプロイに関するプラクティス / Deploy django application
Masashi Shibata
 

What's hot (10)

CSRF Attack and Its Prevention technique in ASP.NET MVC
CSRF Attack and Its Prevention technique in ASP.NET MVCCSRF Attack and Its Prevention technique in ASP.NET MVC
CSRF Attack and Its Prevention technique in ASP.NET MVC
 
Gareth hayes. non alphanumeric javascript-php and shared fuzzing
Gareth hayes. non alphanumeric javascript-php and shared fuzzingGareth hayes. non alphanumeric javascript-php and shared fuzzing
Gareth hayes. non alphanumeric javascript-php and shared fuzzing
 
Djangoアプリのデプロイに関するプラクティス / Deploy django application
Djangoアプリのデプロイに関するプラクティス / Deploy django applicationDjangoアプリのデプロイに関するプラクティス / Deploy django application
Djangoアプリのデプロイに関するプラクティス / Deploy django application
 
Cross site scripting XSS
Cross site scripting XSSCross site scripting XSS
Cross site scripting XSS
 
Introduction to Web Application Penetration Testing
Introduction to Web Application Penetration TestingIntroduction to Web Application Penetration Testing
Introduction to Web Application Penetration Testing
 
Laravel ユーザなら知っておくべきAuthオートログイン
Laravel ユーザなら知っておくべきAuthオートログインLaravel ユーザなら知っておくべきAuthオートログイン
Laravel ユーザなら知っておくべきAuthオートログイン
 
Secure coding in C#
Secure coding in C#Secure coding in C#
Secure coding in C#
 
Neil Saunders (Beamly) - Securing your AWS Infrastructure with Hashicorp Vault
Neil Saunders (Beamly) - Securing your AWS Infrastructure with Hashicorp Vault Neil Saunders (Beamly) - Securing your AWS Infrastructure with Hashicorp Vault
Neil Saunders (Beamly) - Securing your AWS Infrastructure with Hashicorp Vault
 
Cross site scripting attacks and defenses
Cross site scripting attacks and defensesCross site scripting attacks and defenses
Cross site scripting attacks and defenses
 
Servlet & JSP 教學手冊第二版 - 第 1 章:簡介Web應用程式
Servlet & JSP 教學手冊第二版 - 第 1 章:簡介Web應用程式Servlet & JSP 教學手冊第二版 - 第 1 章:簡介Web應用程式
Servlet & JSP 教學手冊第二版 - 第 1 章:簡介Web應用程式
 

Recently uploaded

Recently uploaded (11)

LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 

楽しく学ぼう公開鍵暗号方式