覗かれても安全なパスワードについて
小橋川弓加

1

(指導教員：萩田真理子)

はじめに

本研究では、表示されるランダムな数字を見てその人自身が暗号化し入力したものを、システムが復号したものと照らし合わせて判定するという方法をとる。

パスワードとは特定の機能を使用する際に認証を得るために入力する文字や数字の羅列のことである。そのうち数字だけの列となっているものを暗証番号といい、一般的に金融機関のキャッシュカードやクレジットカード等の本人確認として使用されている。
金融機関におけるパスワードの特徴としてまず、4桁の数字で構成されていることが多いことが上げられる。「0000」から「9999」の 10000 パターンしか存在しないため総当たり攻撃で正しいパスワードを発見することができるという欠点がある。しかしこれに関しては入力回数に制限（通常 3 回まで）をつけていることで攻撃を防ぐことができている。
2 つ目の特徴として、固定の番号であることが上げられる。盗み見られてしまうと他人でも使用できてしまうことが欠点である。
本研究では、パスワードを固定にするのではなく、ランダムに表示される数字をある規則性に従って暗号化して入力するシステムを作り、第三者に覗かれても破られることのないパスワードとすることが目標である。

24

パスワード入力方法 1「数字ではなく場所を覚える」

4.1

指定方法

マス目全てに 0〜9 の数字をランダムに挿入したものを表示し、4 桁のパスワードの規則をつくる。4 箇所選び、その場所の数字をそのまま入力するという条件でパスワードをつくることにする。例として図 2(左)のように大きさが 5 × 5 のマス目から 4 箇所選び、「➀➁ ➂ ➃」の順で数字を入力することにする。
図 2(右) の場合、パスワードは「3471」となる。

構造

図 2: (左) パスワードを入れる位置、(右) 実際の画面

4.2

パスワードの種類

見易さ、覚えやすさの点からマス目の大きさは 5 × 5と 5 × 6 で比較を行う。

● パスワード A [5 × 5]
ランダム (出る数字の個数に偏りがあってもよい)● パスワード B [5 × 5]
ほぼ等確率 (1 つの数字が 2 回または 3 回ずつ出る)
図 1: パスワードシステムの構造● パスワード C [5 × 6]
等確率 (1 つの数字が 3 回ずつ出る)

図 1 のように主に電波キーシステムと Arduino、各プログラムとタッチパネルディスプレイで構成されている。電波キーシステムはドアに設置されており、ドア開閉センサでドアの状態を認識し制御ユニットにおいて電圧を変化させることで電子錠の開錠や施錠を行っている。Arduino sketch、制御用 Java プログラムでArduino と制御ユニット間の電圧変化の受信や送信をし、パスワード用 Java プログラムでタッチパネルディスプレイに画面を表示している。

34.3

比較

パスワードを、ランダムに押して当たる確率、何の情報もなく当てる確率、見てパスワードの入れ方がわかる確率から比較をする。

暗号化

暗号化とは元のデータを何らかの規則に従って変換し、そのままでは第三者にとって何を意味しているのかわからないデータに変換することを指す。

ランダムに押して何の情報もなく当てる確率

見てパスワードの当たる確率(多い数字を押す)

入れ方がわかる確率

一番多い数 i が k 回のとき「abcd」のとき
11
11× b の個数× c の個数× d の個数a の個数(平均 0.018)

パスワード A( 1 )4

パスワード B( 1 )4

パスワード C( k )41010( 1 )41025
最悪の場合 1( 3 )4−k× 2525( 3 )4最悪の場合( 3 )4 2530( 2 )k( 1 )k2

最悪の場合

×( 1 )4−k

表 1: 3 つのパスワードの比較

211(平均 0.025)
3( 1 )4
最悪の場合( 1 )4 23
45 通り• (a0 + a1 ) :42 通り( 1 )4
表 1 からランダムに押して当たる確率はどれも 10と等しいことから残りの 2 点について比較を行う。
パスワード A とパスワード B を比べると、平均するとパスワード A の方が良いように見えるが最悪の場合パスワード B の方が良いことがわかる。またパスワー
ド B とパスワード C を比べると、パスワード C の方が良いことがわかる。これはパスワード B だと 1 つの数字が 2 回ずつまたは 3 回ずつ出るため、最悪の場合において何の情報もなく当てる確率では全て 3 回ずつ出る数字の時、見てパスワードの入れ方がわかる確率
では全て 2 回ずつ出る数字の時、と悪い方の値をとられてしまうためである。
これらよりマス目の大きさが 5 × 6 で数字が等確率となる表示方法を採用する。

