説明

ストリーム暗号の暗号化装置、ストリーム暗号の復号化装置、ストリーム暗号の暗号化方法、ストリーム暗号の復号化方法およびプログラム

【課題】n個のストリーム暗号の暗号化器あるいはストリーム暗号の復号化器の処理を含む、すべての処理を並列して実行する。
【解決手段】並列処理暗号モジュールが、l−nビットの初期値と平文と秘密鍵とを入力し、nビットの初期値を生成し、生成したnビットの初期値と入力したl−nビットの初期値とを結合してlビットの初期値を生成する。また、入力した平文をn個に分割し、生成したnビットの初期値をn個のストリーム暗号の暗号化器に1ビットずつ出力するとともに、秘密鍵および1/nに分割した平文をn個のストリーム暗号の暗号化器に出力する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、n個のストリーム暗号の暗号化器あるいはストリーム暗号の復号化器の処理を含む、すべての処理を並列して実行するストリーム暗号の暗号化装置、ストリーム暗号の復号化装置、ストリーム暗号の暗号化方法、ストリーム暗号の復号化方法およびプログラムに関する。
【背景技術】
【0002】
近年、コンピュータを利用した様々なサービスが提供されている。多くのサービスに置いては、通信の秘匿を実現するため、暗号が利用される。暗号方式として最も一般的なものは、1つの鍵で暗号化・復号化を行う共通鍵暗号方式であるが、共通鍵暗号方式は、大きくブロック暗号方式とストリーム暗号方式の2つに分けられる。前者は、最も一般的に用いられている方式であるが、後者の方が処理速度に優れるため、近年注目を集めつつある。
【0003】
ストリーム暗号は、初期値を初期化処理により攪拌して、初期の内部状態を生成し、生成した状態を逐次更新しながら、暗号化の各系列を生成する。従来のストリーム暗号では、初期化ののち、さらに鍵系列生成処理を行っていたために、処理を高速化するための技術が開示されている(例えば、特許文献1参照。)。
【0004】
特許文献1に記載の技術は、複数の鍵系列生成部が、平文データが入力される前に、一つの秘密鍵と複数のIV(Initial Value)とを用いて複数の中間鍵を生成し、中間鍵保存メモリが、生成された複数の中間鍵を保存し、更に、複数の鍵系列生成部は、平文データが入力された際に、中間鍵保存メモリに保存されている複数の中間鍵のそれぞれを入力し、入力した中間鍵からそれぞれ並列に鍵系列を生成し、XOR部は、複数の鍵系列生成部により生成された複数の鍵系列を入力し、入力した複数の鍵系列を用いて、平文データの暗号化を行うものである。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2008−60750号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
上記の技術は、鍵系列の生成までの処理を並列に処理しているため、従来のものよりも処理負荷の軽減が期待できるが、鍵系列と平文との排他的論理和演算処理が並列処理化されていないため、十分に処理負荷を軽減できるものではなかった。
【0007】
そこで、本発明は、上述の課題に鑑みてなされたものであり、n個のストリーム暗号の暗号化器あるいはストリーム暗号の復号化器の処理を含む、すべての処理を並列して実行するストリーム暗号の暗号化装置、ストリーム暗号の復号化装置、ストリーム暗号の暗号化方法、ストリーム暗号の復号化方法およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【0008】
本発明は、上記の課題を解決するために、以下の事項を提案している。なお、理解を容易にするために、本発明の実施形態に対応する符号を付して説明するが、これに限定されるものではない。
【0009】
(1)本発明は、n個のストリーム暗号の暗号化器(例えば、図1のストリーム暗号器200a、200b、200c、・・・、200x、200y、200zに相当)と、該n個のストリーム暗号の暗号化器を制御する並列処理暗号モジュール(例えば、図1の並列処理暗号モジュール100に相当)と、前記n個のストリーム暗号の暗号化器から出力されるn個の暗号文を結合して最終的な暗号文を出力する暗号文結合モジュール(例えば、図1の暗号文結合モジュール300に相当)と、を備え、前記並列処理暗号モジュールが、l−nビットの初期値と平文と秘密鍵とを入力する入力手段(例えば、図2の入力部110に相当)と、nビットの初期値を生成し、該生成したnビットの初期値と入力したl−nビットの初期値とを結合してlビットの初期値を生成する初期値生成手段(例えば、図2の初期値生成部120に相当)と、前記入力した平文をn個に分割する分割手段(例えば、図2の分割部130に相当)と、該生成したnビットの初期値を前記n個のストリーム暗号の暗号化器に1ビットずつ出力するとともに、前記秘密鍵および該1/nに分割した平文を前記n個のストリーム暗号の暗号化器に出力する出力手段(例えば、図2の出力部140に相当)と、を備えたことを特徴とするストリーム暗号の暗号化装置を提案している。
【0010】
この発明によれば、並列処理暗号モジュールの入力手段は、l−nビットの初期値と平文と秘密鍵とを入力する。初期値生成手段は、nビットの初期値を生成し、生成したnビットの初期値と入力したl−nビットの初期値とを結合してlビットの初期値を生成する。分割手段は、入力した平文をn個に分割する。出力手段は、生成したnビットの初期値をn個のストリーム暗号の暗号化器に1ビットずつ出力するとともに、秘密鍵および1/nに分割した平文をn個のストリーム暗号の暗号化器に出力する。したがって、平文を1/nに分割し、n個のストリーム暗号の暗号化器に分割した平文と初期値生成手段が生成した各ストリーム暗号の暗号化器固有の初期値を与えることにより、暗号文の生成までの一連の処理を並列に行うことができる。
【0011】
(2)本発明は、(1)のストリーム暗号の暗号化装置について、前記n個のストリーム暗号の暗号化器が、初期値と秘密鍵とを入力し、内部状態の初期化処理を行う初期化処理手段(例えば、図3の初期化処理部210に相当)と、内部状態を利用して鍵系列を生成する鍵系列生成手段(例えば、図3の鍵系列生成部220に相当)と、該生成した鍵系列と入力した平文との排他的論理和演算を行い、暗号文を生成する暗号文生成手段(例えば、図3の暗号文生成部230に相当)と、を備えたことを特徴とするストリーム暗号の暗号化装置を提案している。
【0012】
この発明によれば、n個のストリーム暗号の暗号化器の初期化処理手段は、初期値と秘密鍵とを入力し、内部状態の初期化処理を行う。鍵系列生成手段は、内部状態を利用して鍵系列を生成する。暗号文生成手段は、生成した鍵系列と入力した平文との排他的論理和演算を行い、暗号文を生成する。したがって、初期化処理、鍵系列生成処理、暗号文生成処理を各ストリーム暗号の暗号化器に並列に実行させることができる。
【0013】
(3)本発明は、(1)のストリーム暗号の暗号化装置について、前記並列処理暗号モジュールが、入力した秘密鍵の下位の任意のビットを生成し、異なるn個の秘密鍵を生成する秘密鍵生成手段(例えば、図2の秘密鍵生成部160に相当)と、該生成した秘密鍵をn個のストリーム暗号の暗号化器に1つずつ配布する秘密鍵配布手段(例えば、図2の配布部170に相当)と、を備えたことを特徴とするストリーム暗号の暗号化装置を提案している。
【0014】
この発明によれば、並列処理暗号モジュールの秘密鍵生成手段は、入力した秘密鍵の下位の任意のビットを生成し、異なるn個の秘密鍵を生成する。秘密鍵配布手段は、生成した秘密鍵をn個のストリーム暗号の暗号化器に1つずつ配布する。したがって、各ストリーム暗号の暗号化器に異なる秘密鍵を配布することにより、安全性を向上させることができる。
【0015】
(4)本発明は、(1)のストリーム暗号の暗号化装置について、前記暗号文結合モジュールが、ヘッダ情報を生成するヘッダ情報生成手段(例えば、図2のヘッダ情報生成部150に相当)と、前記n個のストリーム暗号の暗号化器が、暗号化処理を行った暗号文に該生成したヘッダ情報を付して前記暗号文結合モジュールに出力することを特徴とするストリーム暗号の暗号化装置を提案している。
【0016】
この発明によれば、暗号文結合モジュールのヘッダ情報生成手段は、ヘッダ情報を生成する。そして、n個のストリーム暗号の暗号化器が、暗号化処理を行った暗号文に生成したヘッダ情報を付して前記暗号文結合モジュールに出力する。これにより、暗号文を復号する際に、必要な情報を提供することができる。
【0017】
(5)本発明は、(4)のストリーム暗号の暗号化装置について、前記ヘッダ情報が、データの切れ目を認識するためのデリミタ、暗号文長、初期値、使用したストリーム暗号モジュールの番号を含むことを特徴とするストリーム暗号の暗号化装置を提案している。
【0018】
この発明によれば、ヘッダ情報が、データの切れ目を認識するためのデリミタ、暗号文長、初期値、使用したストリーム暗号モジュールの番号を含む。これにより、暗号文を復号する際に、暗号文の境目を確認できるとともに、初期値を生成するための情報を得ることができる。
【0019】
(6)本発明は、(1)のストリーム暗号の暗号装置により暗号化された暗号文を復号するストリーム暗号の復号化装置であって、n個のストリーム暗号の復号化器(例えば、図6のストリーム復号器500a、500b、500c、・・・、500x、500y、500zに相当)と、該n個のストリーム暗号の復号化器を制御する並列処理復号モジュール(例えば、図6の並列処理復号モジュール400に相当)と、前記n個のストリーム暗号の復号化器から出力されるn個の平文を結合して最終的な平文を出力する平文結合モジュール(例えば、図6の平文結合モジュール600に相当)と、を備え、前記並列処理復号モジュールが、l−nビットの初期値と暗号文と秘密鍵とを入力する入力手段(例えば、図7の入力部410に相当)と、該入力した暗号文からヘッダ情報を分離するヘッダ情報分離手段(例えば、図7のヘッダ情報分離部420に相当)と、該分離したヘッダ情報に基づいて、nビットの初期値を生成し、該生成したnビットの初期値と入力したl−nビットの初期値とを結合してlビットの初期値を生成する初期値生成手段(例えば、図7の初期値生成部430に相当)と、前記入力したヘッダ情報に基づいて、暗号文をn個に分割する分割手段(例えば、図7の分割部440に相当)と、該生成したnビットの初期値を前記n個のストリーム暗号の復号化器に1ビットずつ出力するとともに、前記秘密鍵および該1/nに分割した暗号文を前記n個のストリーム暗号の復号化器に出力する出力手段(例えば、図7の出力部450に相当)と、を備えたことを特徴とするストリーム暗号の復号化装置を提案している。
【0020】
この発明によれば、並列処理復号モジュールの入力手段は、l−nビットの初期値と暗号文と秘密鍵とを入力する。ヘッダ情報分離手段は、入力した暗号文からヘッダ情報を分離する。初期値生成手段は、分離したヘッダ情報に基づいて、nビットの初期値を生成し、生成したnビットの初期値と入力したl−nビットの初期値とを結合してlビットの初期値を生成する。分割手段は、入力したヘッダ情報に基づいて、暗号文をn個に分割する。出力手段は、生成したnビットの初期値をn個のストリーム暗号の復号化器に1ビットずつ出力するとともに、秘密鍵および該1/nに分割した暗号文をn個のストリーム暗号の復号化器に出力する。したがって、暗号文を1/nに分割し、n個のストリーム暗号の暗号化器に分割した暗号文とヘッダ情報に基づいて初期値生成手段が生成した各ストリーム暗号の暗号化器固有の初期値を与えることにより、平文の復号までの一連の処理を並列に行うことができる。
【0021】
(7)本発明は、(6)のストリーム暗号の暗号装置について、前記n個のストリーム暗号の復号化器が、初期値と秘密鍵とを入力し、内部状態の初期化処理を行う初期化処理手段(例えば、図8の初期化処理部510に相当)と、内部状態を利用して鍵系列を生成する鍵系列生成手段(例えば、図8の鍵系列生成部520に相当)と、該生成した鍵系列と入力した暗号文との排他的論理和演算を行い、平文を生成する平文生成手段(例えば、図8の平文生成部530に相当)と、を備えたことを特徴とするストリーム暗号の復号化装置を提案している。
【0022】
この発明によれば、n個のストリーム暗号の復号化器の初期化処理手段は、初期値と秘密鍵とを入力し、内部状態の初期化処理を行う。鍵系列生成手段は、内部状態を利用して鍵系列を生成する。平文生成手段は、生成した鍵系列と入力した暗号文との排他的論理和演算を行い、平文を生成する。したがって、初期化処理、鍵系列生成処理、平文生成処理を各ストリーム暗号の復号化器に並列に実行させることができる。
【0023】
(8)本発明は、(6)のストリーム暗号の暗号装置について、前記並列処理復号モジュールが、入力した秘密鍵の下位の任意のビットを生成し、異なるn個の秘密鍵を生成する秘密鍵生成手段(例えば、図7の秘密鍵生成部460に相当)と、該生成した秘密鍵をn個のストリーム暗号の復号化器に1つずつ配布する秘密鍵配布手段(例えば、図7の配布部470に相当)と、を備えたことを特徴とするストリーム暗号の復号化装置を提案している。
【0024】
この発明によれば、並列処理復号モジュールの秘密鍵生成手段は、入力した秘密鍵の下位の任意のビットを生成し、異なるn個の秘密鍵を生成する。秘密鍵配布手段は、生成した秘密鍵をn個のストリーム暗号の復号化器に1つずつ配布する。したがって、各ストリーム暗号の復号化器に異なる秘密鍵を配布することにより、安全性を向上させることができる。
【0025】
(9)本発明は、n個のストリーム暗号の暗号化器と、該n個のストリーム暗号の暗号化器を制御する並列処理復号モジュールと、前記n個のストリーム暗号の暗号化器から出力されるn個の暗号文を結合して最終的な暗号文を出力する暗号文結合モジュールと、を備えたストリーム暗号の暗号化装置におけるストリーム暗号の暗号化方法であって、前記並列処理復号モジュールが、l−nビットの初期値と平文と秘密鍵とを入力する第1のステップ(例えば、図5のステップS101に相当)と、前記並列処理復号モジュールが、nビットの初期値を生成し、該生成したnビットの初期値と入力したl−nビットの初期値とを結合してlビットの初期値を生成する第2のステップ(例えば、図5のステップS102に相当)と、前記並列処理復号モジュールが、前記入力した平文をn個に分割する第3のステップ(例えば、図5のステップS103に相当)と、前記並列処理復号モジュールが、該生成したnビットの初期値を前記n個のストリーム暗号の暗号化器に1ビットずつ出力するとともに、前記秘密鍵および該1/nに分割した平文を前記n個のストリーム暗号の暗号化器に出力する第4のステップ(例えば、図5のステップS104に相当)と、を備えたことを特徴とするストリーム暗号の暗号化方法を提案している。
【0026】
この発明によれば、並列処理復号モジュールが、l−nビットの初期値と平文と秘密鍵とを入力し、nビットの初期値を生成し、生成したnビットの初期値と入力したl−nビットの初期値とを結合してlビットの初期値を生成する。また、入力した平文をn個に分割し、生成したnビットの初期値をn個のストリーム暗号の暗号化器に1ビットずつ出力するとともに、秘密鍵および1/nに分割した平文をn個のストリーム暗号の暗号化器に出力する。したがって、平文を1/nに分割し、n個のストリーム暗号の暗号化器に分割した平文と初期値生成手段が生成した各ストリーム暗号の暗号化器固有の初期値を与えることにより、暗号文の生成までの一連の処理を並列に行うことができる。
【0027】
(10)本発明は、(9)のストリーム暗号の暗号装置により暗号化された暗号文を復号するストリーム暗号の復号化装置におけるストリーム暗号の復号化方法であって、n個のストリーム暗号の復号化器と、該n個のストリーム暗号の復号化器を制御する並列処理復号モジュールと、前記n個のストリーム暗号の復号化器から出力されるn個の平文を結合して最終的な平文を出力する平文結合モジュールと、を備え、前記並列処理復号モジュールが、l−nビットの初期値と暗号文と秘密鍵とを入力する第1のステップ(例えば、図9のステップS201に相当)と、前記並列処理復号モジュールが、該入力した暗号文からヘッダ情報を分離する第2のステップ(例えば、図9のステップS202に相当)と、前記並列処理復号モジュールが、該分離したヘッダ情報に基づいて、nビットの初期値を生成し、該生成したnビットの初期値と入力したl−nビットの初期値とを結合してlビットの初期値を生成する第3のステップ(例えば、図9のステップS203に相当)と、前記並列処理復号モジュールが、前記入力したヘッダ情報に基づいて、暗号文をn個に分割する第4のステップ(例えば、図9のステップS204に相当)と、前記並列処理復号モジュールが、該生成したnビットの初期値を前記n個のストリーム暗号の復号化器に1ビットずつ出力するとともに、前記秘密鍵および該1/nに分割した暗号文を前記n個のストリーム暗号の復号化器に出力する第5のステップ(例えば、図9のステップS205に相当)と、を備えたことを特徴とするストリーム暗号の復号化方法を提案している。
【0028】
この発明によれば、並列処理復号モジュールが、l−nビットの初期値と暗号文と秘密鍵とを入力し、入力した暗号文からヘッダ情報を分離する。また、分離したヘッダ情報に基づいて、nビットの初期値を生成し、生成したnビットの初期値と入力したl−nビットの初期値とを結合してlビットの初期値を生成する。そして、入力したヘッダ情報に基づいて、暗号文をn個に分割し、生成したnビットの初期値をn個のストリーム暗号の復号化器に1ビットずつ出力するとともに、秘密鍵および1/nに分割した暗号文をn個のストリーム暗号の復号化器に出力する。したがって、暗号文を1/nに分割し、n個のストリーム暗号の暗号化器に分割した暗号文とヘッダ情報に基づいて初期値生成手段が生成した各ストリーム暗号の暗号化器固有の初期値を与えることにより、平文の復号までの一連の処理を並列に行うことができる。
【0029】
(11)本発明は、n個のストリーム暗号の暗号化器と、該n個のストリーム暗号の暗号化器を制御する並列処理暗号モジュールと、前記n個のストリーム暗号の暗号化器から出力されるn個の暗号文を結合して最終的な暗号文を出力する暗号文結合モジュールと、を備えたストリーム暗号の暗号化装置におけるストリーム暗号の暗号化方法をコンピュータに実行させるためのプログラムであって、前記並列処理復号モジュールが、l−nビットの初期値と平文と秘密鍵とを入力する第1のステップ(例えば、図5のステップS101に相当)と、前記並列処理復号モジュールが、nビットの初期値を生成し、該生成したnビットの初期値と入力したl−nビットの初期値とを結合してlビットの初期値を生成する第2のステップ(例えば、図5のステップS102に相当)と、前記並列処理復号モジュールが、前記入力した平文をn個に分割する第3のステップ(例えば、図5のステップS103に相当)と、前記並列処理復号モジュールが、該生成したnビットの初期値を前記n個のストリーム暗号の暗号化器に1ビットずつ出力するとともに、前記秘密鍵および該1/nに分割した平文を前記n個のストリーム暗号の暗号化器に出力する第4のステップ(例えば、図5のステップS104に相当)と、をコンピュータに実行させるためのプログラムを提案している。
【0030】
この発明によれば、並列処理暗号モジュールが、l−nビットの初期値と平文と秘密鍵とを入力し、nビットの初期値を生成し、生成したnビットの初期値と入力したl−nビットの初期値とを結合してlビットの初期値を生成する。また、入力した平文をn個に分割し、生成したnビットの初期値をn個のストリーム暗号の暗号化器に1ビットずつ出力するとともに、秘密鍵および1/nに分割した平文をn個のストリーム暗号の暗号化器に出力する。したがって、平文を1/nに分割し、n個のストリーム暗号の暗号化器に分割した平文と初期値生成手段が生成した各ストリーム暗号の暗号化器固有の初期値を与えることにより、暗号文の生成までの一連の処理を並列に行うことができる。
【0031】
(12)本発明は、(11)のストリーム暗号の暗号装置により暗号化された暗号文を復号するストリーム暗号の復号化装置におけるストリーム暗号の復号化方法をコンピュータに実行させるためのプログラムであって、n個のストリーム暗号の復号化器と、該n個のストリーム暗号の復号化器を制御する並列処理暗号モジュールと、前記n個のストリーム暗号の復号化器から出力されるn個の平文を結合して最終的な平文を出力する平文結合モジュールと、を備え、前記並列処理復号モジュールが、l−nビットの初期値と暗号文と秘密鍵とを入力する第1のステップ(例えば、図9のステップS201に相当)と、前記並列処理復号モジュールが、該入力した暗号文からヘッダ情報を分離する第2のステップ(例えば、図9のステップS202に相当)と、前記並列処理復号モジュールが、該分離したヘッダ情報に基づいて、nビットの初期値を生成し、該生成したnビットの初期値と入力したl−nビットの初期値とを結合してlビットの初期値を生成する第3のステップ(例えば、図9のステップS203に相当)と、前記並列処理復号モジュールが、前記入力したヘッダ情報に基づいて、暗号文をn個に分割する第4のステップ(例えば、図9のステップS204に相当)と、前記並列処理復号モジュールが、該生成したnビットの初期値を前記n個のストリーム暗号の復号化器に1ビットずつ出力するとともに、前記秘密鍵および該1/nに分割した暗号文を前記n個のストリーム暗号の復号化器に出力する第5のステップ(例えば、図9のステップS205に相当)と、をコンピュータに実行させるためのプログラムを提案している。
【0032】
この発明によれば、並列処理暗号モジュールが、l−nビットの初期値と暗号文と秘密鍵とを入力し、入力した暗号文からヘッダ情報を分離する。また、分離したヘッダ情報に基づいて、nビットの初期値を生成し、生成したnビットの初期値と入力したl−nビットの初期値とを結合してlビットの初期値を生成する。そして、入力したヘッダ情報に基づいて、暗号文をn個に分割し、生成したnビットの初期値をn個のストリーム暗号の復号化器に1ビットずつ出力するとともに、秘密鍵および1/nに分割した暗号文をn個のストリーム暗号の暗号化器に出力する。したがって、暗号文を1/nに分割し、n個のストリーム暗号の暗号化器に分割した暗号文とヘッダ情報に基づいて初期値生成手段が生成した各ストリーム暗号の暗号化器固有の初期値を与えることにより、平文の復号までの一連の処理を並列に行うことができる。
【発明の効果】
【0033】
本発明によれば、ストリーム暗号の暗号化/復号化処理を複数並列に実行し、多重化することでより高速な暗号化/復号化処理を実現することができるという効果がある。
【図面の簡単な説明】
【0034】
【図1】本発明の第1の実施形態に係るストリーム暗号の暗号化装置の構成を示す図である。
【図2】本発明の第1の実施形態に係るストリーム暗号の暗号化装置における並列処理暗号モジュールの構成を示す図である。
【図3】本発明の第1の実施形態に係るストリーム暗号の暗号化装置におけるストリーム暗号器の構成を示す図である。
【図4】本発明の第1の実施形態に係るストリーム暗号の暗号化装置においてストリーム暗号器から出力されるデータ構造を例示した図である。
【図5】本発明の第1の実施形態に係るストリーム暗号の暗号化装置の処理を示す図である。
【図6】本発明の第2の実施形態に係るストリーム暗号の復号化装置の構成を示す図である。
【図7】本発明の第2の実施形態に係るストリーム暗号の復号化装置における並列処理暗号モジュールの構成を示す図である。
【図8】本発明の第2の実施形態に係るストリーム暗号の暗号化装置におけるストリーム暗号器の構成を示す図である。
【図9】本発明の第2の実施形態に係るストリーム暗号の復号化装置の処理を示す図である。
【発明を実施するための形態】
【0035】
以下、本発明の実施形態について、図面を用いて、詳細に説明する。
なお、本実施形態における構成要素は適宜、既存の構成要素等との置き換えが可能であり、また、他の既存の構成要素との組合せを含む様々なバリエーションが可能である。したがって、本実施形態の記載をもって、特許請求の範囲に記載された発明の内容を限定するものではない。
【0036】
以下、図1から図8を用いて、本発明に係るストリーム暗号の暗号化装置およびストリーム暗号の復号化装置について、詳細に説明する。
【0037】
<第1の実施形態>
図1から図4を用いて、本実施形態に係るストリーム暗号の暗号化装置について説明する。
【0038】
<ストリーム暗号の暗号化装置の構成>
本実施形態に係るストリーム暗号の暗号化装置は、図1に示すように、並列処理暗号モジュール100と、複数のストリーム暗号器200a、200b、200c、・・・、200x、200y、200zと、暗号文結合モジュール300とから構成されている。
【0039】
並列処理暗号モジュール100は、l−n(n;ストリーム暗号器の数)ビットの初期値と平文と秘密鍵とを入力し、nビットの初期値を生成し、生成したnビットの初期値と入力したl−nビットの初期値とを結合してlビットの初期値を生成する。また、入力した平文をn個に分割し、生成したnビットの初期値をn個のストリーム暗号器200a、200b、200c、・・・、200x、200y、200zに1ビットずつ出力するとともに、秘密鍵および1/nに分割した平文をn個のストリーム暗号器200a、200b、200c、・・・、200x、200y、200zに出力する。
【0040】
ストリーム暗号器200a、200b、200c、・・・、200x、200y、200zは、初期値と秘密鍵とを入力し、内部状態の初期化処理を行う。また、内部状態を利用して鍵系列を生成する。さらに、生成した鍵系列と入力した平文との排他的論理和演算を行い、暗号文を生成する。
【0041】
暗号文結合モジュール300は、図4に示すように、ストリーム暗号器200a、200b、200c、・・・、200x、200y、200zが、暗号化処理を行った暗号文に、生成したヘッダ情報を付した情報を1つの単位とし、これらを連結して暗号文として出力する。
【0042】
<並列処理暗号モジュールの構成>
本実施形態に係る並列処理暗号モジュールは、図2に示すように、入力部110と、初期値生成部120と、分割部130と、出力部140と、ヘッダ情報生成部150と、秘密鍵生成部160と、配布部170とから構成されている。
【0043】
入力部110は、l−nビットの初期値と平文と秘密鍵とを入力する。ここで、nは、ストリーム暗号器200a、200b、200c、・・・、200x、200y、200zの数に相当する。
【0044】
初期値生成部120は、nビットの初期値を生成し、生成したnビットの初期値と入力したl−nビットの初期値とを結合してlビットの初期値を生成する。この場合、生成するnビットの初期値は、予約値となる。分割部130は、入力した平文をn個に分割する。出力部140は、生成したnビットの初期値をn個のストリーム暗号器に1ビットずつ出力するとともに、秘密鍵および該1/nに分割した平文を前記n個のストリーム暗号器に出力する。
【0045】
ヘッダ情報生成部150は、初期値生成部120および分割部130から得た情報に基づいて、ヘッダ情報を生成する。秘密鍵生成部160は、入力した秘密鍵の代わりに、ストリーム暗号器200a、200b、200c、・・・、200x、200y、200zごとに、異なる秘密鍵を与える場合に、入力した秘密鍵の下位の任意のビットを予約値として、n個の異なる秘密鍵を生成する。配布部170は、生成した秘密鍵を各ストリーム暗号器200a、200b、200c、・・・、200x、200y、200zに1つずつ配布する。
【0046】
<ストリーム暗号器の構成>
本実施形態に係るストリーム暗号器は、図3に示すように、初期化処理部210と、鍵系列生成部220と、暗号文生成部230とから構成されている。
【0047】
初期化処理部210は、初期値と秘密鍵とを入力し、内部状態の初期化処理を行う。鍵系列生成部220は、内部状態を利用して鍵系列を生成する。暗号文生成部230は、生成した鍵系列と入力した平文との排他的論理和演算を行い、暗号文を生成する。
【0048】
<ストリーム暗号の暗号化装置の処理>
図5を用いて、本実施形態に係るストリーム暗号の暗号化装置の処理について説明する。
並列処理暗号モジュールが、l−nビットの初期値と平文と秘密鍵とを入力し(ステップS101)、nビットの初期値を生成し、生成したnビットの初期値と入力したl−nビットの初期値とを結合してlビットの初期値を生成する(ステップS102)。また、入力した平文をn個に分割し(ステップS103)、生成したnビットの初期値をn個のストリーム暗号器に1ビットずつ出力するとともに、秘密鍵および1/nに分割した平文をn個のストリーム暗号器に出力する(ステップS104)。
【0049】
各ストリーム暗号器は、並列処理暗号モジュールからlビットの初期値と秘密鍵を入力して、初期化処理を実行し、内部状態を利用して鍵系列を生成する。さらに、生成した鍵系列と入力した平文との排他的論理和演算を行い、暗号文を生成する。また、データの切れ目を認識するためのデリミタ、暗号文長、初期値、使用したストリーム暗号モジュールの番号を含むヘッダ情報を生成する。そして、生成した暗号文と固有のヘッダ情報とを暗号文結合モジュールに出力する。暗号文結合モジュールは、入力した情報を結合して、出力する。
【0050】
以上、説明したように、本実施形態によれば、平文を1/nに分割し、n個のストリーム暗号の暗号化器に分割した平文と初期値生成手段が生成した各ストリーム暗号の暗号化器固有の初期値を与えることにより、暗号文の生成までの一連の処理を並列に行うことができる。
【0051】
<第2の実施形態>
図6から図9を用いて、本実施形態に係るストリーム暗号の復号化装置について説明する。なお、本実施形態に係るストリーム暗号の復号化装置は、第1の実施形態により暗号化された暗号文を平文に復元するものである。
【0052】
<ストリーム暗号の復号化装置の構成>
本実施形態に係るストリーム暗号の復号化装置は、図6に示すように、並列処理復号モジュール400と、複数のストリーム復号器500a、500b、500c、・・・、500x、500y、500zと、平文結合モジュール600とから構成されている。
【0053】
並列処理復号モジュール400は、l−n(n;ストリーム暗号器の数)ビットの初期値とヘッダ情報付き暗号文と秘密鍵とを入力し、ヘッダ情報を切り離して、そのヘッダ情報に基づいて、nビットの初期値を生成し、生成したnビットの初期値と入力したl−nビットの初期値とを結合してlビットの初期値を生成する。また、ヘッダ情報を切り離した暗号文をn個に分割し、生成したnビットの初期値をn個のストリーム復号器500a、500b、500c、・・・、500x、500y、500zに1ビットずつ出力するとともに、秘密鍵および1/nに分割した暗号文をn個のストリーム復号器500a、500b、500c、・・・、500x、500y、500zに出力する。
【0054】
ストリーム復号器500a、500b、500c、・・・、500x、500y、500zは、初期値と秘密鍵とを入力し、内部状態の初期化処理を行う。また、内部状態を利用して鍵系列を生成する。さらに、生成した鍵系列と入力した暗号文との排他的論理和演算を行い、平文を生成する。
【0055】
平文結合モジュール600は、ストリーム復号器500a、500b、500c、・・・、500x、500y、500zが、復号化処理を行った平文を連結して出力する。
【0056】
<並列処理暗号モジュールの構成>
本実施形態に係る並列処理復号モジュールは、図7に示すように、入力部410と、ヘッダ情報分離部420と、初期値生成部430と、分割部440と、出力部450と、秘密鍵生成部460と、配布部470とから構成されている。
【0057】
入力部410は、l−nビットの初期値とヘッダ情報付き暗号文と秘密鍵とを入力する。ここで、nは、ストリーム復号器500a、500b、500c、・・・、500x、500y、500zの数に相当する。
【0058】
ヘッダ情報分離部420は、入力したヘッダ情報付き暗号文からヘッダ情報を分離し、分離したヘッダ情報を初期値生成部430に出力するとともに、暗号文を分割部440に出力する。分割部440は、入力した暗号文を1/nに分割し、出力部450に出力する。初期値生成部430は、入力したヘッダ情報に基づいて、nビットの初期値を生成し、生成したnビットの初期値と入力したl−nビットの初期値とを結合してlビットの初期値を生成する。この場合、生成するnビットの初期値は、予約値となる。出力部450は、生成したnビットの初期値をn個のストリーム復号器500a、500b、500c、・・・、500x、500y、500zに1ビットずつ出力するとともに、秘密鍵および1/nに分割した暗号文をn個のストリーム復号器500a、500b、500c、・・・、500x、500y、500zに出力する。
【0059】
秘密鍵生成部460は、入力した秘密鍵の代わりに、ストリーム復号器500a、500b、500c、・・・、500x、500y、500zごとに、異なる秘密鍵を与える場合に、入力した秘密鍵の下位の任意のビットを予約値として、n個の異なる秘密鍵を生成する。配布部470は、生成した秘密鍵を各ストリーム暗号器200a、200b、200c、・・・、200x、200y、200zに1つずつ配布する。
【0060】
<ストリーム暗号器の構成>
本実施形態に係るストリーム暗号器は、図8に示すように、初期化処理部510と、鍵系列生成部520と、平文生成部530とから構成されている。
【0061】
初期化処理部510は、初期値と秘密鍵とを入力し、内部状態の初期化処理を行う。鍵系列生成部520は、内部状態を利用して鍵系列を生成する。平文生成部530は、生成した鍵系列と入力した暗号文との排他的論理和演算を行い、平文を生成する。
【0062】
<ストリーム暗号の復号化装置の処理>
図9を用いて、本実施形態に係るストリーム暗号の復号化装置の処理について説明する。
並列処理復号モジュールが、l−nビットの初期値と暗号文と秘密鍵とを入力し(ステップS201)、入力した暗号文からヘッダ情報を分離する(ステップS201)。次に、ヘッダ情報に基づいて、nビットの初期値を生成し、生成したnビットの初期値と入力したl−nビットの初期値とを結合してlビットの初期値を生成する(ステップS203)。また、ヘッダ情報に基づいて、入力した暗号文をn個に分割し(ステップS204)、生成したnビットの初期値をn個のストリーム復号器に1ビットずつ出力するとともに、秘密鍵および1/nに分割した暗号文をn個のストリーム復号器に出力する(ステップS205)。
【0063】
各ストリーム復号器は、並列処理復号モジュールからlビットの初期値と秘密鍵を入力して、初期化処理を実行し、内部状態を利用して鍵系列を生成する。さらに、生成した鍵系列と入力した暗号文との排他的論理和演算を行い、平文を生成する。そして、生成した平文を平文結合モジュールに出力する。平文結合モジュールは、入力した情報を結合して、出力する。
【0064】
以上、説明したように、本実施形態によれば、暗号文を1/nに分割し、n個のストリーム暗号の暗号化器に分割した暗号文とヘッダ情報に基づいて初期値生成手段が生成した各ストリーム復号器固有の初期値を与えることにより、平文の復号までの一連の処理を並列に行うことができる。
【0065】
なお、ストリーム暗号の暗号器あるいはストリーム暗号の復号器の処理をコンピュータ読み取り可能な記録媒体に記録し、この記録媒体に記録されたプログラムをストリーム暗号の暗号器あるいはストリーム暗号の復号器に読み込ませ、実行することによって本発明のストリーム暗号の暗号器あるいはストリーム暗号の復号器を実現することができる。ここでいうコンピュータシステムとは、OSや周辺装置等のハードウェアを含む。
【0066】
また、「コンピュータシステム」は、WWW(World Wide Web)システムを利用している場合であれば、ホームページ提供環境(あるいは表示環境)も含むものとする。また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されても良い。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。
【0067】
また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組合せで実現できるもの、いわゆる差分ファイル(差分プログラム)であっても良い。
【0068】
以上、この発明の実施形態につき、図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【符号の説明】
【0069】
100;並列処理暗号モジュール
110;入力部
120;初期値生成部
130;分割部
140;出力部
150;ヘッダ情報生成部
160;秘密鍵生成部
170;配布部
200a、200b、200c、・・・、200x、200y、200z;ストリーム暗号器
210;初期化処理部
220;鍵系列生成部
230;暗号文生成部
300;暗号文結合モジュール
400;並列処理復号モジュール
410;入力部
420;ヘッダ情報分離部
430;初期値生成部
440;分割部
450;出力部
460;秘密鍵生成部
470;配布部
500a、500b、500c、・・・、500x、500y、500z;ストリーム復号器
510;初期化処理部
520;鍵系列生成部
530;平文生成部
600;平文結合モジュール


