平成 12 年度
学士学位論文コンテンツ転送サービス方式
Contents Forwarding Services

1010375

岡崎 友輝年

指導教員

清水 明宏

2001 年 2 月 5 日
高知工科大学 情報システム工学科

要 旨コンテンツ転送サービ ス方式
岡崎 友輝年

出先から，インターネットに接続された中継サーバを経由して，安全に自分宛の電子メー
ルを送受信したり，ファイル転送が可能なサービ ス方式を提案する．本方式では，ファイル
転送に電子メール転送プロトコル SMTP (Simple Mail Transfer Protocol) を用いること
によりファイアウォールを回避している．また，安全性を確保するために，SAS-K (SAS -KUT version) 認証方式を用いた 3 者間認証を考案し，ファイル操作に必要な要求情報を暗号化すると共に認証情報を含ませ，第 3 者によるなりすまし行為を不可能とする．
本稿では，内部サーバ，中継サーバ，クライアントの 3 者間で，極めて安全にファイル転送を行なうためのサービ ス方式を示し，その有効性について述べる．

キーワード

コンテンツ，ファイル，転送，認証，SAS-K，FEAL{i{Abstract

Contents Forwarding Services
Yukitoshi OKAZAKI

I propose the service that makes possible for you to handle incoming , outgoing mailand transfer les remotely and securely via server which is connected to internet. By
this service it is possible to break the rewall for using SMTP when les are transferred.
Using SAS-K system between three parties make the le transfer more secured. Thissystem encrypt the necessary information and prevents someone for hacking your data.
In this section, I explain more about this service including its e ectiveness and how
to transfer les extremely securely between local server, remote server, and client.

key words

Contents, File, Forwarding, Authenticstion, SAS-K, FEAL

{ ii {

目次
第1章

はじめに

1

第2章

従来の 3 者間電子メール転送サービス方式

2

暗号化機能を有する 3 者間電子メール転送サービ ス方式 . . . . . . . . . .

2

2.1.1

. . . . . . . . . . . . . . . . .

4

2.2

PERM 認証方式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

4

2.3

問題点

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

6

2.1

第3章

3.1

3.2

第4章

高速データ暗号アルゴ リズム FEAL

コンテンツ転送サービス方式の提案

7

3 者間での SAS-K 認証方式の利用 . . . . . . . . . . . . . . . . . . . . .

8

3.1.1

記号の定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

8

3.1.2

アルゴ リズム. . . . . . . . . . . . . . . . . . . . . . . . . . . . .

93 者間ファイル転送方式 . . . . . . . . . . . . . . . . . . . . . . . . . . .

10

3.2.1

機能設計 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

10

3.2.2

アルゴ リズム. . . . . . . . . . . . . . . . . . . . . . . . . . . . .

12

考察

17

4.1

3 者間での SAS-K 認証方式の利用 . . . . . . . . . . . . . . . . . . . . .

17

4.2

ファイルの漏えい防止. . . . . . . . . . . . . . . . . . . . . . . . . . . .

18

4.3

ユーザの利便性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

18

まとめ

19

第5章
謝辞

20

参考文献

21

{ iii {

目次

付録 A

高速データ暗号アルゴリズム FEAL

22

A.1

記号の定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

22

A.2

FEAL の基本構造 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

22

SAS-K（ SAS - KUT version ）認証方式

27

B.1

記号の定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

27

B.2

SAS-K プロトコル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

28

B.2.1

登録フェーズ (n = 0) . . . . . . . . . . . . . . . . . . . . . . . . .

28

B.2.2

登録フェーズ (n = k ) . . . . . . . . . . . . . . . . . . . . . . . . .

28

B.2.3

同期対策 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

30

付録 B

{ iv {

図目次
2.1

暗号化電子メール転送サービ ス方式の構成例 . . . . . . . . . . . . . . . . .

3

2.2 n 回目の PERM 認証 . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

5

第 3 者によるなりすまし行為 . . . . . . . . . . . . . . . . . . . . . . . . .

8

3.2 3 者間による SAS-K 認証方式の流れ . . . . . . . . . . . . . . . . . . . . .

9

3.3 3 者間によるファイル操作の流れ . . . . . . . . . . . . . . . . . . . . . . .

12

3.4

利用端末のファイル操作のフローチャート. . . . . . . . . . . . . . . . . .

14

3.5

中継サーバのファイル操作のフローチャート . . . . . . . . . . . . . . . . .

15

3.6

内部サーバのファイル操作のフローチャート . . . . . . . . . . . . . . . . .

16

A.1 FEAL-N の暗号化の処理の流れ . . . . . . . . . . . . . . . . . . . . . . .

24

A.2 f 関数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

25

A.3 FEAL における鍵生成における基本単位 . . . . . . . . . . . . . . . . . . .

25

A.4 FEAL の鍵生成用 fK 関数 . . . . . . . . . . . . . . . . . . . . . . . . . .

26

B.1 SAS-K の登録，及び認証フェーズ . . . . . . . . . . . . . . . . . . . . . .

29

B.2 カウンタを利用した同期方法 . . . . . . . . . . . . . . . . . . . . . . . . .

31

3.1

{v{

第1章

はじめに
安価で使いやすいネットワークとしてインターネットが普及した一方で，パーソナルコ
ンピュータ，モバイル端末は発達し ，それに伴い，電子メールが新しいコミュニケーション
ツールとして，その利用者を増加させてきた．今後はさらに，電子メールに限らず，データ
ファイルの送受信など 付加価値の高い電子データを安全に取得可能な方式が必要になることは充分に考えられる．特に，ビジネスユーザにとって，イントラネット内に蓄積された電子データを出先において有効に活用できるかが重要になる．
しかし，出先から電子メールの送受信を行なう場合，ユーザは電子メールの送受信可能な端末を確保しなければならない．また出先において，電子メールの送受信が可能な端末を利用できる場合，その端末にユーザ自身のアカウントを有しているとは考えられない．そのため，他者のアカウントを一時的に借用しなければならない．しかし，例えそのような環境が整っていたとしてもセキュリティ上の問題から，モデム経由でのメールサーバへのアクセス拒否や，ファイアウォールによる内部ネットワークへの不特定な IP アドレスのアクセス拒否などが考えられる．また，FTP1 (File Transfer Protocol) によるファイル転送もファイ
アウォールによって利用できない場合がある．
本論文以下では，第 2 章で従来ある技術について述べ，問題点をあげる．第 3 章では，その問題点を解決する方法として 3 者間ファイル転送方式を提案し，機能とアルゴ リズムを示
す．第 4 章では，提案した方式について安全性を示し，第 5 章でまとめとする．
1 ネットワーク上のクライアントとホストコンピュータとの間で，ファイルの転送を行なうためのプロトコル(またはそれを実装したコマンド )．UNIX では，この FTP プロトコルを実装した ftp コマンドが標準で提供される．

{1{

第2章

従来の 3 者間電子メール転送サービス方式
本章では，従来からある暗号化機能を有する 3 者間電子メール転送サービ ス方式のサービス構成の例を示し ，認証方式として用いられる PERM (Privacy Enhanced Information

Reading and Writing Management Protocol) 認証方式の概要と，サービ スを実現する上での問題点を明らかにする．

2.1

暗号化機能を有する 3 者間電子メール転送サービス方式

出先からインターネット経由で安全に電子メールの送受信のサービ スを受けたいという要求に対し ，3 者間電子メール転送サービ ス方式 [1] [2] が提案されている．このサービ ス方
式は，電子メールの転送を，ユーザがアカウントを有する内部ネットワーク上のメールサー
バ，インターネットに接続された外部ネットワーク上の中継サーバ，ユーザの利用端末の 3
者間で行なうサービ ス方式である．図 2.1 に構成例を示す．

3 者間の通信プ ロトコルは ，それぞれ ，メールサーバ (internal server) - 中継サーバ(transferring server) 間に，電子メール転送プ ロトコル SMTP1 (Simple Mail Transfer
Protocol) を用い，中継サーバ - 利用端末 (user) 間には， HTTP2 (Hyper Text Transfer
1 TCP/IP の上位プロトコルで，電子メール送信システム (MTA) で使われるプロトコル．電子メールソフ
トがメールサーバにメールを送るときや，メールサーバ間のメールのやり取りに使われる．
2 Web ブラウザと Web サーバ間において，HTML ファイルなどの文書を転送するために用いられるアプリ
ケーションレベルのプロトコル．サーバ側のポート番号は 80 番が予約されている．

{2{

2.1

暗号化機能を有する 3 者間電子メール転送サービ ス方式

Protocol) を用いる．
しかし，情報伝達手段として，電子メールを用いてより機密性の高い情報なども取り交わされるようになってきており，転送経路上あるいは中継サーバ内において，盗見，改ざんの脅威にさらされている．
この方式では，認証情報の生成および ，電子メールの暗号化，復号を行うために，利用端末上の WWW ブラウザにおいて Java Applet と Java Script を利用する．また，認証情報の作成とメールの暗号化，復号を行うための一方向変換関数として FEAL (Fast Data

Encipherment Algorithm) [3] [4] [5] を使用する．
暗号化・復号に関しては，電子メールの本文のみを暗号化し ，暗号化方式として，共通鍵暗号方式を利用するものである．利用者は予め，使用する鍵を メールサーバに登録しておき，閲覧時に利用端末で同じ鍵を用いて復号することができる．

internet

firewall

SMTP

HTTP

internal server transferring serverencryption
図 2.1

user

decryption
暗号化電子メール転送サービス方式の構成例{3{2.2 PERM 認証方式
2.1.1

高速データ暗号アルゴリズム FEAL

FEAL とはインボリューション構造を用いた共通鍵暗号方式であり，FEAL-NX (128 ビットの鍵を用いる) と FEAL-N (N は 4,8,16,32,…などがあり，暗号化に用いる基本変換単位の段数を表す) の 2 種類がある (付録 A)．
主な特徴として，演算型乱数化処理によりプログラムサイズを小さくすることができる，処理単位を 8 bit に統一する事により高速なソフトウェア処理を実現することができる，あ
みだ状の構造による入力ビット変化伝播効率の向上により高い乱数化効率を得ることができるなどが上げられる．

2.2

PERM 認証方式

暗号化機能を有する 3 者間電子メール転送サービ ス方式では PERM (Privacy Enhanced

Information Reading and Writing Management Protocol) 認証方式 [6] が用いられている．PERM の認証手順においては，認証される側が認証情報を行う認証者に対して，以下の 3 つのデータを送信する．

1．

前回に正当性の確認を終え登録されている一方向変換データの，変換前のデータ，

(V )
2．

次々回の認証に用いる一方向変換データ，( W )3．

次々回の認証に用いる一方向変換データの正当性を次回に確認するための認証子

データ，( M )認証毎に，これらのデータを送信することによって，認証情報を更新しながら，連鎖的に認証を行なうことが可能となる．
内部サーバにおける n 回目の認証処理は，図 2.3 に示すように，以下の手順で行なわれる．
利用者から送信された Vn 1 と利用者のユーザ ID から算出される一方向変換データと，
メールサーバに蓄積され既にその正当性が証明されている Wn 1 を比較し ( 1 ) ，Vn 1 の{4{

2.2 PERM 認証方式
正当性を証明する．
次に，利用者から送信され，その正当性が証明された Vn 1 と，内部サーバに蓄積されているデータ Wn から算出される一方向変換データと，内部サーバに蓄積されている認証子

n 1 とを比較し ( 2 ) ，Wn の正当性を検証する．正当性が証明された Wn は，次回の認M証に使用する．認証処理後，その正当性が証明された Wn と今回送付した Wn+1 ，Mn を内部サーバに保存する．

session of times n - 2

n - 1

n

(1)
V n-1
W n-1

Wn

W n+1

(2)
M n-1

next time
send dataserver data

図 2.2

M

n 回目の PERM 認証

{5{

2.3
2.3

問題点

問題点

[1] [2] によるサービ ス方式は，認証に PERM 認証方式を用いている． PERM 認証方式
は伝送経路上で 2 回連続して認証情報を取得する事により，第 3 者が正規のユーザとして成りすます可能がある．
また，このサービ ス方式では対象が電子メールに限られており，ネットワーク上でクライ
アントとサーバ間でファイル転送を行なうのに，外部のネットワークから自分のアカウントを有する内部ネットワークのサーバへアクセスしようとした場合，通常ファイアウォールによってそのアクセスを拒否される．例え，通過を許可していたとしても，ファイアウォールにセキュリティホールを作る事になり，ネットワーク全体のセキュリティを低下させるこ事
になる．

{6{

第3章

コンテンツ転送サービス方式の提案
そこで， SAS-K (SAS - KUT version) 認証方式 [7] を用いた暗号化電子メール転送サービス方式をプラットホームに，出先の利用端末，内部サーバ，中継サーバの 3 者間による電子メール転送，ファイル転送を可能とするサービ ス方式を提案する．また，机上検討を行ない本方式の有効性を示す．
暗号化電子メール転送サービ ス方式は，中継サーバ - 出先の利用端末間ではクライアント/ サーバシステムである．しかし ，ファイル転送を前述と同じ クライアント / サーバシス
テムで行なう場合，自分のアカウントを有する内部ネットワーク内のファイルをすべて中継
サーバに蓄積しておき，同じ環境を構築する必要がある．それでは，あまりにもサーバに負荷がかかり過ぎ ，現実的ではない．そこで，ユーザがファイル操作の要求を発信した時に，中継サーバを経由して，内部サーバへファイル操作を行なう方法が考えられる．
しかし，上記の方式においても，ユーザからのファイル操作要求，例えば，ファイルの転送要求，ファイル一覧の情報取得の要求など 情報は，伝送系路上で盗聴され利用される恐れがある．ファイル操作コマンド の不正利用を防ぐ 為には，ユーザからの要求情報に対し ，SAS-K 認証に用いる認証子データを含ませ，暗号化することにより解決できると考える．
そこで，ファイル転送を行なう際の問題を解決する為に，SAS-K 認証方式を 3 者間で利
用した．

{7{

3.1 3 者間での SAS-K 認証方式の利用

e-mail include
forwarding data

crackerinternet

SMTP

HTTP

internal server transferring serveruser

図 3.1 第 3 者によるなりすまし行為

3.1

3 者間での SAS-K 認証方式の利用

SAS-K 認証方式を利用した 3 者間 (出先の利用端末，内部サーバ，中継サーバ ) での認証方式を提案する．

3.1.1

記号の定義

A

: ID

S

: passwordNn : n 回目の認証で使用する乱数

EEEn1 : Nn を用いて 1 回，一方向性変換されたデータ
n2 : Nn を用いて 2 回，一方向性変換されたデータ
n3 : Nn を用いて 3 回，一方向性変換されたデータ{8{3.1 3 者間での SAS-K 認証方式の利用
3.1.2

アルゴリズムSAS-K 認証方式を利用した 3 者間での認証処理手順を説明する．図 3.2 に 3 者間によるSAS-K 認証方式の流れを示す．
internal server

usertransferring server

SMTP

HTTP
service request

random numbers

certification data
certification data

result service
end request

図 3.2

3 者間による SAS-K 認証方式の流れ

1.

ユーザから中継サーバへ， A ，認証要求を送信する．

2.

認証要求を受け取った中継サーバは乱数 Nn 1 を送信する．

3.

乱数 Nn 1 を受け取ったユーザは，新たに乱数 Nn を生成し，n1 1 ← E (A; S  Nn 1 )E

n2 1 ← E (A; En1 1)E

n1 ← E (A; S  Nn )E

n2 ← E (A; En1 )E

n3 ← E (A; En2 )Eを算出する．

4.

算出されたデータを元に，En1 1

 n2 1  n3 , n2  n2 1 を生成し ，
E

{9{

E

E

E

A

，Nn と

3.2 3 者間ファイル転送方式
一緒に中継サーバへ送信する．
中継サーバは受け取った En1 1

5.

いた En2 1 とで比較する．

 n2 1  n3 , n2  n2 1 を使い，予め登録しておE

E

E

正当な認証情報であれば更に内部サーバへ En1 1

6.

E n2 1  n3 , n2  n2 1 ， を
E

E

E

E

A

送信する．
内部サーバは受け取った En1 1

7.

いた En2 1 とで比較する．

 n2 1  n3 , n2  n2 1 を使い，予め登録してお
E

E

E

E

正当な認証情報であれば，登録してある En2 1 を En2 に置き換え，中継サーバへ認証

8.

完了の情報を送信する．
中継サーバが認証完了の情報を受け取ると，登録してある En2 1 を En2 に置き換え，

9.

ユーザへ認証完了の情報を送信する．

3.2

3 者間ファイル転送方式

出先の利用端末からファイル操作の要求を発信した時，自分のアカウントを有する内部
ネットワーク内にあるプログラムを起動させファイル操作する方式にする．以下に， 3 者間によるファイル転送の機能設計，及び，アルゴ リズムを示す．

3.2.1

機能設計

ファイル転送に必要な機能を，各 3 者毎に以下のように設計する．
利用端末の機能

ファイルの転送ファイルの一覧リストの表示
現在のワーキングディレクトリの表示
ワーキングディレクトリの変更
ファイルの復号{ 10 {

3.2 3 者間ファイル転送方式



ファイル操作の終了

ファイルの転送機能は，ファイル名を指定してファイル転送を行なう．ファイルの一覧リス
トの表示機能は，自分が作業しているデ ィレクトリにあるファイルすべてのリストを表示する．現在のワーキングデ ィレクトリの表示機能は，自分が作業しているデ ィレクトリを表示する機能である．ワーキングディレクトリの変更機能は，自分が作業しているディレクトリ
を移動する．ファイルの復号機能は，ファイル転送したファイルを復号する．ファイル操作の終了機能は，ファイルの操作を終了する．
中継サーバの機能

ユーザの認証ファイル操作の要求情報を送信
ファイルの保管
認証情報，要求情報の暗号化

ユーザの認証機能は，ユーザが正当であるかど うかを判断する．ファイル操作の要求情報を送信機能は，利用端末から送られてきたファイル操作要求情報を，内部サーバへ送信する．
ファイルの保管機能は，内部サーバから送信されてきたファイルを蓄積する．認証情報，要求情報の暗号化機能は，内部サーバへ送信する認証情報，要求情報を暗号化する．
内部サーバの機能







ユーザの認証ファイル操作の要求を実行
認証情報，要求情報の復号
ファイル操作の実行結果を暗号化
ファイル操作の実行結果を送信

ユーザの認証機能は，送られてきた要求情報が正当なユーザから送信された情報か判断する．ファイル操作の要求を実行機能は，利用端末から発信されたファイル操作を実行する．

{ 11 {

3.2 3 者間ファイル転送方式
認証情報，要求情報の復号機能は，暗号化された情報を復号する．ファイル操作の実行結果を暗号化機能は，ファイル操作した結果を暗号化する．ファイル操作の実行結果を送信機能
は，ファイル操作した結果を送信する．

3.2.2

アルゴリズム3 者間によるファイル操作の処理は以下の流れになる (図 3.3)．利用端末 (図 3.4)，中継サーバ (図 3.5)，内部サーバ (図 3.6) のファイル操作のフローチャートを示す．

internal servertransferring server

SMTP

HTTP
A ,
requestlast random
number

N n-1

N n-1
N n ,A ,certification
certifycertify
data ,
requetif certification
data is proper ,updatecertification
data and
if certification
random number
data is proper ,updateresult data
operate filecertification
data andrandom number
send result data

図 3.3

1.

user
user ID A
operate file
requestgenerate
random number N npassword S

N n ,A ,certification
generate
data ,
certification
data
requetresult data
end request

3 者間によるファイル操作の流れ

ユーザは ID とパスワード を入力し ，中継サーバへファイル操作要求と ID を送信する．

{ 12 {

3.2 3 者間ファイル転送方式
2.

中継サーバは受け取った ID に対応して，登録してある認証に使用した前回の乱数をユーザへ送信する．

3.

ユーザは受け取った前回の乱数，新しく生成した乱数，入力した ID ，パスワード を使用して認証情報を生成する．

4.

ユーザは認証情報，新しく生成した乱数，ID を中継サーバへ送信する．

5.

中継サーバは受け取った認証情報，受け取った乱数，登録してある乱数を使用し認証
を行なう．

6.

正当なユーザであると判断した場合，認証情報，ファイル操作要求，ユーザ側で新しく生成された乱数，ID を暗号化する．

7.

中継サーバは暗号化した情報を内部サーバへ送信する．

8.

内部サーバは暗号化された情報を受け取り，復号する．

9.

復号した情報から認証情報，ファイル操作要求，ユーザ側で新し く生成された乱数，

ID を抽出し ，抽出した認証情報，ユーザ側で新しく生成された乱数，登録してある乱数を使用して認証を行なう．

10.

正当なユーザであると判断した場合，ファイル操作要求に従って，ファイル操作を実行する．その際に，受け取った認証情報，ユーザ側で新しく生成された乱数を新たに登
録する．

11.

ファイル操作を実行した結果を暗号化する．

12.

内部サーバは暗号化した情報を中継サーバへ送信する．

13.

中継サーバは暗号化された情報を受け取り，ユーザへ送信する．その際に，ユーザから受け取った認証情報，ユーザ側で新しく生成された乱数を新たに登録する．

14.

ユーザは暗号化された情報を受け取り，復号する．

{ 13 {

3.2 3 者間ファイル転送方式

service request

enter ID and
Password

selectselect =list

select =changeselect =indicate

get list fileand folderchange directoryindicate working
directory

select =send

select =encryption

send file

encryption

select = end

ID = OKand Password
=OK

No

Yes

enter keyend request

図 3.4

利用端末のファイル操作のフローチャート{ 14 {

3.2 3 者間ファイル転送方式

service request
N n-1
user

send Nn-1

Nn ,A
certification
data

Nn ,A
certification datauser

N n-1 ,A’certification
data
A = A’
No
certification data
is OK
Yes

repuestencryption

encryption
datainternal serverinternal server

send error

requestuser

encryption data

user

send N n ,Aencryption
data

result data

sendresult data

result data

Nn ,certification
data

end service

図 3.5

user

中継サーバのファイル操作のフローチャート{ 15 {user

3.2 3 者間ファイル転送方式

service request

N n ,A
encryptiondata

N n ,A
encryption datatransferring
serverdecryption
N n-1 ,A’certification
data
A = A’
certification data
is OK
Yes

Nn ,
certification
data

No

send error

transferring
serverfile manage

encryption

send
encryption dataencryption datatransferring
serverend service

図 3.6

内部サーバのファイル操作のフローチャート{ 16 {

第4章

考察
第 3 章で提案した 3 者間での SAS-K 認証方式の利用とファイル転送方式に対して，ファイルの漏えい防止，ユーザの利便性について詳細な検討を行なう．

4.1

3 者間での SAS-K 認証方式の利用

SAS-K 認証方式，PERM 認証方式は共にワンタイムパスワード を用いた認証方式である．ワンタイムパスワード は伝送経路を流れる認証情報が随時更新されるため，第 3 者によるなりすまし行為が困難である．しかし，PERM 認証方式は認証情報を 2 回続けて取得する事による，なりすまし 行為の危険性があった．SAS-K 認証方式はなりすまし 行為の危険性がまったくない．有効性は [7] に示されている．

3 者間 SAS-K 認証方式では，利用端末 - 中継サーバ間，中継サーバ - 内部サーバ間のそれぞれに認証情報が流れる．第 3 者による認証情報の取得が行なわれた場合について検討を行なう．
利用端末 - 中継サーバ間で認証情報を取得し，第 3 者 - 中継サーバ間で使用した場合，認証情報は随時更新されるため，次回認証には使用できない．又，第 3 者 - 内部サーバ間で使用した場合，内部サーバへ送る認証情報は暗号化して送るため，取得した認証情報と一致しないので使用できない．
中継サーバ - 内部サーバ間で認証情報を取得し ，第 3 者 - 中継サーバ間で使用した場合，取得した認証情報は暗号化されているため使用できない．又，第 3 者 - 内部サーバ間で使用した場合，認証情報は随時更新されるため，次回認証には使用できない．

{ 17 {

4.2
4.2

ファイルの漏えい防止

ファイルの漏えい防止

本方式における秘密情報として SAS-K 認証で用いる認証パスワード と，ファイル操作を要求する時，ファイル操作実行の結果を送信する時に用いる暗号化パスワードがある．共に，パスワード そのものがネットワーク上を直接流れることはない．
中継サーバにおいても，第 3 者が攻撃した場合，中継サーバ自体にファイルが蓄積されていないため，ファイルが漏えいすることはない．この方式を，ファイルだけに限らず，従来の 3 者間電子メール転送サービ ス方式にも適応することにより，電子メールの漏えいも防ぐことができる．
また，ユーザからのファイル操作要求は，伝送経路上などで盗聴され再利用される恐れがあるため，送信する情報は要求情報に認証情報を加え暗号化したものを送信する．これにより，第 3 者によるなりすまし行為，いたずらを不可能にする．

4.3

ユーザの利便性

中継サーバを介することにより，不特定の端末からファイルの転送が可能となる．暗号化に関しても，共通鍵暗号方式を用い，ユーザが予め設定した暗号鍵で復号するので，復号鍵を記憶する必要がない．

{ 18 {

第5章

まとめ
本研究では，従来の 3 者間電子メール転送サービ ス方式を利用した，3 者間ファイル転送方式を考案し ，ユーザの要求毎にファイル操作を行なうアルゴ リズム，機能設計を行なった．また， SAS-K 認証方式を適用することにより，第 3 者によるなりすまし行為を不可能とする，極めて安全性の高いサービ ス方式を提案した．
ユーザの利便性向上のため，ユーザインタフェースを設計し，3 者間ファイル転送方式の実装を行ない，併せて，データベースへアクセスを可能にする方式についても，検討して行く必要がある．

{ 19 {

謝辞
本研究を行うに際し，多大なるご指導，ご鞭撻を頂いた，高知工科大学工学部情報システ
ム工学科の清水明宏助教授に深く感謝いたします．

また，本研究室院生
部生 伊藤

雄君，大石

井上 富幸氏，岡田 実氏，田鍋 潤一郎氏，ならびに本研究室学
恭裕君，小橋 誠治君，篠原 直之君，竹内紀貴君，谷藤喜彦君，林 竜也君， 間城 昌厚君，安岡 隆司君，山崎 愛さんに深く感謝いたします．

{ 20 {

参考文献[1] 堀岡，戸田，清水，"電子メール 転送サービ ス方式の検討"信学技報，TECHNICALREPORT OF IEICE，OFS97-39，IE97-77 (1997-09)[2] 堀岡，戸田，清水，"暗号化機能を 有する電子 メール 転送サービ ス方式"信学技報，
TECHNICAL REPORT OF IEICE，OFS97-42 (1997-11)[3] 清水，宮口，"高速データ暗号アルゴ リズム FEAL"信学論 D-I, Vol. J73-D-I, No. 7,
pp. 630-636, Jul. 1987.
[4] 板原，白石，森井，清水，"アルゴ リズム生成型 FEAL の強度評価に関する考察"信学
技報，TECHNICAL REPORT OF IEICE, Vol. 100 Num. 101 pp.29-34 (2000.05)[5] 岡本龍明，山本博資 著: 「現代暗号」，産業図書株式会社，pp87-104 (1997 初版)[6] 清水，"公衆電子メール転送サービ スの検討"信学技報， Vol. 96, No. 380 pp. 18-24,
Nov. 1996.
[7] 大石，林，井上，清水，"強力なパスワード 認証方式の提案 (SAS-K)"投稿予定{ 21 {

付録 A

高速データ暗号アルゴリズム
FEAL

FEAL は DES と同等の安全性を有し ，8 / 16 ビットのマイクロプロセッサ上のソフト
ウェアで実現した場合，小さいプログラム規模で高速に処理できることを条件に開発された暗号方式であり， 64 ビットの共通鍵を用いて，64 ビットの平文を暗号化し， 64 ビットの暗号文を生成する方式である．
そして FEAL には，FEAL-NX (128 ビットの鍵を用いる) と FEAL-N (N は 4,8,16,32,…
などがあり，暗号化に用いる基本変換単位の段数を表す) の 2 種類がある．

A.1

:

K

記号の定義
暗号鍵 64 bit

i : i 段目の f 関数への鍵入力 16 bitKLi : i 段目の平文上位 32 biti : i 段目の平文下位 32 bitRC

i : i 段目の鍵 64 bit の上位 32 biti : i 段目の鍵 64 bit の下位 32 bit

D

A.2

FEAL の基本構造

FEAL の基本構造について説明する．暗号化の処理の流れを図 A.1 に示す．
{ 22 {

A.2 FEAL の基本構造
まず，前処理として (KN +1 ; KN +2 ; KN +3 ; KN +4 ) の鍵系列 64 ビットと，平文 64 ビットとの排他的論理和をとり，排他的論理を取ったビット列の上位 32 ビットと，下位 32 ビッ
トをそれぞれ L00 ; R00 とし，さらに，L0 = L00 ; R0 = R00

 00 とおく．
L次に，f 関数による変換を n 回繰り返す．n 回目の変換では，Ln 1 ; Rn 1 と鍵 Kn 1 を用いて，f 関数により Ln ; Rn を出力する．
最後に，後処理として L0N = RN

 N とし， N を上位 32 ビット， 0N を下位 32 ビッ
LR

Lトとする 64 ビットのビット列を構成し， (KN +5 ; KN +6 ; KN +7 ; KN +8 ) の鍵系列 64 ビットと構成した 64 ビットのビット列との排他的論理和を取る．
また，FEAL の f 関数は図 A.2 のような構造をもつ．図 A.2 の Sl (l = 0; 1) 関数は次の式で与えられる．
S

l = LRots2(x + y + l)mod256

で，LRot2 は 2 ビットの左巡回シフトである．
鍵スケジューリングでは，暗号鍵 64 ビットの上位 32 ビットの Ci と，下位 32 ビットのi をひとまとまりとして，図 A.3 の変換を繰り返す．

D

また，鍵スケジューリングにおける fK 関数は図 A.4 で与えられる．なお，図の鍵生成部一段当たり，2 個の鍵 K2n 1 ; K2n が生成されるので，鍵生成部の段数は， (N + 8)=2 段必要となる．

{ 23 {

A.2 FEAL の基本構造

plaintext(64 bit)Kn+1,Kn+2,Kn+3,Kn+4(64 bit)L0(32 bit) R 0(32 bit)K0(16 bit)f(R 0, K0)

L1

R1

K1

f(R 1, K1)
L2

R2

Ln-2

R n-2

Kn-1

f(R n-2, Kn-1)
Ln-1

R n-1

Kn

f(R n-1, Kn)
Rn

Ln

Kn+5,Kn+6,Kn+7,Kn+8

ciphertext
図 A.1

FEAL-N の暗号化の処理の流れ{ 24 {

A.2 FEAL の基本構造

Kn
8

8

8

S0

16

8

S1

f(R n-1, Kn)

8

8

32

R n-1
32

S0

8

8

8

S1

8

図 A.2

C

K

D n-1

n-1

fK(C n-1, D n-1)

2n-1 K2n

C
図 A.3

f 関数

Dn

n

FEAL における鍵生成における基本単位{ 25 {

A.2 FEAL の基本構造

C

n-1
32

8

8

8

8

8

S1
8

S0

32

8
8

S0
8

S1
8

8

8

32

fK(C n-1, D n-1)
図 A.4

FEAL の鍵生成用 f{ 26 {

D n-1

K 関数

付録 B
SAS-K（ SAS - KUT version ）認証方式
SAS-K 認証方式はワンタイムパスワード 認証方式で，伝送路を流れる認証情報は毎回異なっているため，盗聴に強い安全な認証方式である．また，被認証者側および認証者側共に，実行する計算量が極めて少なく，被認証者側にも認証者側にも簡易で小さいプログラムサイ
ズで実現可能．

B.1

記号の定義

U ser

:

認証用プロトコルを用いるコンピュータユーザ

H ost

:

ユーザを認証するサーバ

A:

ユーザの ID

S:

ユーザのパスワードn:

認証セッション回数を表す 0 以上の整数

N

n:

E

:

E

nm :

n

回目の認証に対応する乱数

暗号用のハッシュ関数n を使い， (S  Nn ) が m 回ハッシュされたことを示す

N

 : ビット毎の排他的論理和{ 27 {

B.2 SAS-K プロトコル
B.2

SAS-K プロト コル

SAS-K プロトコルは登録フェーズと認証フェーズからなる．登録は一度だけ行なわれ，認証は U ser がログ インするたびに毎回行なわれる．その過程を図 B.1 に示す．

登録フェーズ (n = 0)

B.2.1

02 = E 2 (S  N0 ) を計算する．
2
U ser :
A; E0 を H ost に安全なチャンネルを用いて送信する．
2
H ost :
A; E0 を保存する．

U ser

B.2.2

:

E

登録フェーズ (n = k )U serに以下のデータを計算し，ユーザ ID A と共に H ost に送信する．

A; E

k1 1  Ek2 1  Ek3; Ek2  Ek2 1

その後，H ost 側では，(Ek2 k2 1)  k2 1 = k2 により，次回認証用データを取得す
E

E

E

る．
そして，E (Ek2 ) = Ek3 という認証確認用データを生成する．
次に，その Ek3 を用いて，(Ek1 1  Ek2 1  Ek3 )  Ek3 = Ek1 1  Ek2 1 を計算し，さらに，登録されてある Ek2 1 を用いて，(Ek1 1  Ek2 1 )  Ek2 1 = Ek1 1 を導出する．

そしてそのデータにもう一度ハッシュ関数を適用し ，Ek2 1 を得る．

そしてこのデータと，登録されている Ek2 1 を比較することによって認証を行なう．以上により，認証用データの正当性が検証された認証を可能とする．

{ 28 {

B.2 SAS-K プロトコル

User

Host
2

2

n = 0

A , N0A , E0

, E0

2

Store

A , E0(throught a secure channel)

n = 1

N1

2

1

E0

E0

1

A ,E0

2

3

E0

2

2

E1 E1

E0

3
E1

2
E1

2

2

E1

E0

2

2

2

....( 1 )

=E1

E0
3

E ( E1 ) = E1
2

1

E0

E0

1

E0

3

3

E1

E1

2

2

E0

E0

1

1

= E0

2

E0

1

= E0

2

E (E0 ) = E0

Compare2

Update stored E 0 to

( 1 )

2

Ek-1
n = k

Nk

1

2

E k-1

E k-1

2

3

Ek

Ek

1

2

A ,E k-1 Ek-1

3

2

Ek Ek

2

Ek-1

2

2

Ek

Ek-1
2

2

2

Ek-1 =Ek ....( k )3

E ( Ek ) = Ek
1

2

3

Ek-1

Ek-1

Ek

Ek = Ek-1

1

2

2

1

Ek-1

Ek-1

Ek-1 = Ek-1

1

3

2
Update stored Ek-1to

SAS-K の登録，及び認証フェーズ{ 29 {Ek-1

2

E (Ek-1) =Ek-1

図 B.1

2

1

Compare( k )B.2 SAS-K プロトコル
B.2.3

同期対策

通信が切断される時として，U ser から H ost への認証用データが未達の時，H ost からU serへの認証 OK のメッセージが未達の時の 2 つが考えられる．この問題に対し ，U ser ,H ost

共にカウンタ (0，もし くは 1 の値を取る) を持ち，カウンタにより同期を取る (図B.2)．
登録フェーズで，U ser , H ost のカウンタをそろえておく (例えば 0 に )．認証フェーズでU serは，ユーザ ID ，認証用データに加え，カウンタの値も H ost に送信する．H ost 側

では受け取ったカウンタの値を見て，同期が取れているかど うか検知．同期が取れていない
場合は U ser に対してエラーを返す．U ser はメッセージを受け取り，認証 OK のメッセー
ジが受け取れなかったことに気付く．そして新しい乱数を生成し，正常な認証を行なうことができる．

{ 30 {

B.2 SAS-K プロトコル

User

Host

N k-1

Ek-1

2

counter=0counter

generate and
store
n = k

counter
Authentication

Nk

=

=

0

Data use N k-1 N k

Authentication

Succeed
2

store

Ek

counter
Authentication
counter

=

0

=

1

Succeed1

clear N k-1

n = k + 1

generate andstore

counter
Authentication

N k+1

=

1

Data use N k N k+1

Authentication
store

Authentication

counter
Authenticationn = k + 2
counter=0

clear N kgenerate andstore

CountercounterCounter=0

FailedAuthentication

Succeed

FaiiledData use Nk+1N k+2

1

Authentication

図 B.2

カウンタを利用した同期方法

Succeedclear N k+1{ 31 {

=

check

N k+2

counter

2

E k+1

1

Data use N k N k+1

Check

Authentication=

SucceedSucceed

2

store

Ek+2

counter=1