これらよりパスワードごとの確率は表 2 のようになる。
パスワード C

パスワード D

パスワード E( 13 )4

1
1 342 · ( 3 )1
1 4= 1134> ( 10)1( 42· 13 )2

パスワード F11 3406 · ( 3 )1 21 4= ( 126) < ( 10)1
1 4= 10962< ( 10)

表 2: 見てパスワードの入れ方がわかる確率での比較
1 4表 2 より確率が ( 10) 以下となるパスワード E とパスワード F は安全性が高いと言える。
また、見てランダムに入力して当たる確率は
1• パスワード D、パスワード F: 10· ( 31 )3

本研究では、パスワード入力方法 1 の安全性を更に高めるために、入力する人が大変になり過ぎない程度の暗号化の計算を入力者の頭の中で行うようにすることで改良し、評価した。

5.1(偶数の場合)• (a0 + a1 + a2 ) :406 通り

パスワード入力方法 2「暗号化の計算を入力者が行う」

5(奇数の場合)

1 2• パスワード E: ( 10) · ( 13 )2となることからパスワード E が最も安全性が高い。
よって演算を行う桁が多い程安全性が高いことがわかる。

パスワードとする数字の条件

パスワードとする数字の選び方として

6● そのまま数字を入力する方法

通常の鍵を使用する場合と本システムを利用する場
合で開錠にかかる時間 (施錠されていることを確認し開錠してドアを開けるまでの時間) の比較を行った。

● 演算をした結果を入力する方法の 2 種類がある。演算をした結果を入力する方法の条
件はk0 a0 + k1 a1 + k2 a2 + . . . + kh ah + x(mod 10)

パスワード C

パスワード E

パスワード F

最短5”937”117”34

通常の鍵8”50

最長

11”2211”1915”4332”60

平均7”318”8510”4916”75

表 3: 開錠にかかる時間の比較

ap は表示されているものから選んだ数字であり、kq =1, 3, 7, 9、h は 0 以上で (表示されている数字の数 − 1)以下の整数、x は 0 以上の整数である。
ここで暗号化の計算において ar · as (mod 10) は使用できない。偶数 · 偶数 = 偶数、偶数 · 奇数 = 偶数、奇数 · 奇数 = 奇数 となることから乗算を行うと偶数の確率が高くなるためである。
今回マス目の大きさは 5 × 6 とするため max h = 29となり、パスワードとなる数字の選び方は 1030 通り存在し、十分多い数から選ぶことができる。計算のし易さの点から max h = 2、ki = 0 または 1 で実装した。

表 3 より通常の鍵より本パスワードシステムを利用する方が短時間で開錠できるという結果になった。また暗号化の計算を行うよりもそのまま入力する方が短時間にはなるが、安全性を考慮するとパスワード E が最適である。

7

まとめ表示する数字の個数については 0 から 9 の数字を等確率で出す場合に最も良い結果が得られるため、10 の倍数個が最適である。また、マス目の大きさが 5 × 6の表示で演算を行うパスワードについては 1 つの桁についての演算の難易度に関わらず、演算を行う桁数が多い程安全性が高くなる。パスワード E ならランダムに押して当たる確率、何の情報もなく当てる確率、見1 4) 以下となてパスワードの入れ方がわかる確率が ( 10る安全性の高いパスワードであり開錠にかかる時間も短く実装に耐え得るパスワードと言える。

この条件で以下のパスワードを作成した。全ての計算について (mod 10) を適用するものとする。

● パスワード D :「a0 + a1 b c d」
● パスワード E :「a0 + a1 b0 + b1 c d」
● パスワード F :「a0 + a1 + a2 b c d」
5.2

通常の鍵と本システムの比較

安全性の評価謝辞

まず、見てパスワードの入れ方がわかる確率で評価を行う。桁ごとの入力方法別に場合の数を求めると本研究を進めるにあたって、ご助言、ご指導いただ
きました冨樫雅文先生、浅本紀子先生に深く感謝いたします。

• a(数字をそのまま入力する場合) :3 通り22