【特許請求の範囲】
【請求項1】
n個のストリーム暗号の暗号化器と、
該n個のストリーム暗号の暗号化器を制御する並列処理暗号モジュールと、
前記n個のストリーム暗号の暗号化器から出力されるn個の暗号文を結合して最終的な暗号文を出力する暗号文結合モジュールと、
を備え、
前記並列処理暗号モジュールが、
l−nビットの初期値と平文と秘密鍵とを入力する入力手段と、
nビットの初期値を生成し、該生成したnビットの初期値と入力したl−nビットの初期値とを結合してlビットの初期値を生成する初期値生成手段と、
前記入力した平文をn個に分割する分割手段と、
該生成したnビットの初期値を前記n個のストリーム暗号の暗号化器に1ビットずつ出力するとともに、前記秘密鍵および該1/nに分割した平文を前記n個のストリーム暗号の暗号化器に出力する出力手段と、
を備えたことを特徴とするストリーム暗号の暗号化装置。
【請求項2】
前記n個のストリーム暗号の暗号化器が、
初期値と秘密鍵とを入力し、内部状態の初期化処理を行う初期化処理手段と、
内部状態を利用して鍵系列を生成する鍵系列生成手段と、
該生成した鍵系列と入力した平文との排他的論理和演算を行い、暗号文を生成する暗号文生成手段と、
を備えたことを特徴とする請求項1に記載のストリーム暗号の暗号化装置。
【請求項3】
前記並列処理暗号モジュールが、
入力した秘密鍵の下位の任意のビットを生成し、異なるn個の秘密鍵を生成する秘密鍵生成手段と、
該生成した秘密鍵をn個のストリーム暗号の暗号化器に1つずつ配布する秘密鍵配布手段と、
を備えたことを特徴とする請求項1に記載のストリーム暗号の暗号化装置。
【請求項4】
前記暗号文結合モジュールが、ヘッダ情報を生成するヘッダ情報生成手段と、
前記n個のストリーム暗号の暗号化器が、暗号化処理を行った暗号文に該生成したヘッダ情報を付して前記暗号文結合モジュールに出力することを特徴とする請求項1に記載のストリーム暗号の暗号化装置。
【請求項5】
前記ヘッダ情報が、データの切れ目を認識するためのデリミタ、暗号文長、初期値(の一部)、使用したストリーム暗号モジュールの番号を含むことを特徴とする請求項3に記載のストリーム暗号の暗号化装置。
【請求項6】
前記請求項1に記載のストリーム暗号の暗号装置により暗号化された暗号文を復号するストリーム暗号の復号化装置であって、
n個のストリーム暗号の復号化器と、
該n個のストリーム暗号の復号化器を制御する並列処理復号モジュールと、
前記n個のストリーム暗号の復号化器から出力されるn個の平文を結合して最終的な平文を出力する平文結合モジュールと、
を備え、
前記並列処理復号モジュールが、
l−nビットの初期値と暗号文と秘密鍵とを入力する入力手段と、
該入力した暗号文からヘッダ情報を分離するヘッダ情報分離手段と、
該分離したヘッダ情報に基づいて、nビットの初期値を生成し、該生成したnビットの初期値と入力したl−nビットの初期値とを結合してlビットの初期値を生成する初期値生成手段と、
前記入力したヘッダ情報に基づいて、暗号文をn個に分割する分割手段と、
該生成したnビットの初期値を前記n個のストリーム暗号の復号化器に1ビットずつ出力するとともに、前記秘密鍵および該1/nに分割した暗号文を前記n個のストリーム暗号の復号化器に出力する出力手段と、
を備えたことを特徴とするストリーム暗号の復号化装置。
【請求項7】
前記n個のストリーム暗号の復号化器が、
初期値と秘密鍵とを入力し、内部状態の初期化処理を行う初期化処理手段と、
内部状態を利用して鍵系列を生成する鍵系列生成手段と、
該生成した鍵系列と入力した暗号文との排他的論理和演算を行い、平文を生成する暗号文生成手段と、
を備えたことを特徴とする請求項6に記載のストリーム暗号の復号化装置。
【請求項8】
前記並列処理復号モジュールが、
入力した秘密鍵の下位の任意のビットを生成し、異なるn個の秘密鍵を生成する秘密鍵生成手段と、
該生成した秘密鍵をn個のストリーム暗号の復号化器に1つずつ配布する秘密鍵配布手段と、
を備えたことを特徴とする請求項6に記載のストリーム暗号の復号化装置。
【請求項9】
n個のストリーム暗号の暗号化器と、
該n個のストリーム暗号の暗号化器を制御する並列処理暗号モジュールと、
前記n個のストリーム暗号の暗号化器から出力されるn個の暗号文を結合して最終的な暗号文を出力する暗号文結合モジュールと、を備えたストリーム暗号の暗号化装置におけるストリーム暗号の暗号化方法であって、
前記並列処理暗号モジュールが、l−nビットの初期値と平文と秘密鍵とを入力する第1のステップと、
前記並列処理暗号モジュールが、nビットの初期値を生成し、該生成したnビットの初期値と入力したl−nビットの初期値とを結合してlビットの初期値を生成する第2のステップと、
前記並列処理暗号モジュールが、前記入力した平文をn個に分割する第3のステップと、
前記並列処理暗号モジュールが、該生成したnビットの初期値を前記n個のストリーム暗号の暗号化器に1ビットずつ出力するとともに、前記秘密鍵および該1/nに分割した平文を前記n個のストリーム暗号の暗号化器に出力する第4のステップと、
を備えたことを特徴とするストリーム暗号の暗号化方法。
【請求項10】
前記請求項9に記載のストリーム暗号の暗号装置により暗号化された暗号文を復号するストリーム暗号の復号化装置におけるストリーム暗号の復号化方法であって、
n個のストリーム暗号の復号化器と、
該n個のストリーム暗号の復号化器を制御する並列処理復号モジュールと、
前記n個のストリーム暗号の復号化器から出力されるn個の平文を結合して最終的な平文を出力する平文結合モジュールと、
を備え、
前記並列処理復号モジュールが、l−nビットの初期値と暗号文と秘密鍵とを入力する第1のステップと、
前記並列処理復号モジュールが、該入力した暗号文からヘッダ情報を分離する第2のステップと、
前記並列処理復号モジュールが、該分離したヘッダ情報に基づいて、nビットの初期値を生成し、該生成したnビットの初期値と入力したl−nビットの初期値とを結合してlビットの初期値を生成する第3のステップと、
前記並列処理復号モジュールが、前記入力したヘッダ情報に基づいて、暗号文をn個に分割する第4のステップと、
前記並列処理復号モジュールが、該生成したnビットの初期値を前記n個のストリーム暗号の復号化器に1ビットずつ出力するとともに、前記秘密鍵および該1/nに分割した暗号文を前記n個のストリーム暗号の復号化器に出力する第5のステップと、
を備えたことを特徴とするストリーム暗号の復号化方法。
【請求項11】
n個のストリーム暗号の暗号化器と、
該n個のストリーム暗号の暗号化器を制御する並列処理暗号モジュールと、
前記n個のストリーム暗号の暗号化器から出力されるn個の暗号文を結合して最終的な暗号文を出力する暗号文結合モジュールと、を備えたストリーム暗号の暗号化装置におけるストリーム暗号の暗号化方法をコンピュータに実行させるためのプログラムであって、
前記並列処理暗号モジュールが、l−nビットの初期値と平文と秘密鍵とを入力する第1のステップと、
前記並列処理暗号モジュールが、nビットの初期値を生成し、該生成したnビットの初期値と入力したl−nビットの初期値とを結合してlビットの初期値を生成する第2のステップと、
前記並列処理暗号モジュールが、前記入力した平文をn個に分割する第3のステップと、
前記並列処理暗号モジュールが、該生成したnビットの初期値を前記n個のストリーム暗号の暗号化器に1ビットずつ出力するとともに、前記秘密鍵および該1/nに分割した平文を前記n個のストリーム暗号の暗号化器に出力する第4のステップと、
をコンピュータに実行させるためのプログラム。
【請求項12】
前記請求項11に記載のストリーム暗号の暗号装置により暗号化された暗号文を復号するストリーム暗号の復号化装置におけるストリーム暗号の復号化方法をコンピュータに実行させるためのプログラムであって、
n個のストリーム暗号の復号化器と、
該n個のストリーム暗号の復号化器を制御する並列処理復号モジュールと、
前記n個のストリーム暗号の復号化器から出力されるn個の平文を結合して最終的な平文を出力する平文結合モジュールと、
を備え、
前記並列処理復号モジュールが、l−nビットの初期値と暗号文と秘密鍵とを入力する第1のステップと、
前記並列処理復号モジュールが、該入力した暗号文からヘッダ情報を分離する第2のステップと、
前記並列処理復号モジュールが、該分離したヘッダ情報に基づいて、nビットの初期値を生成し、該生成したnビットの初期値と入力したl−nビットの初期値とを結合してlビットの初期値を生成する第3のステップと、
前記並列処理復号モジュールが、前記入力したヘッダ情報に基づいて、暗号文をn個に分割する第4のステップと、
前記並列処理復号モジュールが、該生成したnビットの初期値を前記n個のストリーム暗号の復号化器に1ビットずつ出力するとともに、前記秘密鍵および該1/nに分割した暗号文を前記n個のストリーム暗号の復号化器に出力する第5のステップと、
をコンピュータに実行させるためのプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate