共通科目情報処理(講義)、体育専門学群対象、2000年06月15日
電子・情報工学系
新城 靖
<yas@is.tsukuba.ac.jp>
このページは、次の URL にあります。
http://www.hlla.is.tsukuba.ac.jp/~yas/ipe/taiiku-kougi-2000/2000-06-15
あるいは、次のページから手繰っていくこともできます。
http://www.hlla.is.tsukuba.ac.jp/~yas/ipe/
http://www.hlla.is.tsukuba.ac.jp/~yas/index-j.html
http://www.ipe.tsukuba.ac.jp/~yshinjo/
試験の予定
- 日時:
- 2000年6月29日木曜日、4時限(13:45-15:00)
- 場所:
- 52B15(教室変更があります)
試験と同じ日に、ミニレポートを提出すること。
- 用紙
- A4サイズの紙1枚(両面使ってよい)
- 言語
- 日本語、または、英語
このミニレポートは、試験の時に参照してもよい(公式カンニングペーパー)。
ただし、採点の対象にするので、採点社がわかるように書くこと。すなわち、
言語は、日本語、または、英語を用い、暗号化せず、省略しすぎないようにす
る。
- 通信速度の単位 bps (bit/second、毎秒何ビット)
- クライアントとサーバ
- インターネット社会にも、規則や習慣がある。次の略語は、知っていると便利。
- 検索の考え方
- 3つの論理演算
- インターネットを流れるデータは、簡単に盗聴可能な形で流れている。
- 通信する時には、通信相手は IP アドレスを知ることができる。
- 暗号では、次の考え方が大事になる。
- 暗号化の方法は、次の2種類に分類される。
- 鍵を長くすると、解読しにくくなる。
- パスワードは、しばしば暗号化の鍵として働く。
- 暗号化の方法(暗号化のアルゴリズム)が公開されていない暗号は、強
いのか弱いのかわからない。
- 公開鍵暗号は、鍵の管理が楽である。
- 公開鍵暗号は、暗号通信の他にディジタル署名や利用者認証にも使える。
セキュリティとは、安全や機密を保持すること。
(国連の安全保証理事会は、Security Council。)
インターネットの危険性
- 盗聴
- 不正アクセス(利用権限がないコンピュータを利用する)、crack
- 破壊、改ざん
- 窃盗
インターネットでの通信は、暗号化されていない。
流れるデータを見れば簡単に内容を知ることができる。
サーバにためられた電子メールは、一般には自分でしか読むことができない。
ただし、サーバの管理者ならば、見ようと思えば見える状態になっている。
インターネットで通信する時には、通信相手に IP アドレスが渡されている。
(電子メールを送る時、WWWでページを見る時など)
電話でいうと、発信者番号(caller ID)が相手に伝わっている状態である。
IP アドレスから、コンピュータの名前(ドメイン名)を調べることができる
(逆引)。
普通は、利用者の名前までは、わからない。しかし、、、
- 大事なデータを、インターネットに接続されたコンピュータには置かない。
- 大事なデータを、電子メールで送らない。
- 防火壁を作る
- よいパスワードを使う
- 暗号を使う
個人で対応するには、まずパスワードが大事になる。
暗号が使われてきたグループの人々4つ
暗号とは、情報の意味が当事者以外にはわからないように情報を変
換することである。

図? 暗号の考え方
- 平文
- 元の情報
- 暗号文
- 変換された情報
平文、暗号文といっても、文字だけでなく、画像や音声などコンピュータが扱
えるあらゆるデータが想定されている。
- 暗号化
- 平文を暗号文に変換すること。暗号化鍵が必要。
- 復号化
- 暗号文を平文にもどすこと。復号化鍵が必要。
-
- 鍵
- 暗号化や複合化に必要な(短い)データ。
- 解読
当事者以外の第三者が、暗号文を元にもどすこと、あるいは、復号化鍵を得る
こと。
暗号化や複合化の方法(アルゴリズム)は、何種類もある。
なぜ鍵を使うのか。
- 同じ暗号化の方法を使っていたとしても、鍵を変えるだけで暗号文も変
わるので、暗号化のプログラムを1つ作っただけで、様々なデータを暗号化す
ることができる。
- 暗号化のプログラムを作る手間を軽減できる。
(人間がやっていた時は、暗号化をする方法を訓練する手間が省ける)
- 暗号化の手法を公開することができる。どのくらいその暗号が強いのか
がわかる。
(人間がやっていた時は、暗号化をする兵隊が敵に捕まったとしても、
鍵をしらないと解読されることはない。)
暗号化の方法が秘密になっていると、一見、より強そうにみえる。しかし、そ
の暗号が、強いのか弱いのか調べる方法がない
暗号の安全性は、鍵の安全性によっている。
鍵の管理が非常に重要となる。
暗号化のプログラムを作成した人でも、鍵を知らなければ平文を得ることがで
きない。
暗号の安全は、解読にかかるコストを大きくすることで、解読され
た平文から得られる利益を相対的に小さくすることに依存している。
暗号の安全にとって、最近のコンピュータの高速化と低下価格下は、
1つの脅威となっている。
安いコンピュータをたくさん並べて計算させる(並列処理)。
鍵を長くするだけで、安全性が指数関数的に高くなる。
鍵を1ビット長くすると、解読時間が2倍になる。

図? 指数関数

図? 指数関数
パスワードは、コンピュータの中では、暗号化の鍵として使われる。
長いパスワードは、破られにくい。1文字(大文字小文字数字記号)増やすと、
総当たりで解読に要する時間が、50倍から100倍近くかかるようになる。
暗号の方法は、大きく2つに分類される
- 共通鍵暗号系(対称暗号系)
-
暗号化鍵と復号化鍵が同じ(または片方から片方が簡単に計算できる)。
- 公開鍵暗号系(非対称暗号系)
暗号化鍵から復号化鍵を容易に類推できない。
Caesar暗号は、置換暗号(substitution cipher)の1つ。置換暗号では、各
文字あるいは文字群が、それぞれ別の文字あるいは文字群に置換される。
Caesar暗号は、知れている最後の暗号である。
平文アルファベットをN文字ずらした暗号文アルファベットに変える。
N=2 の時の対応表
abcdefghijklmnopqrstuvwxyz
CDEFGHIJKLMNOPQRSTUVWXYZAB
暗号の説明では、平文を小文字で、暗号文を大文字で書く習慣がある。
カルタゴ人以来騙された人はいない。
N=13 で、大文字小文字を保存する方法を、rot13 暗号という。rot13 は、電
子メールやネットワーク・ニュースで「ネタばらし」の部分を書く時に使われ
る。
数の集合から、無作為抽出で抜き出された数。
真性乱数。ビット列にすると、0と1の発生確率がそれぞれ1/2で、各ビッ
トは他の部分と独立なiid(independent and identically distributed)
である。
物理乱数。量子力学の効果を増幅してディジタル化したもの。
平滑化して0,1のバランスをとれば、真性乱数になる。
疑似乱数(pseudo random number)。種(seed)と呼ばれる入力ビットパタンを基
に計算された、種よりも長いランダムに見えるビット・パタン。種が決まれば
出力乱数は一意に決まる。
Caesar暗号では、定数だけずらしていた。定数ではなく、文字の長さの乱数の
列を使い、文字ごとに乱数の数だけだけずらす。
例:
乱数表: 0 18 19 22 22 7 9 4 14 3
平文: h e l l o w o r l d
8 5 12 12 15 23 15 18 12 4
暗号文: H W E H K D X V Z G
: 8 23 5 8 11 4 24 22 26 7
乱数表そのものや、大きな乱数表の中でどこから使い始めるかを鍵にすること
ができる。
真性乱数を使うと、解読する方法はない。しかし、使うのが大変。送信側と受
信側で同じ真性乱数を作るのが大変。
乱数表を記憶する変わりに、疑似乱数を使う方法がある。使う疑似乱数の性質
が悪いと解読される。
実際には、文字をずらすのではなく、足し算、引き算や、排他的論理和と呼ば
れる計算が使われることが多い。
公開鍵暗号系(非対称暗号系)では2つの異なる鍵を用いる。
便宜上、この2つを公開鍵と秘密鍵と呼ぶ。
これらの鍵は、互いに相手の逆関数になっている。
- 公開鍵で暗号化したものは秘密鍵で複合化できる。
- 秘密鍵で暗号化したものは公開鍵で複合化できる。
公開鍵暗号を使った暗号通信の手順

図? 公開鍵暗号を使った暗号通信の手順
- 受手は、公開鍵と秘密鍵の組を作り、公開鍵を誰でも読めるようにする。
- 送手は、受手の公開鍵を暗号化鍵として用いて暗号文を作り、送る。
- 送手は、受け取った暗号文を、自分の秘密鍵を復号化鍵として用いて復号化し、
元の平文を得る。
ここで、公開鍵から秘密鍵を計算することは難しい。ある平文を公開鍵で暗号
化してみたところで、秘密鍵を得ることは難しい。
公開鍵暗号の利点は、鍵を管理する手間が掛らないこと。
- 共通鍵暗号
- 情報を交換する間で鍵を安全に共有しなければならない。しかも、通信
相手ごとに鍵を変える必要がある。
- 公開鍵暗号
-
受手ごとに、1つの暗号化鍵を公開するだけでよい。今までに通信をしたこと
がない人からでも、暗号化されたメッセージを受け取ることが可能である。
公開鍵暗号系は、暗号通信だけでなくディジタル署名や利用者認証、電子現金
にも応用される。
認証とは、情報の正当性や完全性を確保する技術である。
- 利用者認証
- アクセスしてきた人が正当か否かを判定する。
しばしばパスワードや暗唱番号が用いられる。
- ディジタル署名(メッセージ認証、電子署名)
- 通常の署名とおなじく、送られてきたメッセージが送信者本人のもので
あることを識別、確認すること。
ディジタル署名では、次のようなシステムが必要である。
- 受信側は、送信者が誰であるのかを照会することができる。
- 送信者は、後でそのメッセージを送ったことを否定できない。
公開鍵暗号系を使ってディジタル署名を行うことができる。

図? 公開鍵暗号を使ったディジタル署名の手順
- (受手ではなく)送手は、公開鍵と秘密鍵の組を作り、公開鍵を誰でも
読めるようにする。
- 送手は、自分の秘密鍵を暗号化鍵として用いて暗号文を作り、送る。
- 送手は、受け取った暗号文を、送手の秘密鍵を復号化鍵として用いて復
号化し、元の平文を得る。この時、きちんと平文が得られた場合、その平文は、
その公開鍵の持ち主から送られてきたことがわかる。
メッセージ全体を暗号化する代わりに、メッセージを平文で送り、それにメッ
セージを一方向関数(ハッシュ関数)と呼ばれる方法で計算した結果だけを、
秘密鍵で暗号化したものを送る方法もある。一方向関数では、計算結果から元
の値(メッセージ)を計算することが難しい。
ディジタル署名や利用者認証は、公開鍵暗号系ではなく、共通鍵暗号系を用い
ても可能である。ただし、この場合、鍵を管理する信用できる管理センターが
必要となる。
利用者認証のために、公開鍵暗号系を用いることができる。銀行の口座を例に、
これを説明する。
- 口座を開く時に、顧客は、公開鍵と秘密鍵を生成し、公開鍵を銀行に届
け、秘密鍵を自分で保持する。
- 顧客が通信回線を通じて銀行にアクセスしてきた時、銀行は乱数を1つ
生成し、顧客の公開鍵でそれを暗号化し、顧客に送り返す。
- 顧客は、送られてきた暗号化された乱数を、保持している秘密鍵で復号
化し、銀行に送り返す。
- 銀行は、顧客から返された乱数が正しければ、正当な顧客であると判定
する。
次回の呼び出しでは、別の乱数を用いることで、通信を記録している傍受者に
も対応することができる。
単なる暗証番号の場合、通信を傍受されたら終り。
電子現金(electronic cash、電子マネー)とは、現金が持っている有用な性
質をディジタル情報を使って実現しようとするもの。
↑[もどる]
←[6月8日]
・[6月15日]
→[6月22日]
Last updated: 2000/06/15 02:20:26
Yasushi Shinjo / <yas@is.tsukuba.ac.jp>