JP4912797B2 - 暗号装置及び復号装置及び暗号方法及び復号方法及びプログラム - Google Patents
暗号装置及び復号装置及び暗号方法及び復号方法及びプログラム Download PDFInfo
- Publication number
- JP4912797B2 JP4912797B2 JP2006232962A JP2006232962A JP4912797B2 JP 4912797 B2 JP4912797 B2 JP 4912797B2 JP 2006232962 A JP2006232962 A JP 2006232962A JP 2006232962 A JP2006232962 A JP 2006232962A JP 4912797 B2 JP4912797 B2 JP 4912797B2
- Authority
- JP
- Japan
- Prior art keywords
- key
- sequence
- input
- keys
- generated
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Description
401は、平文データである(以下、単に平文ともいう)。
402は、平文401を暗号化する秘密鍵とIV(Initial Value)の保存先アドレス等の鍵情報である。
403は、暗号処理後の暗号文データである(以下、単に暗号文ともいう)。
41は、秘密鍵とIVを保存する秘密鍵・IV保存メモリである。
42は、メモリアクセス管理部である。
43は、鍵系列生成部である。
44は、鍵系列と平文の排他的論理和を行うXOR(Exclusive OR)部である。
ここで鍵系列とは、鍵系列生成部43から出力される乱数性の高いビット列のことで、暗号化側では平文のビット列と排他的論理和を行うことで暗号文を生成し、復号側では暗号文のビット列と排他的論理和を行うことで平文を生成するためのものである。
パケット通信前に、対向となる装置間で同じ秘密鍵とIVを共有し、それを秘密鍵・IV保存メモリ41に保存する。
パケット通信時は、平文401を暗号化するにあたり、メモリアクセス管理部42は、鍵情報402を受け取り、この情報を元に秘密鍵・IV保存メモリ41から暗号化対象の平文401に対応する秘密鍵とIVを読み出し、これを鍵系列生成部43に渡す。
秘密鍵とIVを受け取った鍵系列生成部43は、平文401の暗号化に使用する鍵系列を生成し、これをXOR部44に渡す。
XOR部44は、平文401と鍵系列の排他的論理和を行い、暗号文403を出力する。
最初に構成について説明する。
511は、鍵系列を生成するための秘密鍵とIVである。
512は、生成された鍵系列である。
52は、入力データの乱数性を高めるための攪拌関数である。
53は、中間鍵である。
ここで中間鍵について説明する。
攪拌関数52は秘密鍵とIV511を入力とし、処理を実行して得られるデータを再び攪拌関数52の入力として処理を行う。以降これを繰り返すことで攪拌関数52による処理一回ごとに得られる鍵系列の乱数性を高める。この攪拌関数52による1回の処理をラウンド処理と呼び、ラウンド間の攪拌関数52の入力データを中間鍵と呼ぶ。
図9は、鍵系列生成部50の鍵系列生成処理動作を示した図で、まず秘密鍵とIV511を入力として初期化を行う。
初期化とは、一定回数のラウンド処理を行うことで、攪拌関数52の出力する鍵系列の乱数性を高めるためのものである。このラウンド処理回数はストリーム暗号アルゴリズムごとに推奨されている回数が異なる。
初期化完了後は、乱数性の高い鍵系列を得られるため、以降のラウンドごとに得られる鍵系列KC#1、KC#2、・・・を暗号処理に使用する。
また、鍵系列の生成と同時に、次のラウンドの入力データとなる中間鍵が得られ、初期化完了後の中間鍵をMK#1とし、以降のラウンドごとに得られる中間鍵をMK#2、MK#3、・・・とする。
2回目以降のラウンドでは、秘密鍵とIV511は使用せず、前回のラウンドで得られた中間鍵のみを利用して鍵系列を生成する。
図9において、あるパケットの暗号処理で鍵系列KC#1とKC#2を使用した際に、中間鍵MK#3をメモリ等に一時的に保持しておくことで、その後KC#3を使用するパケットを受信したときに中間鍵MK#3を鍵系列生成部に入力することにより、(中間鍵MK#3を生成する時間を省くことで)短時間で鍵系列KC#3を生成する方法が考えられる。
同一の秘密鍵を使用するパケットを連続処理する場合は鍵系列をKC#1、KC#2、KC#3、・・・といったように連続生成するが、連続するパケットのそれぞれに対する秘密鍵が異なり、異なる秘密鍵で鍵系列を生成する場合は一時的に鍵系列生成部を明け渡す必要があるため、このように中間鍵を一時的にメモリ等に保持しておく必要がある。
また、同一の秘密鍵を使用した鍵系列の生成は、図9のKC#1、KC#2、・・・といったように逐次的に生成されるため、複数の鍵系列生成部を設けて鍵系列を並列処理して生成することができずに処理の高速化が図れないといった課題があった。
また、同じ理由により復号側装置では、通信路中でパケットの順序変化が起こった場合を考慮し、追い抜かれたパケットの鍵系列をメモリに保持しておく等の対策が必要で、これによって実装が困難になるといった課題があった。
また、復号側にメモリを保持しておく等の対策を行わなくても、通信路中で生じたパケットの順序変化又はパケットロスに対応できるようにすることを目的の一つとする。
中間鍵から生成される鍵系列を用いて、入力された平文データの暗号化を行う暗号装置であって、
平文データが入力される前に、秘密鍵とIV(Initial Value)とを用いて中間鍵を生成する中間鍵生成部と、
前記中間鍵生成部により生成された中間鍵を保存する中間鍵保存部と、
平文データが入力された際に、前記中間鍵保存部に保存されている中間鍵を用いて鍵系列を生成する鍵系列生成部とを有することを特徴とする。
中間鍵から生成される鍵系列を用いて、入力された平文データの暗号化を行う暗号装置であって、
一つの秘密鍵から派生する複数の中間鍵のそれぞれを入力し、入力した中間鍵からそれぞれ並列に鍵系列を生成する複数の鍵系列生成部と、
前記複数の鍵系列生成部により生成された複数の鍵系列を入力し、入力した複数の鍵系列を用いて、順次入力された複数の平文データの暗号化を行う暗号化処理部とを有することを特徴とする。
中間鍵から生成される鍵系列を用いて、入力された暗号文データの復号化を行う復号装置であって、
暗号文データが入力される前に、秘密鍵とIV(Initial Value)とを用いて中間鍵を生成する中間鍵生成部と、
前記中間鍵生成部により生成された中間鍵を保存する中間鍵保存部と、
暗号文データが入力された際に、前記中間鍵保存部に保存されている中間鍵を用いて鍵系列を生成する鍵系列生成部とを有することを特徴とする。
中間鍵から生成される鍵系列を用いて、入力された暗号文データの復号化を行う復号装置であって、
一つの秘密鍵から派生する複数の中間鍵のそれぞれを入力し、入力した中間鍵からそれぞれ並列に鍵系列を生成する複数の鍵系列生成部と、
前記複数の鍵系列生成部により生成された複数の鍵系列を入力し、入力した複数の鍵系列を用いて、順次入力された複数の暗号文データの復号化を行う復号化処理部とを有することを特徴とする。
また、暗号文データの入力前に予め生成した中間鍵を用いることで初期化処理に要する時間を省略して復号化処理の高速化が可能になるとともに、鍵系列の生成を並列に処理することにより、復号側にメモリを保持しておく等の対策を行わなくても、通信路中で生じたパケットの順序変化又はパケットロスに対応することができる。
本発明の実施の形態1を図1に示す。
最初に構成について説明する。
図1は、本実施の形態に係る暗号装置1又は復号装置2を示す。
101は、平文データである(以下、単に平文ともいう)。
102は、平文101を暗号化する鍵の保存先アドレス等の鍵情報である。
103は、暗号処理後の暗号文データである(以下、単に暗号文ともいう)。
11は、秘密鍵とIVを保存する秘密鍵・IV保存部である。
12は、初期化処理完了後および暗号通信中の中間鍵を保存する中間鍵保存メモリである。
13は、メモリアクセス管理部である。
141〜14Nは、それぞれ鍵系列生成部1〜Nである。
15は、鍵系列と平文の排他的論理和を行うXOR(Exclusive OR)部である。
鍵系列とは、前述したように、鍵系列生成部141〜14Nから出力される乱数性の高いビット列のことで、暗号化側では平文のビット列と排他的論理和を行うことで暗号文を生成し、復号側では暗号文のビット列と排他的論理和を行うことで平文を生成するためのものである。
また、各々の鍵系列生成部の構成は、図8に示したものと同様である。
また、複数の鍵系列生成部141〜14Nは、後述するように、一つの秘密鍵から派生する複数の中間鍵のそれぞれを入力し、入力した中間鍵からそれぞれ並列に鍵系列を生成する。
また、中間鍵保存メモリ12は、中間鍵生成部たる鍵系列生成部141〜14Nにより生成された中間鍵を保存するものであり、中間鍵保存部に相当する。
XOR部15は、複数の鍵系列生成部141〜14Nにより生成された複数の鍵系列を入力し、入力した複数の鍵系列を用いて、順次入力された複数の平文データ101の暗号化を行うものであり、暗号化処理部に相当する。また、復号装置2においては、XOR部15は、復号化処理部に相当する。
XOR部15は、入力した複数の鍵系列のそれぞれを用いて、順次入力された複数の平文データ101のそれぞれの暗号化処理を並列して行う。
なお、本実施の形態に係る復号装置の動作(復号方法)も図4及び図5に示す通りである。
まず、対向となる装置間で同じ秘密鍵とIVを共有し、それを秘密鍵・IV保存部11に保存する。
続いて中間鍵の生成を行う。
メモリアクセス管理部13は秘密鍵・IV保存部11から秘密鍵とIVを読み出し(S401)、これを処理待機中の鍵系列生成部141〜14Nのいずれかに渡す。ここではその鍵系列生成部を鍵系列生成部141とする。
鍵系列生成部141は、受け取った秘密鍵とIVから、暗号化に使用可能な鍵系列を生成する直前のラウンドまでラウンド処理を行い、中間鍵を生成する(S402)(中間鍵生成ステップ)。
そして、鍵系列生成部141は、最終的に得られた中間鍵をメモリアクセス管理部13に渡し、メモリアクセス管理部13は中間鍵を中間鍵保存メモリ12に保存する(S403)(中間鍵保存ステップ)。
以上の中間鍵生成処理は、ある秘密鍵1個とIV1個の組み合わせについて行うものである。本実施の形態の方式では、秘密鍵1個に対して複数個のIVを予め用意しておくため、秘密鍵ごとにIVの個数分、この処理を行う。つまり、M個のIVに対して、N個の鍵生成系列部を用いて、M個の中間鍵を予め生成し、M個の中間鍵を中間鍵保存メモリ12に保存する。M個のIVに対するM個の中間鍵の生成は、N個の鍵系列生成部が並列に処理する。
図4において、M個のIVのすべてについて中間鍵が生成されるまで、S402及びS403の処理が繰り返される(S404)。
また、この処理は暗号側、復号側の装置で共通であり、それぞれ装置起動後独立に行う。
平文101を暗号化するにあたり、メモリアクセス管理部13は、暗号化に使用する鍵情報102を受け取り(S501)、この情報を元に中間鍵保存メモリ12から該当する中間鍵(暗号化対象の平文101に対応する秘密鍵とIVで生成された中間鍵)を読み出し(S502)、これを処理待機中の鍵系列生成部141〜14Nの何れかに渡す。ここでは鍵系列生成部141を使用するものとする。
中間鍵を受け取った鍵系列生成部141は、その中間鍵を入力として複数回のラウンド処理を行い、平文101の暗号化に使用する複数個の鍵系列を生成する(S503)(鍵系列生成ステップ)。
鍵系列生成部141は、生成した複数個の鍵系列をXOR部15に渡し、XOR部15は平文と鍵系列の排他的論理和を行い、暗号文103を出力する(S504)(暗号化処理ステップ)。なお、復号装置2の場合は、平文101を出力する(復号化処理ステップ)。
ここでXOR部15の内部は、N個の排他的論理和演算部から成っており、同時にN個のパケットのビット列に対して鍵系列との排他的論理和演算を行うことが可能な構成とする。また、鍵系列生成部141は、あるパケットで必要とする最終の鍵系列を生成した際に、同時に得られる中間鍵をメモリアクセス管理部13に渡す。メモリアクセス管理部13は、読み出した中間鍵を保存してあった領域に、この中間鍵を上書きして保存する(S505)。
次の暗号化対象のパケットがあれば、S501〜S505の処理を繰り返す(S506)。
以上は暗号装置の動作であるが、復号装置では上記の平文101と暗号文103を入れ替えた動作となる。
秘密鍵ごと、それぞれ複数個のIVに対応する中間鍵を保持している。
図2では中間鍵をMKで表しており、秘密鍵の個数をL個、個々の秘密鍵に対応するIVをM個としており、個々の中間鍵を、秘密鍵番号をa、IV番号をb、鍵系列を生成する攪拌関数のラウンドcの入力となる中間鍵をMK#a_b_cで表している。
ここでは、秘密鍵Pを使用する複数のパケットの暗号処理を想定する。
図1において、暗号装置1が秘密鍵Pを使用する最初のパケットを受信した場合、メモリアクセス管理部13は鍵情報102から秘密鍵Pの中間鍵が必要であることを認識し、中間鍵保存メモリ12から、中間鍵MK#P_1_1を読み出して鍵系列生成部141〜14Nの処理待機中のいずれかの鍵系列生成部に渡す。
続いて、同じく秘密鍵Pを使用するパケットを受信した場合、メモリアクセス管理部13は中間鍵保存メモリ12から中間鍵MK#P_2_1を読み出して処理待機中のいずれかの鍵系列生成部に渡す。以降、同じ秘密鍵Pを使用するパケットは、中間鍵MK#P_3_1、中間鍵MK#P_4_1、・・・の順に処理待機中のいずれかの鍵系列生成部に渡して、各パケットの暗号処理に必要な分の鍵系列を生成する。
ここで、図2に示したとおり、1個の秘密鍵に対する中間鍵数がM個の場合、中間鍵MK#P_M_1まで使用したら、次のパケットには、また中間鍵MK#P_1_x(IV番号が1番の中間鍵)を使用する。このとき、中間鍵MK#P_1_1でパケットの暗号処理に必要な鍵系列の生成が終わっていれば、中間鍵MK#P_1_1が保存されていた中間鍵保存メモリの領域には次の中間鍵が上書きされていることになる。つまり、最初のパケットが鍵系列をs個(sラウンド処理分の鍵系列)を使用して暗号化された場合、x=s+1であり、中間鍵MK#P_1_1が保存されていた領域には中間鍵MK#P_1_s+1が上書きされている。
よって、MK#P_1_1〜MK#P_M_1までのM個のパケットを処理した後、次のパケットの鍵系列を生成するためには中間鍵MK#P_1_s+1を読み出して必要となる鍵系列の個数分だけラウンド処理を行い、処理完了後は中間鍵MK#P_1_s+1を保存してあったメモリ領域に次の中間鍵を上書きして保存する。以降はこの繰り返しで暗号化を行う。
また、図1の暗号文103にあたる暗号パケットには、中間鍵MK#a_b_cの中間鍵番号a、b、cの情報を持たせて送信する。つまり、暗号装置1は、暗号文データ103と、当該暗号文データ103の暗号化処理に用いられた鍵系列の生成に用いられた中間鍵の識別情報とを、復号装置2に対して出力する。
前述したように、復号装置2において、複数の鍵系列生成部141〜14Nは、暗号文データが入力される前に、秘密鍵とIVとを用いて複数の中間鍵を生成し、中間鍵保存メモリ(中間鍵保存部)12が当該複数の中間鍵を保存している。
複数の鍵系列生成部141〜14Nは、暗号文データ103が入力された際に、中間鍵保存メモリ12に保存されている複数の中間鍵のそれぞれを入力し、入力した中間鍵からそれぞれ並列に鍵系列を生成するが、復号装置2では、暗号文データの入力とともに、当該暗号文データの暗号化処理に用いられた鍵系列の生成に用いられた中間鍵の識別情報を入力し、暗号装置から入力した中間鍵の識別情報に基づき、複数の鍵系列生成部141〜14Nによる鍵系列生成の制御を行う。
そして、XOR部15(復号化処理部)は、複数の鍵系列生成部141〜14Nにより生成された複数の鍵系列を入力し、入力した複数の鍵系列を用いて、順次入力された複数の暗号文データの復号化を行う。
ここでは、暗号装置1と同じく、秘密鍵Pを使用する複数のパケットの復号処理を想定する。
復号側では、図1において鍵情報102として中間鍵番号a、b、cを受信する。復号側では、この情報を元に受信パケットをどの中間鍵で復号するのかを識別する。
基本的には暗号側と同じく、秘密鍵Pを使用するパケットを連続して受信した場合は、中間鍵MK#P_1_1、中間鍵MK#P_2_1、・・・、中間鍵MK#P_M_1、中間鍵MK#P_1_s+1、・・・と使用していくので、その順序通りに鍵系列を生成して暗号パケットを復号する。
図2で示したとおり、ある秘密鍵に中間鍵をM個用意した場合、最大M並列での鍵系列生成が可能となり、並列処理による高速化が実現できる。
本実施の形態の方式において、復号装置での復号処理は、受信パケットの順序が暗号化順序通りである場合も、暗号化とは異なる順序である場合も処理は特に変わらない。
例えば、中間鍵MK#P_4_1で復号すべきパケットの前に中間鍵MK#P_5_1で復号すべきパケットを受信した場合であっても、対応する中間鍵を中間鍵保存メモリ12から読み出して鍵系列を生成すればよい。
従来は、あるパケットが未着である場合に、未着パケット用の中間鍵から未着パケットに対する鍵系列を生成し、未着パケットに対する鍵系列生成時に生成される中間鍵から次のパケットに対する鍵系列を生成していた。このため、未着パケットが到着するまで未着パケットに対する鍵系列を別途メモリに保持している必要があったが、このような未着パケットに対する鍵系列をメモリに保持しておく必要がない。
本実施の形態の方式では、一度使用した中間鍵を上書きすることによってこれを実現している。一度上書きしてしまうと、上書きされた中間鍵を必要とするパケットを遅れて受信した場合に復号できなくなるが、IPsec(IP(Internet Protocol) Security Protocol)のシーケンス番号チェックにもあるように、最新の受信パケットから一定数以上前に受信すべきであったパケットを廃棄することでリプレイ攻撃の防止につながるため、これは特に問題とならない。
これは、リプレイ攻撃を防止するためのもので、同一パケットと最新の受信パケットから一定数以上前に送信されたパケットを受信したときに廃棄する機能である。これにはチェックウィンドウと呼ばれるパケット受信可否判定表を使用する。
暗号装置では、ある装置あてにIPsecパケットを送信するときにシーケンス番号を付加し、同一装置あてのパケットごとにインクリメントする。復号装置では受信したパケットのシーケンス番号とチェックウィンドウを比較することで、そのパケットが既に受信済みでないか、もしくは最新の受信パケットより一定数以上前に送信されたパケットでないかを見て受信可否を判定する。
この判定に合格したパケットだけ、認証処理や復号処理が行われる。
先の中間鍵保存メモリアクセス動作の説明にあった例で説明すると、中間鍵MK#P_1_1で鍵系列を生成したら、その中間鍵MK#P_1_1の保存領域に中間鍵MK#P_1_s+1を上書きして保存するが、この中間鍵MK#P_1_1と中間鍵MK#P_1_s+1の間には中間鍵MK#P_2_1〜中間鍵MK#P_M_1で暗号処理すべきM−1個のパケットが存在する。よって、M=Wとすることで、暗号装置は、最新の受信パケットからM個以上前に受信すべきであったパケットで使用する中間鍵を上書きすることになるが、そのようなパケットを受信したとしてもシーケンス番号チェックで廃棄される。
通信路中で中間鍵MK#P_1_1を使用するパケットをロスした場合、復号装置2の中間鍵保存メモリ12には中間鍵MK#P_1_1が中間鍵MK#P_1_s+1で上書きされずに残ることになる。その後、中間鍵MK#P_1_s+1で復号すべきパケットを受信した際、中間鍵保存メモリ12から中間鍵MK#P_1_1を読み出し、鍵系列生成部は、このパケットが必要とする鍵系列(中間鍵MK#P_1_s+1を使用する鍵系列)が生成されるまで処理を行う。
ここで、受信パケットには中間鍵番号P、1、s+1が付属しているため、中間鍵MK#P_1_1から鍵系列を生成したとしても、何ラウンド目の出力からが自身の復号に使用する鍵系列であるかを識別できる。
よって、通信路でパケットをロスした場合であっても、その後のパケットを復号可能である。
また、複数の鍵系列生成部141〜14Nは、新たに平文データが入力された際に、中間鍵保存メモリ12に保存されている複数の新たな中間鍵のそれぞれを入力し、入力した新たな中間鍵からそれぞれ並列に鍵系列を生成する。
また、複数の鍵系列生成部141〜14Nは、IPSecにおけるシーケンス番号のチェックウィンドウ値と同数の複数の中間鍵を生成する。
また、複数の鍵系列生成部141〜14Nは、新たに暗号文データが入力された際に、中間鍵保存メモリ12に保存されている複数の新たな中間鍵のそれぞれを入力し、入力した新たな中間鍵からそれぞれ並列に鍵系列を生成する。
また、複数の鍵系列生成部141〜14Nは、IPSecにおけるシーケンス番号のチェックウィンドウ値と同数の複数の中間鍵を生成する。
また通信路中でパケットの順序が入れ替わった場合であっても、復号装置で特別な処理を行う必要がない。
更に本実施の形態の方式では中間鍵保存のために必要なメモリサイズを抑制でき、加えて通信路中でパケットをロスした場合であっても、その後受信するパケットを復号することが可能である。
以上の実施の形態1では、秘密鍵・IV保存部を設けているが、パケット処理時これらのメモリを参照することはないため、暗号装置1又は復号装置2からこれを取り除いた構成も考えられる。その構成例を図3に示す。
図3において、301は平文データである。
302は、パケット通信時においては、平文301を暗号化する中間鍵の保存先アドレス等の鍵情報、もしくは、初期化時の中間鍵生成時においては、秘密鍵とIVの実体およびそれらから生成される中間鍵の保存先アドレス等の鍵情報である。
303は、暗号処理後の暗号文データである。
31は、中間鍵保存メモリである。
32は、メモリアクセス管理部である。
331〜33Nは、それぞれ鍵系列生成部1〜Nである。
34は、鍵系列と平文の排他的論理和を行うXOR部である。
まず、装置起動時は、メモリアクセス管理部32は鍵情報302を受け取り、秘密鍵とIVを鍵系列生成部に渡し、中間鍵を生成する。
鍵系列生成部は生成した中間鍵をメモリアクセス管理部32に渡し、メモリアクセス管理部32はこれを中間鍵保存メモリ31に保存する。
以上の動作を必要な中間鍵の個数分実施する。
その後のパケット通信時におけるパケットの暗号処理については実施の形態1の動作と同じである。
また、上記と同様の動作にて、本実施の形態に係る復号装置も実現できる。
また通信路中でパケットの順序が入れ替わった場合であっても、復号装置で特別な処理を行う必要がない。
更に本実施の形態の方式では中間鍵保存のために必要なメモリサイズを抑制でき、加えて通信路中でパケットをロスした場合であっても、その後受信するパケットを復号することが可能である。
図6は、実施の形態1及び2に係る暗号装置1及び復号装置2のハードウェア資源の一例を示す図である。なお、図6の構成は、あくまでも暗号装置1及び復号装置2のハードウェア構成の一例を示すものであり、暗号装置1及び復号装置2のハードウェア構成は図6に記載の構成に限らず、他の構成であってもよい。
図6において、暗号装置1及び復号装置2は、プログラムを実行するCPU911(Central Processing Unit、中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、プロセッサともいう)を備えている。CPU911は、バス912を介して、例えば、ROM(Read Only Memory)913、RAM(Random Access Memory)914、鍵系列生成回路901、XOR回路902、通信ボード915、磁気ディスク装置920と接続され、これらのハードウェアデバイスを制御する。更に、CPU911は、表示装置、キーボード、マウス、FDD(Flexible Disk Drive)、コンパクトディスク装置(CDD)、プリンタ装置、スキャナ装置等と接続していてもよい。また、磁気ディスク装置920の代わりに、光ディスク装置、メモリカード読み書き装置などの記憶装置でもよい。
RAM914は、揮発性メモリの一例である。ROM913、FDD、CDD、磁気ディスク装置920の記憶媒体は、不揮発性メモリの一例である。これらは、記憶装置あるいは記憶部の一例である。
通信ボード915、キーボード、スキャナ装置、FDDなどは、入力部、入力装置の一例である。
また、通信ボード915、表示装置、プリンタ装置などは、出力部、出力装置の一例である。
磁気ディスク装置920には、オペレーティングシステム921(OS)、ウィンドウシステム922、プログラム群923、ファイル群924が記憶されている。プログラム群923のプログラムは、CPU911、オペレーティングシステム921、ウィンドウシステム922により実行される。
ファイル群924には、以上の実施の形態で示した説明において、「〜の判断」、「〜の計算」、「〜の生成」、「〜の暗号化」、「〜の復号化」、「〜の保存」等として説明している処理の結果を示す情報やデータや信号値や変数値やパラメータが、「〜ファイル」や「〜データベース」の各項目として記憶されている。「〜ファイル」や「〜データベース」は、ディスクやメモリなどの記録媒体に記憶される。ディスクやメモリになどの記憶媒体に記憶された情報やデータや信号値や変数値やパラメータは、読み書き回路を介してCPU911によりメインメモリやキャッシュメモリに読み出され、抽出・検索・参照・比較・演算・計算・処理・編集・出力・印刷・表示などのCPUの動作に用いられる。抽出・検索・参照・比較・演算・計算・処理・編集・出力・印刷・表示のCPUの動作の間、情報やデータや信号値や変数値やパラメータは、メインメモリ、レジスタ、キャッシュメモリ、バッファメモリ等に一時的に記憶される。
また、以上の実施の形態で説明したフローチャートの矢印の部分は主としてデータや信号の入出力を示し、データや信号値は、RAM914のメモリ、FDDのフレキシブルディスク、CDDのコンパクトディスク、磁気ディスク装置920の磁気ディスク、その他光ディスク、ミニディスク、DVD等の記録媒体に記録される。また、データや信号は、バス912や信号線やケーブルその他の伝送媒体によりオンライン伝送される。
例えば、図6では、図1及び図3に示す鍵系列生成部を、鍵系列生成回路901により実現し、XOR部をXOR回路902で実現する例を示している。
また、以上の実施の形態の説明において「〜部」として説明しているものをファームウェアやソフトウェアにて実現する場合は、ファームウェアやソフトウェアは、プログラムとして、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、DVD等の記録媒体に記憶される。プログラムはCPU911により読み出され、CPU911により実行される。すなわち、プログラムは、実施の形態1及び実施の形態2の「〜部」としてコンピュータを機能させるものである。あるいは、実施の形態1及び実施の形態2の「〜部」の手順や方法をコンピュータに実行させるものである。
Claims (16)
- 中間鍵から生成される鍵系列を用いて、入力された平文データの暗号化を行う暗号装置であって、
平文データが入力される前に、一つの秘密鍵と複数のIV(Initial Value)とを用いてIVの個数分の中間鍵を生成する処理を複数の秘密鍵に対して行い、秘密鍵ごとにIVの個数分の中間鍵を生成する中間鍵生成部と、
前記中間鍵生成部により生成された複数の中間鍵を、秘密鍵ごとに区別して保存する中間鍵保存部と、
平文データが入力された際に、前記複数の秘密鍵のうちのいずれかの秘密鍵に対して生成されたいずれかの中間鍵を入力し、入力した中間鍵から鍵系列を生成する鍵系列生成部と、
前記鍵系列生成部により生成された鍵系列を入力し、入力した鍵系列を用いて、入力された平文データの暗号化を行う暗号化処理部とを有することを特徴とする暗号装置。 - 前記鍵系列生成部は、
入力した中間鍵を用いて鍵系列を生成するとともに新たな中間鍵を生成し、
前記中間鍵保存部は、
前記鍵系列生成部により生成された新たな中間鍵を、生成のもとになった中間鍵に上書きして保存することを特徴とする請求項1に記載の暗号装置。 - 前記中間鍵生成部は、
それぞれに番号が付されている複数のIVを用いて、秘密鍵ごとにIVの個数分の中間鍵を生成し、
前記中間鍵保存部は、
前記中間鍵生成部により生成された複数の中間鍵を、秘密鍵ごとに、対応するIV番号を管理して保存しており、
前記暗号装置は、更に、
入力された平文データの暗号化用の秘密鍵を特定し、特定した秘密鍵の複数の中間鍵のうちいずれかのIV番号に対応する中間鍵を前記中間鍵保存部から読み出し、読み出した中間鍵を前記鍵系列生成部に出力するメモリアクセス管理部を有することを特徴とする請求項1に記載の暗号装置。 - 前記暗号装置は、
平文データを繰り返し入力し、
前記メモリアクセス管理部は、
暗号化用の秘密鍵が共通している平文データが入力される度に、該当する秘密鍵の中間鍵をIV番号の順序に従って読み出すことを特徴とする請求項3に記載の暗号装置。 - 前記中間鍵生成部は、
秘密鍵ごとに、IPSec(IP(Internet Protocol) Security Protocol)におけるシーケンス番号のチェックウィンドウ値と同数の複数の中間鍵を生成することを特徴とする請求項1に記載の暗号装置。 - 前記鍵系列生成部は、
秘密鍵ごとに、IPSec(IP(Internet Protocol) Security Protocol)におけるシーケンス番号のチェックウィンドウ値と同数の複数の新たな中間鍵を生成することを特徴とする請求項2に記載の暗号装置。 - 前記暗号装置は、
前記暗号化処理部により暗号化された暗号文データと、当該暗号文データの暗号化処理に用いられた鍵系列の生成に用いられた中間鍵の識別情報とを、復号装置に対して出力することを特徴とする請求項1に記載の暗号装置。 - 中間鍵から生成される鍵系列を用いて、入力された暗号文データの復号化を行う復号装置であって、
暗号文データが入力される前に、一つの秘密鍵と複数のIV(Initial Value)とを用いてIVの個数分の中間鍵を生成する処理を複数の秘密鍵に対して行い、秘密鍵ごとにIVの個数分の中間鍵を生成する中間鍵生成部と、
前記中間鍵生成部により生成された複数の中間鍵を、秘密鍵ごとに区別して保存する中間鍵保存部と、
暗号文データが入力された際に、前記複数の秘密鍵のうちのいずれかの秘密鍵に対して生成されたいずれかの中間鍵を入力し、入力した中間鍵から鍵系列を生成する鍵系列生成部と、
前記鍵系列生成部により生成された鍵系列を入力し、入力した鍵系列を用いて、入力された暗号文データの復号化を行う復号化処理部とを有することを特徴とする復号装置。 - 前記鍵系列生成部は、
入力した中間鍵を用いて鍵系列を生成するとともに新たな中間鍵を生成し、
前記中間鍵保存部は、
前記鍵系列生成部により生成された新たな中間鍵を、生成のもとになった中間鍵に上書きして保存することを特徴とする請求項8に記載の復号装置。 - 前記中間鍵生成部は、
秘密鍵ごとに、IPSec(IP(Internet Protocol) Security Protocol)におけるシーケンス番号のチェックウィンドウ値と同数の複数の中間鍵を生成することを特徴とする請求項8に記載の復号装置。 - 前記鍵系列生成部は、
秘密鍵ごとに、IPSec(IP(Internet Protocol) Security Protocol)におけるシーケンス番号のチェックウィンドウ値と同数の複数の新たな中間鍵を生成することを特徴とする請求項9に記載の復号装置。 - 前記復号装置は、
暗号文データと、当該暗号文データの暗号化処理に用いられた鍵系列の生成に用いられた中間鍵の識別情報とを、暗号装置から入力し、
前記暗号装置から入力した中間鍵の識別情報に基づき、前記鍵系列生成部が鍵系列の生成に用いる中間鍵を特定することを特徴とする請求項8に記載の復号装置。 - 中間鍵から生成される鍵系列を用いて、入力された平文データの暗号化を行う暗号方法であって、
平文データが入力される前に、一つの秘密鍵と複数のIV(Initial Value)とを用いてIVの個数分の中間鍵を生成する処理を複数の秘密鍵に対して行い、秘密鍵ごとにIVの個数分の中間鍵を生成する中間鍵生成ステップと、
前記中間鍵生成ステップにより生成された複数の中間鍵を、秘密鍵ごとに区別して保存する中間鍵保存ステップと、
平文データが入力された際に、前記複数の秘密鍵のうちのいずれかの秘密鍵に対して生成されたいずれかの中間鍵を入力し、入力した中間鍵から鍵系列を生成する鍵系列生成ステップと、
前記鍵系列生成ステップにより生成された鍵系列を入力し、入力した鍵系列を用いて、入力された平文データの暗号化を行う暗号化処理ステップとを有することを特徴とする暗号方法。 - 中間鍵から生成される鍵系列を用いて、入力された暗号文データの復号化を行う復号方法であって、
暗号文データが入力される前に、一つの秘密鍵と複数のIV(Initial Value)とを用いてIVの個数分の中間鍵を生成する処理を複数の秘密鍵に対して行い、秘密鍵ごとにIVの個数分の中間鍵を生成する中間鍵生成ステップと、
前記中間鍵生成ステップにより生成された複数の中間鍵を、秘密鍵ごとに区別して保存する中間鍵保存ステップと、
暗号文データが入力された際に、前記複数の秘密鍵のうちのいずれかの秘密鍵に対して生成されたいずれかの中間鍵を入力し、入力した中間鍵から鍵系列を生成する鍵系列生成ステップと、
前記鍵系列生成ステップにより生成された鍵系列を入力し、入力した鍵系列を用いて、入力された暗号文データの復号化を行う復号化処理ステップとを有することを特徴とする復号方法。 - 中間鍵から生成される鍵系列を用いて、入力された平文データの暗号化を行うコンピュータに、
平文データが入力される前に、一つの秘密鍵と複数のIV(Initial Value)とを用いてIVの個数分の中間鍵を生成する処理を複数の秘密鍵に対して行い、秘密鍵ごとにIVの個数分の中間鍵を生成する中間鍵生成処理と、
前記中間鍵生成処理により生成された複数の中間鍵を、秘密鍵ごとに区別して保存する中間鍵保存処理と、
平文データが入力された際に、前記複数の秘密鍵のうちのいずれかの秘密鍵に対して生成されたいずれかの中間鍵を入力し、入力した中間鍵から鍵系列を生成する鍵系列生成処理と、
前記鍵系列生成処理により生成された鍵系列を入力し、入力した鍵系列を用いて、入力された平文データの暗号化を行う暗号化処理とを実行させることを特徴とするプログラム。 - 中間鍵から生成される鍵系列を用いて、入力された暗号文データの復号化を行うコンピュータに、
暗号文データが入力される前に、一つの秘密鍵と複数のIV(Initial Value)とを用いてIVの個数分の中間鍵を生成する処理を複数の秘密鍵に対して行い、秘密鍵ごとにIVの個数分の中間鍵を生成する中間鍵生成処理と、
前記中間鍵生成処理により生成された複数の中間鍵を、秘密鍵ごとに区別して保存する中間鍵保存処理と、
暗号文データが入力された際に、前記複数の秘密鍵のうちのいずれかの秘密鍵に対して生成されたいずれかの中間鍵を入力し、入力した中間鍵から鍵系列を生成する鍵系列生成処理と、
前記鍵系列生成処理により生成された鍵系列を入力し、入力した鍵系列を用いて、入力された暗号文データの復号化を行う復号化処理とを実行させることを特徴とするプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006232962A JP4912797B2 (ja) | 2006-08-30 | 2006-08-30 | 暗号装置及び復号装置及び暗号方法及び復号方法及びプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006232962A JP4912797B2 (ja) | 2006-08-30 | 2006-08-30 | 暗号装置及び復号装置及び暗号方法及び復号方法及びプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2008060750A JP2008060750A (ja) | 2008-03-13 |
JP4912797B2 true JP4912797B2 (ja) | 2012-04-11 |
Family
ID=39243028
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006232962A Expired - Fee Related JP4912797B2 (ja) | 2006-08-30 | 2006-08-30 | 暗号装置及び復号装置及び暗号方法及び復号方法及びプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4912797B2 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5178269B2 (ja) * | 2008-03-21 | 2013-04-10 | 三菱電機株式会社 | 復号装置及びプログラム |
JP2010268149A (ja) * | 2009-05-13 | 2010-11-25 | Mitsubishi Electric Corp | 復号装置及び復号方法及びプログラム |
JP5706751B2 (ja) * | 2011-04-28 | 2015-04-22 | Kddi株式会社 | ストリーム暗号の暗号化装置、ストリーム暗号の復号化装置、ストリーム暗号の暗号化方法、ストリーム暗号の復号化方法およびプログラム |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH088564B2 (ja) * | 1987-07-01 | 1996-01-29 | 東洋通信機株式会社 | 信号のスクランブル方法 |
US5016275A (en) * | 1988-10-28 | 1991-05-14 | International Business Machines Corporation | Buffered encryption/decryption |
US5151938A (en) * | 1990-03-13 | 1992-09-29 | General Instrument Corporation | Security enhancement in a data processor through use of dynamic parameter authentication |
EP1063811B1 (en) * | 1999-06-22 | 2008-08-06 | Hitachi, Ltd. | Cryptographic apparatus and method |
US6731758B1 (en) * | 1999-08-29 | 2004-05-04 | Intel Corporation | Digital video content transmission ciphering and deciphering method and apparatus |
US6804354B1 (en) * | 1999-12-02 | 2004-10-12 | Honeywell International Inc. | Cryptographic isolator using multiplication |
US6760440B1 (en) * | 1999-12-11 | 2004-07-06 | Honeywell International Inc. | One's complement cryptographic combiner |
JP2003032244A (ja) * | 2001-07-18 | 2003-01-31 | Nec Corp | ストリーム暗号装置 |
-
2006
- 2006-08-30 JP JP2006232962A patent/JP4912797B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2008060750A (ja) | 2008-03-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8983061B2 (en) | Method and apparatus for cryptographically processing data | |
EP2817916B1 (en) | Cryptographic transmission system using key encryption key | |
US8634549B2 (en) | Ciphertext key chaining | |
KR101324825B1 (ko) | 메시지 인증 코드 사전 연산 방법 및 시스템 | |
US7574571B2 (en) | Hardware-based encryption/decryption employing dual ported memory and fast table initialization | |
US8577022B2 (en) | Data processing apparatus | |
US20100061550A1 (en) | Data processing apparatus | |
JPWO2009087972A1 (ja) | データ送信装置、データ受信装置、これらの方法、コンピュータプログラム、そのデータ通信システム | |
JP2007173999A (ja) | 認証システム及び認証対象装置 | |
JP2001244925A (ja) | 暗号化データ管理システム及び方法、記憶媒体 | |
US8041033B2 (en) | Cipher feedback with variable block chaining | |
US6873707B1 (en) | Hardware-based encryption/decryption employing cycle stealing | |
JP4912797B2 (ja) | 暗号装置及び復号装置及び暗号方法及び復号方法及びプログラム | |
US20060269055A1 (en) | Method and apparatus for improving performance and security of DES-CBC encryption algorithm | |
JP2008306395A (ja) | 情報処理装置、情報処理方法 | |
JP5311981B2 (ja) | 暗号通信システム | |
JP2006527412A (ja) | データを暗号化および/または復号化するプロセッサとこのプロセッサを使用してデータを暗号化および/または復号化する方法 | |
US9438429B2 (en) | Method for authentication and electronic device for performing the authentication | |
JP4386926B2 (ja) | 暗号通信プログラム、暗号通信方法および暗号通信装置 | |
US20190312853A1 (en) | Keystream generation using media data | |
JP5431191B2 (ja) | 認証付きストリーム暗号の暗号化装置、認証付きストリーム暗号の復号化装置、暗号化方法、復号化方法およびプログラム | |
JP2005309148A (ja) | データ変換装置およびデータ変換方法 | |
KR100494560B1 (ko) | Rijndael암호를 이용한 블록 데이터 실시간암호복호화 장치 및 방법 | |
JP5178269B2 (ja) | 復号装置及びプログラム | |
JP2010268149A (ja) | 復号装置及び復号方法及びプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20090414 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20111115 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20111226 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20120117 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20120118 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150127 Year of fee payment: 3 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |