説明

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

【課題】安全な認証付きストリーム暗号を実現する。
【解決手段】線形シフトレジスタ101と、線形シフトレジスタからの値を非線形変換する非線形変換手段と、入力された平文と非線形変換手段からの出力との排他的論理和演算を行って、ストリーム暗号の暗号文を出力する排他的論理和演算手段110c、110dと、出力されたストリーム暗号の暗号文を入力してMAC値を出力するレジスタ103a、103bと、を備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、認証付きストリーム暗号の暗号化あるいは復号化を実現するストリーム暗号の暗号器、ストリーム暗号の復号器、ストリーム暗号の暗号方法、ストリーム暗号の復号方法およびプログラムに関する。
【背景技術】
【0002】
近年、コンピュータを利用した様々なサービスが提供されている。多くのサービスに置いては、通信の秘匿を実現するため、暗号が利用される。暗号方式として最も一般的なものは、1つの鍵で暗号化および復号化を行う共通鍵暗号方式であるが、共通鍵暗号方式は、大きくブロック暗号方式とストリーム暗号方式の2つに分けられる。
【0003】
ここで、前者は、最も一般的に用いられている方式であるが、後者の方が処理速度に優れるため、近年注目を集めつつある。一方、認証付き暗号という方式がある。これは、1つのアルゴリズムでメッセージ認証と暗号化を同時に実現しようとするアルゴリズムである(例えば、非特許文献1参照。)。
【先行技術文献】
【非特許文献】
【0004】
【非特許文献1】Philip Hawkes, Cameron McDonald, Michael Paddon, Gregory G. Rose, and Miriam Wiggers de Vries, “Specification for NLSv2 ,” New Stream Cipher Designs, Lncs, Vol.4986、2008.
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、これまで、ストリーム暗号を認証付き暗号にするためには、アルゴリズムの再設計が必要であった。または、設計の段階から認証機能の組み込みを考慮する必要があった。さらには、認証付きストリーム暗号のほとんどすべてが攻撃により破られており、安全な認証付きストリーム暗号はほとんど無いという状況である。
【0006】
そこで、本発明は、上述の課題に鑑みて、安全な認証付きストリーム暗号を実現するストリーム暗号の暗号器、ストリーム暗号の復号器、ストリーム暗号の暗号方法、ストリーム暗号の復号方法およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【0007】
本発明は、上記の課題を解決するために、以下の事項を提案している。なお、理解を容易にするために、本発明の実施形態に対応する符号を付して説明するが、これに限定されるものではない。
【0008】
(1)本発明は、線形シフトレジスタ(例えば、図1の101に相当)と、該線形シフトレジスタからの値を非線形変換する非線形変換手段と、入力された平文と前記非線形変換手段からの出力との排他的論理和演算を行って、ストリーム暗号の暗号文を出力する排他的論理和演算手段(例えば、図1の110c、110dに相当)と、該出力されたストリーム暗号の暗号文を入力してMAC値を出力するレジスタ(例えば、図1の103a、103bに相当)と、を備えたことを特徴とするストリーム暗号の暗号器を提案している。
【0009】
この発明によれば、線形シフトレジスタは、入力データを一時記憶し、所定のタイミングでデータを順次シフトして出力する。非線形変換手段は、線形シフトレジスタからの値を非線形変換する。排他的論理和演算手段は、入力された平文と非線形変換手段からの出力との排他的論理和演算を行って、ストリーム暗号の暗号文を出力する。レジスタは、出力されたストリーム暗号の暗号文を入力してMAC値を出力する。したがって、上記の構成によれば、任意のデータをMAC値を伴った認証付きのストリーム暗号に暗号化することができる。
【0010】
(2)本発明は、(1)のストリーム暗号の暗号器について、前記線形シフトレジスタが制御信号により、その構造が動的に変化する動的フィードバックシフトレジスタであることを特徴とするストリーム暗号の暗号器を提案している。
【0011】
この発明によれば、線形シフトレジスタが制御信号により、その構造が動的に変化する動的フィードバックシフトレジスタである。したがって、動的フィードバックシフトレジスタを用いることにより、より安全に任意のデータをMAC値を伴った認証付きのストリーム暗号に暗号化することができる。
【0012】
(3)本発明は、(1)または(2)のストリーム暗号の暗号器について、前記レジスタの出力が前記非線形変換手段に入力されることを特徴とするストリーム暗号の暗号器を提案している。
【0013】
この発明によれば、レジスタの出力が非線形変換手段に入力される。したがって、MAC値の安全性をも高めることができるため、認証の信頼度が向上する。
【0014】
(4)本発明は、(1)から(3)のストリーム暗号の暗号器について、前記レジスタが前記MAC値の上位ビットを出力する第1のレジスタと前記MAC値の下位ビットを出力する第2のレジスタとから構成されていることを特徴とするストリーム暗号の暗号器を提案している。
【0015】
この発明によれば、レジスタがMAC値の上位ビットを出力する第1のレジスタとMAC値の下位ビットを出力する第2のレジスタとから構成されている。つまり、MAC値を出力するレジスタを2つ設け、さらに、その出力を非線形変換手段に入力することにより、MAC値の安全性を高め、認証の信頼度を向上させることができる。
【0016】
(5)本発明は、線形シフトレジスタ(例えば、図3の201に相当)と、該線形シフトレジスタからの値を非線形変換する非線形変換手段と、入力された暗号文と前記非線形変換手段からの出力との排他的論理和演算を行って、ストリーム暗号の復号文を出力する排他的論理和演算手段(例えば、図3の210c、210dに相当)と、該出力されたストリーム暗号の復号文を入力してMAC値を出力するレジスタ(例えば、図3の203a、203bに相当)と、を備えたことを特徴とするストリーム暗号の復号器を提案している。
【0017】
この発明によれば、線形シフトレジスタは、入力データを一時記憶し、所定のタイミングでデータを順次シフトして出力する。非線形変換手段は、線形シフトレジスタからの値を非線形変換する。排他的論理和演算手段は、入力されたストリーム暗号の暗号文と非線形変換手段からの出力との排他的論理和演算を行って、平文を出力する。レジスタは、出力された平文を入力してMAC値を出力する。したがって、上記の構成によれば、任意のデータをMAC値を伴った認証付きの平文を得ることができる。
【0018】
(6)本発明は、(5)のストリーム暗号の復号器について、前記線形シフトレジスタが制御信号により、その構造が動的に変化する動的フィードバックシフトレジスタであることを特徴とするストリーム暗号の復号器を提案している。
【0019】
この発明によれば、線形シフトレジスタが制御信号により、その構造が動的に変化する動的フィードバックシフトレジスタである。したがって、動的フィードバックシフトレジスタを用いることにより、より安全にストリーム暗号の暗号文からMAC値を伴った認証付きの平文を得ることができる。
【0020】
(7)本発明は、(5)または(6)のストリーム暗号の復号器について、前記レジスタの出力が前記非線形変換手段を入力することを特徴とするストリーム暗号の復号器を提案している。
【0021】
この発明によれば、レジスタの出力が非線形変換手段に入力される。したがって、MAC値の安全性をも高めることができるため、認証の信頼度が向上する。
【0022】
(8)本発明は、(5)から(7)のストリーム暗号の復号器について、前記レジスタが前記MAC値の上位ビットを出力する第1のレジスタと前記MAC値の下位ビットを出力する第2のレジスタとから構成されていることを特徴とするストリーム暗号の復号器を提案している。
【0023】
この発明によれば、レジスタがMAC値の上位ビットを出力する第1のレジスタとMAC値の下位ビットを出力する第2のレジスタとから構成されている。つまり、MAC値を出力するレジスタを2つ設け、さらに、その出力を非線形変換手段に入力することにより、MAC値の安全性を高め、認証の信頼度を向上させることができる。
【0024】
(9)本発明は、初期鍵、初期ベクトルを読み込む第1のステップ(例えば、図2のステップS101に相当)と、初期化処理を実施する第2のステップ(例えば、図2のステップS102に相当)と、鍵系列生成処理を実行し、鍵系列を生成する第3のステップ(例えば、図2のステップS103に相当)と、該生成した鍵系列と平文を排他的論理和することにより暗号文を生成する第4のステップ(例えば、図2のステップS104に相当)と、暗号文をメッセージ認証子作成用メモリに逐次入力し、平文が終了した後も、平文をオールゼロとして空回しを実行する第5のステップ(例えば、図2のステップS105に相当)と、該空回し終了後の左右のメッセージ認証子用メモリの値を結合し、メッセージ認証子とする第6のステップ(例えば、図2のステップS106に相当)と、メッセージ認証子を暗号文に添付して送信する第7のステップ(例えば、図2のステップS107に相当)と、を備えたストリーム暗号の暗号方法を提案している。
【0025】
この発明によれば、初期鍵、初期ベクトルを読み込み、初期化処理を実施する。次に、鍵系列生成処理を実行し、鍵系列を生成し、生成した鍵系列と平文を排他的論理和することにより暗号文を生成する。暗号文をメッセージ認証子作成用メモリに逐次入力し、平文が終了した後も、平文をオールゼロとして空回しを実行し、空回し終了後の左右のメッセージ認証子用メモリの値を結合し、メッセージ認証子とし、メッセージ認証子を暗号文に添付して送信する。したがって、任意のデータをMAC値を伴った認証付きのストリーム暗号に安全に暗号化することができる。
【0026】
(10)本発明は、初期鍵、初期ベクトルを読み込む第1のステップ(例えば、図4のステップS201に相当)と、初期化処理を実施する第2のステップ(例えば、図4のステップS202に相当)と、鍵系列生成処理を実行し、鍵系列を生成する第3のステップ(例えば、図4のステップS203に相当)と、該生成した鍵系列と暗号文を排他的論理和することにより平文を生成する第4のステップ(例えば、図4のステップS204に相当)と、暗号文をメッセージ認証子作成用メモリに逐次入力し、暗号文が終了した後も、暗号文をオールゼロとして空回しを実行する第5のステップ(例えば、図4のステップS205に相当)と、該空回し終了後の左右のメッセージ認証子用メモリの値を結合し、メッセージ認証子とする第6のステップ(例えば、図4のステップS206に相当)と、受信したメッセージ認証子と生成したメッセージ認証子とを比較して両者が一致するか否かを検証する第7のステップ(例えば、図4のステップS207に相当)と、を備えたストリーム暗号の復号方法を提案している。
【0027】
この発明によれば、初期鍵、初期ベクトルを読み込み、初期化処理を実施する。次に、鍵系列生成処理を実行し、鍵系列を生成し、生成した鍵系列と暗号文を排他的論理和することにより平文を生成する。暗号文をメッセージ認証子作成用メモリに逐次入力し、暗号文が終了した後も、暗号文をオールゼロとして空回しを実行し、空回し終了後の左右のメッセージ認証子用メモリの値を結合し、メッセージ認証子とする。そして、受信したメッセージ認証子と生成したメッセージ認証子とを比較して両者が一致するか否かを検証する。したがって、MAC値を伴った認証付きのストリーム暗号の暗号文を安全に復号化し、かつ、その認証も行うことができる。
【0028】
(11)本発明は、ストリーム暗号の暗号方法をコンピュータに実行させるためのプログラムであって、初期鍵、初期ベクトルを読み込む第1のステップ(例えば、図2のステップS101に相当)と、初期化処理を実施する第2のステップ(例えば、図2のステップS102に相当)と、鍵系列生成処理を実行し、鍵系列を生成する第3のステップ(例えば、図2のステップS103に相当)と、該生成した鍵系列と平文を排他的論理和することにより暗号文を生成する第4のステップ(例えば、図2のステップS104に相当)と、暗号文をメッセージ認証子作成用メモリに逐次入力し、平文が終了した後も、平文をオールゼロとして空回しを実行する第5のステップ(例えば、図2のステップS105に相当)と、該空回し終了後の左右のメッセージ認証子用メモリの値を結合し、メッセージ認証子とする第6のステップ(例えば、図2のステップS106に相当)と、メッセージ認証子を暗号文に添付して送信する第7のステップ(例えば、図2のステップS107に相当)と、をコンピュータに実行させるためのプログラムを提案している。
【0029】
この発明によれば、初期鍵、初期ベクトルを読み込み、初期化処理を実施する。次に、鍵系列生成処理を実行し、鍵系列を生成し、生成した鍵系列と平文を排他的論理和することにより暗号文を生成する。暗号文をメッセージ認証子作成用メモリに逐次入力し、平文が終了した後も、平文をオールゼロとして空回しを実行し、空回し終了後の左右のメッセージ認証子用メモリの値を結合し、メッセージ認証子とし、メッセージ認証子を暗号文に添付して送信する。したがって、任意のデータをMAC値を伴った認証付きのストリーム暗号に安全に暗号化することができる。
【0030】
(12)本発明は、ストリーム暗号の復号方法をコンピュータに実行させるためのプログラムであって、初期鍵、初期ベクトルを読み込む第1のステップ(例えば、図4のステップS201に相当)と、初期化処理を実施する第2のステップ(例えば、図4のステップS202に相当)と、鍵系列生成処理を実行し、鍵系列を生成する第3のステップ(例えば、図4のステップS203に相当)と、該生成した鍵系列と暗号文を排他的論理和することにより平文を生成する第4のステップ(例えば、図4のステップS204に相当)と、暗号文をメッセージ認証子作成用メモリに逐次入力し、暗号文が終了した後も、暗号文をオールゼロとして空回しを実行する第5のステップ(例えば、図4のステップS205に相当)と、該空回し終了後の左右のメッセージ認証子用メモリの値を結合し、メッセージ認証子とする第6のステップ(例えば、図4のステップS206に相当)と、受信したメッセージ認証子と生成したメッセージ認証子とを比較して両者が一致するか否かを検証する第7のステップ(例えば、図4のステップS207に相当)と、をコンピュータに実行させるためのプログラムを提案している。
【0031】
この発明によれば、初期鍵、初期ベクトルを読み込み、初期化処理を実施する。次に、鍵系列生成処理を実行し、鍵系列を生成し、生成した鍵系列と暗号文を排他的論理和することにより平文を生成する。暗号文をメッセージ認証子作成用メモリに逐次入力し、暗号文が終了した後も、暗号文をオールゼロとして空回しを実行し、空回し終了後の左右のメッセージ認証子用メモリの値を結合し、メッセージ認証子とする。そして、受信したメッセージ認証子と生成したメッセージ認証子とを比較して両者が一致するか否かを検証する。したがって、MAC値を伴った認証付きのストリーム暗号の暗号文を安全に復号化し、かつ、その認証も行うことができる。
【発明の効果】
【0032】
本発明によれば、安全な認証付きストリーム暗号を実現できるという効果がある。また、従来の方式と比べ安全性が向上しながらより高速な処理を実現できるという効果がある。
【図面の簡単な説明】
【0033】
【図1】本発明の第1の実施形態に係るストリーム暗号の暗号器の構成を示す図である。
【図2】本発明の第1の実施形態に係るストリーム暗号の暗号器の処理を示す図である。
【図3】本発明の第2の実施形態に係るストリーム暗号の復号器の構成を示す図である。
【図4】本発明の第2の実施形態に係るストリーム暗号の復号器の処理を示す図である。
【発明を実施するための形態】
【0034】
以下、本発明の実施形態について、図面を用いて、詳細に説明する。
なお、本実施形態における構成要素は適宜、既存の構成要素等との置き換えが可能であり、また、他の既存の構成要素との組合せを含む様々なバリエーションが可能である。したがって、本実施形態の記載をもって、特許請求の範囲に記載された発明の内容を限定するものではない。
【0035】
<第1の実施形態>
図1および図2を用いて、本発明の第1の実施形態に係るストリーム暗号の暗号器について説明する。
【0036】
<ストリーム暗号の暗号器の構成>
図1を用いて、本実施形態に係るストリーム暗号の暗号器の構成について説明する。本実施形態に係るストリーム暗号の暗号器は、図1に示すように、動的フィードバックシフトレジスタ101と、動的フィードバック制御部102と、レジスタ103aおよび103bと、加算器104a〜104fと、内部メモリ(L1、L2、R1、R2)105〜108と、Sub109aおよび109bと、排他的論理和演算器110a〜110dとから構成されている。
【0037】
動的フィードバックシフトレジスタ101は、動的フィードバック制御部102の制御により動的に構造が変化する線形シフトレジスタである。したがって、より安全に暗号化処理および認証子の導出を行うことができる。
【0038】
レジスタ103aおよび103bは、認証子としてのMAC値を出力する素子である。本実施形態では、レジスタ103aがMAC値の上位ビットを出力し、レジスタ103bがMAC値の下位ビットを出力する。したがって、2つのレジスタの値を結合することによって、MAC値が得られる。
【0039】
加算器104aは、動的フィードバックシフトレジスタ101と内部メモリL2と排他的論理和演算器110aに接続されており、内部メモリL2の値と動的フィードバックシフトレジスタ101からの出力値とを加算して、排他的論理和演算器110aに出力する。
【0040】
加算器104bは、動的フィードバックシフトレジスタ101と内部メモリL2と加算器104eに接続されており、内部メモリL2の値と動的フィードバックシフトレジスタ101からの出力値とを加算して、加算器104eに出力する。
【0041】
加算器104cは、動的フィードバックシフトレジスタ101と内部メモリR2と加算器104fに接続されており、内部メモリR2の値と動的フィードバックシフトレジスタ101からの出力値とを加算して、加算器104fに出力する。
【0042】
加算器104dは、動的フィードバックシフトレジスタ101と内部メモリR2と排他的論理和演算器110bに接続されており、内部メモリR2の値と動的フィードバックシフトレジスタ101からの出力値とを加算して、排他的論理和演算器110bに出力する。
【0043】
加算器104eは、加算器104bとレジスタ103aと内部メモリR1とに接続されており、加算器104bの値とレジスタ103aの値とを加算して、内部メモリR1に出力する。
【0044】
加算器104fは、加算器104cとレジスタ103bと内部メモリL1とに接続されており、加算器104cの値とレジスタ103bの値とを加算して、内部メモリL1に出力する。
【0045】
内部メモリ105は、加算器104fの出力値を保存し、内部メモリ106は、内部メモリ105から取り出したデータをSub109aで非線形置換した値を格納する。また、内部メモリ107は、加算器104eの出力値を保存し、内部メモリ108は、内部メモリ107から取り出したデータをSub109bで非線形置換した値を格納する。
【0046】
排他的論理和演算器110aは、加算器104aの出力値と内部メモリL1の値との排他的論理和演算を行って、演算結果を排他的論理和演算器110cに出力する。排他的論理和演算器110bは、加算器104dの出力値と内部メモリR1の値との排他的論理和演算を行って、演算結果を排他的論理和演算器110dに出力する。
【0047】
排他的論理和演算器110cは、排他的論理和演算器110aの演算結果と入力された平文データとの排他的論理和演算を行って、暗号文を出力する。排他的論理和演算器110dは、排他的論理和演算器110bの演算結果と入力された平文データとの排他的論理和演算を行って、暗号文を出力する。
【0048】
<ストリーム暗号の暗号器の処理>
図2を用いて、本実施形態に係るストリーム暗号の暗号器の処理について説明する。
【0049】
まず、初期鍵、初期ベクトルを読み込んで(ステップS101)、初期化処理を実施する(ステップS102)。次に、鍵系列生成処理を実行し、鍵系列を生成し(ステップS103)。生成した鍵系列と平文を排他的論理和することにより暗号文を生成する(ステップS104)。
【0050】
さらに、暗号文をメッセージ認証子作成用メモリに逐次入力し、平文が終了した後も、平文をオールゼロとして空回しを実行し(ステップS105)、空回し終了後の左右のメッセージ認証子用メモリの値を結合し、メッセージ認証子とする(ステップS106)。そして、メッセージ認証子を暗号文に添付して送信する(ステップS107)。
【0051】
以上、説明したように、本実施形態によれば、安全な認証付きストリーム暗号を実現できる。また、従来の方式と比べ安全性が向上しながらより高速な処理を実現できる。
【0052】
<第2の実施形態>
図3および図4を用いて、本発明の第2の実施形態に係るストリーム暗号の復号器について説明する。
【0053】
<ストリーム暗号の復号器の構成>
図3を用いて、本実施形態に係るストリーム暗号の復号器の構成について説明する。本実施形態に係るストリーム暗号の復号器は、図3に示すように、動的フィードバックシフトレジスタ201と、動的フィードバック制御部202と、レジスタ203aおよび203bと、加算器204a〜204fと、内部メモリ(L1、L2、R1、R2)205〜208と、Sub209aおよび209bと、排他的論理和演算器210a〜210dとから構成されている。
【0054】
動的フィードバックシフトレジスタ201は、動的フィードバック制御部202の制御により動的に構造が変化する線形シフトレジスタである。したがって、より安全に復号化処理および認証子の導出を行うことができる。
【0055】
レジスタ203aおよび203bは、認証子としてのMAC値を出力する素子である。本実施形態では、レジスタ203aがMAC値の上位ビットを出力し、レジスタ203bがMAC値の下位ビットを出力する。したがって、2つのレジスタの値を結合することによって、MAC値が得られる。
【0056】
加算器204aは、動的フィードバックシフトレジスタ201と内部メモリL2と排他的論理和演算器210aに接続されており、内部メモリL2の値と動的フィードバックシフトレジスタ201からの出力値とを加算して、排他的論理和演算器210aに出力する。
【0057】
加算器204bは、動的フィードバックシフトレジスタ201と内部メモリL2と加算器204eに接続されており、内部メモリL2の値と動的フィードバックシフトレジスタ201からの出力値とを加算して、加算器204eに出力する。
【0058】
加算器204cは、動的フィードバックシフトレジスタ201と内部メモリR2と加算器204fに接続されており、内部メモリR2の値と動的フィードバックシフトレジスタ201からの出力値とを加算して、加算器204fに出力する。
【0059】
加算器204dは、動的フィードバックシフトレジスタ201と内部メモリR2と排他的論理和演算器210bに接続されており、内部メモリR2の値と動的フィードバックシフトレジスタ201からの出力値とを加算して、排他的論理和演算器210bに出力する。
【0060】
加算器204eは、加算器204bとレジスタ203aと内部メモリR1とに接続されており、加算器204bの値とレジスタ203aの値とを加算して、内部メモリR1に出力する。
【0061】
加算器204fは、加算器204cとレジスタ203bと内部メモリL1とに接続されており、加算器204cの値とレジスタ203bの値とを加算して、内部メモリL1に出力する。
【0062】
内部メモリ205は、加算器204fの出力値を保存し、内部メモリ206は、内部メモリ205から取り出したデータをSub209aで非線形置換した値を格納する。また、内部メモリ207は、加算器204eの出力値を保存し、内部メモリ208は、内部メモリ207から取り出したデータをSub209bで非線形置換した値を格納する。
【0063】
排他的論理和演算器210aは、加算器204aの出力値と内部メモリL1の値との排他的論理和演算を行って、演算結果を排他的論理和演算器210cに出力する。排他的論理和演算器210bは、加算器204dの出力値と内部メモリR1の値との排他的論理和演算を行って、演算結果を排他的論理和演算器210dに出力する。
【0064】
排他的論理和演算器210cは、排他的論理和演算器210aの演算結果と入力された暗号文データとの排他的論理和演算を行って、平文を出力する。排他的論理和演算器210dは、排他的論理和演算器210bの演算結果と入力された暗号文データとの排他的論理和演算を行って、平文を出力する。
【0065】
<ストリーム暗号の復号器の処理>
図4を用いて、本実施形態に係るストリーム暗号の復号器の処理について説明する。
【0066】
まず、初期鍵、初期ベクトルを読み込んで(ステップS201)、初期化処理を実施する(ステップS202)。次に、鍵系列生成処理を実行し、鍵系列を生成し(ステップS203)。生成した鍵系列と暗号文を排他的論理和することにより平文を生成する(ステップS204)。
【0067】
さらに、暗号文をメッセージ認証子作成用メモリに逐次入力し、暗号文が終了した後も、暗号文をオールゼロとして空回しを実行し(ステップS205)、空回し終了後の左右のメッセージ認証子用メモリの値を結合し、メッセージ認証子とする(ステップS206)。そして、受信したメッセージ認証子と生成したメッセージ認証子とを比較して両者が一致するか否かを検証する(ステップS207)。
【0068】
以上、説明したように、本実施形態によれば、MAC値を伴った認証付きのストリーム暗号の暗号文を安全に復号化し、かつ、その認証も行うことができる。また、従来の方式と比べ安全性が向上しながらより高速な処理を実現できる。
【0069】
なお、ストリーム暗号の暗号器あるいはストリーム暗号の復号器の処理をコンピュータ読み取り可能な記録媒体に記録し、この記録媒体に記録されたプログラムをストリーム暗号の暗号器あるいはストリーム暗号の復号器に読み込ませ、実行することによって本発明のストリーム暗号の暗号器あるいはストリーム暗号の復号器を実現することができる。ここでいうコンピュータシステムとは、OSや周辺装置等のハードウェアを含む。
【0070】
また、「コンピュータシステム」は、WWW(World Wide Web)システムを利用している場合であれば、ホームページ提供環境(あるいは表示環境)も含むものとする。また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されても良い。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。
【0071】
また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組合せで実現できるもの、いわゆる差分ファイル(差分プログラム)であっても良い。
【0072】
以上、この発明の実施形態につき、図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【符号の説明】
【0073】
101、201;動的フィードバックシフトレジスタ
102、202;動的フィードバック制御部
103a、103b、203a、203b;レジスタ
104a〜104f、204a〜204f;加算器
105〜108、205〜208;内部メモリ(L1、L2、R1、R2)
109a、109b、209a、209b;Sub(非線形関数)
110a〜110d、210a〜210d;排他的論理和演算器


【特許請求の範囲】
【請求項1】
線形シフトレジスタと、
該線形シフトレジスタからの値を非線形変換する非線形変換手段と、
入力された平文と前記非線形変換手段からの出力との排他的論理和演算を行って、ストリーム暗号の暗号文を出力する排他的論理和演算手段と、
該出力されたストリーム暗号の暗号文を入力してMAC値を出力するレジスタと、
を備えたことを特徴とするストリーム暗号の暗号器。
【請求項2】
前記線形シフトレジスタが制御信号により、その構造が動的に変化する動的フィードバックシフトレジスタであることを特徴とする請求項1に記載のストリーム暗号の暗号器。
【請求項3】
前記レジスタの出力が前記非線形変換手段に入力されることを特徴とする請求項1または請求項2に記載のストリーム暗号の暗号器。
【請求項4】
前記レジスタが前記MAC値の上位ビットを出力する第1のレジスタと前記MAC値の下位ビットを出力する第2のレジスタとから構成されていることを特徴とする請求項1から請求項3に記載のストリーム暗号の暗号器。
【請求項5】
線形シフトレジスタと、
該線形シフトレジスタからの値を非線形変換する非線形変換手段と、
入力された暗号文と前記非線形変換手段からの出力との排他的論理和演算を行って、ストリーム暗号の復号文を出力する排他的論理和演算手段と、
該出力されたストリーム暗号の復号文を入力してMAC値を出力するレジスタと、
を備えたことを特徴とするストリーム暗号の復号器。
【請求項6】
前記線形シフトレジスタが制御信号により、その構造が動的に変化する動的フィードバックシフトレジスタであることを特徴とする請求項5に記載のストリーム暗号の復号器。
【請求項7】
前記レジスタの出力が前記非線形変換手段に入力されることを特徴とする請求項5または請求項6に記載のストリーム暗号の復号器。
【請求項8】
前記レジスタが前記MAC値の上位ビットを出力する第1のレジスタと前記MAC値の下位ビットを出力する第2のレジスタとから構成されていることを特徴とする請求項5から請求項7に記載のストリーム暗号の復号器。
【請求項9】
初期鍵、初期ベクトルを読み込む第1のステップと、
初期化処理を実施する第2のステップと、
鍵系列生成処理を実行し、鍵系列を生成する第3のステップと、
該生成した鍵系列と平文を排他的論理和することにより暗号文を生成する第4のステップと、
暗号文をメッセージ認証子作成用メモリに逐次入力し、平文が終了した後も、平文をオールゼロとして空回しを実行する第5のステップと、
該空回し終了後の左右のメッセージ認証子用メモリの値を結合し、メッセージ認証子とする第6のステップと、
メッセージ認証子を暗号文に添付して送信する第7のステップと、
を備えたストリーム暗号の暗号方法。
【請求項10】
初期鍵、初期ベクトルを読み込む第1のステップと、
初期化処理を実施する第2のステップと、
鍵系列生成処理を実行し、鍵系列を生成する第3のステップと、
該生成した鍵系列と暗号文を排他的論理和することにより平文を生成する第4のステップと、
暗号文をメッセージ認証子作成用メモリに逐次入力し、暗号文が終了した後も、暗号文をオールゼロとして空回しを実行する第5のステップと、
該空回し終了後の左右のメッセージ認証子用メモリの値を結合し、メッセージ認証子とする第6のステップと、
受信したメッセージ認証子と生成したメッセージ認証子とを比較して両者が一致するか否かを検証する第7のステップと、
を備えたストリーム暗号の復号方法。
【請求項11】
ストリーム暗号の暗号方法をコンピュータに実行させるためのプログラムであって、
初期鍵、初期ベクトルを読み込む第1のステップと、
初期化処理を実施する第2のステップと、
鍵系列生成処理を実行し、鍵系列を生成する第3のステップと、
該生成した鍵系列と平文を排他的論理和することにより暗号文を生成する第4のステップと、
暗号文をメッセージ認証子作成用メモリに逐次入力し、平文が終了した後も、平文をオールゼロとして空回しを実行する第5のステップと、
該空回し終了後の左右のメッセージ認証子用メモリの値を結合し、メッセージ認証子とする第6のステップと、
メッセージ認証子を暗号文に添付して送信する第7のステップと、
をコンピュータに実行させるためのプログラム。
【請求項12】
ストリーム暗号の復号方法をコンピュータに実行させるためのプログラムであって、
初期鍵、初期ベクトルを読み込む第1のステップと、
初期化処理を実施する第2のステップと、
鍵系列生成処理を実行し、鍵系列を生成する第3のステップと、
該生成した鍵系列と暗号文を排他的論理和することにより平文を生成する第4のステップと、
暗号文をメッセージ認証子作成用メモリに逐次入力し、暗号文が終了した後も、暗号文をオールゼロとして空回しを実行する第5のステップと、
該空回し終了後の左右のメッセージ認証子用メモリの値を結合し、メッセージ認証子とする第6のステップと、
受信したメッセージ認証子と生成したメッセージ認証子とを比較して両者が一致するか否かを検証する第7のステップと、
をコンピュータに実行させるためのプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate