(57)【要約】【課題】頻繁に初期値が更新される環境でストリーム暗号を使用する場合にも、安全、高速に初期化処理を実現する。【解決手段】通常の初期化処理（Ｓ１１）が終了した内部状態と、暗号化処理（Ｓ１３）時の内部状態とをそれぞれ独立して管理する。このために、暗号化処理（Ｓ１３）時に簡易初期化処理（Ｓ１２）を実行し、内部状態を更新した後に暗号化処理（Ｓ１３）を行い、暗号化処理（Ｓ１３）終了後にその内部状態を消去して通常の初期化処理終了時の内部状態を復元する。【選択図】      図１
2007060191.tif 000002
【特許請求の範囲】
【請求項１】
線形フィードバックレジスタを備え、前記線形フィードバックレジスタの出力に非線形関数演算を施してキーストリームを生成し、入力される平文を前記キーストリームにより暗号化するストリーム暗号方法であって、
外部から前記鍵情報と初期値とを所定の周期で受信し、所定のアルゴリズムに従い決定されるストリーム暗号の内部状態を前記線形フィードバックレジスタに入力して初期攪拌を行うと共に、前記初期攪拌終了後の内部状態を内部状態メモリに保存する初期化処理ステップと、
前記初期化処理ステップにおける周期よりも短い周期で到来する初期値を受信し、前記初期値と前記内部状態メモリに保存された前記初期攪拌終了後の内部状態とを演算して前記内部状態メモリに保持する簡易初期化処理ステップと、
前記内部状態メモリに保持された内部状態を使用してキーストリームを生成し、前記キーストリームと外部から入力される平文とを演算して暗号化を行い、前記内部状態を動的に更新する暗号化処理ステップと、
前記暗号化が終了し、もしくは前記初期値の入力があった場合、前記内部状態メモリに保持された内部状態を消去し、前記内部メモリに保存されている初期攪拌終了後の内部状態を復元して前記簡易初期化処理ステップ以降の処理ステップを繰り返し実行する後処理ステップと、
を有することを特徴とするストリーム暗号方法。
【請求項２】
線形フィードバックレジスタを備え、前記線形フィードバックレジスタの出力に非線形関数演算を施してキーストリームを生成し、入力される平文を前記キーストリームにより暗号化するストリーム暗号装置であって、
外部から鍵情報と初期値とを所定の周期で受信し、所定のアルゴリズムに従い決定されるストリーム暗号の内部状態を前記線形フィードバックシフトレジスタに入力して初期攪拌を行うと共に、前記初期攪拌終了後の内部状態を内部状態メモリに保存する第１の内部状態生成部と、
前記所定の周期よりも短い周期で到来する初期値を受信し、前記初期値と前記内部状態メモリに保存された前記初期攪拌終了後の内部状態とを演算し、その結果を前記内部状態メモリに保持する第２の内部状態生成部と、
前記内部状態メモリに保持された内部状態を使用してキーストリームを生成し、前記キーストリームと外部から入力される平文とを演算して暗号化を行い、前記内部状態を動的に更新する暗号化処理部と、
前記暗号化処理部による暗号化が終了し、もしくは前記初期値の入力があった場合、前記内部状態メモリに保持された内部状態を消去し、前記内部状態メモリに保存されている初期攪拌終了後の内部状態を復元する内部状態復元部と、
を備えたことを特徴とするストリーム暗号装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、線形フィードバックレジスタを備え、当該線形フィードバックレジスタの出力に非線形関数演算を施してキーストリームを生成し、当該キーストリームと平文とを演算して暗号化する、ストリーム暗号方法および装置に関する。
【背景技術】
【０００２】
近年、コンピュータを利用した様々なサービスが提供されている。多くのサービスにおいては、通信の秘匿を実現するために、暗号が利用される。暗号化方式として、最も一般的なものは、一つの鍵で暗号化・復号化を行う共通鍵暗号化方式であるが、この共通暗号化方式は、ブロック暗号方式とストリーム暗号方式の２つに大別される。
前者は、最も一般的に用いられている方式であるが、後者の方が処理速度に優れるため、近年注目を集めつつある。
【０００３】
上記したストリーム暗号を生成するための方法および装置の一例が以下の特許文献に開示されている。
【特許文献１】特表２００２−５３６９１２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ところで、上記したストリーム暗号には、初期化処理に時間を要するといった問題がある。ここでいう「初期化処理」とは、内蔵のキースケジュールアルゴリズムによるストリーム暗号の内部状態（擬似乱数）の決定と、この内部状態を線形フィードバックレジスタ（ＬＦＳＲ）に入力した後、複数回空廻しを行う初期攪拌処理をいう。
【０００５】
上記した初期化処理は、外部から入力される初期値（初期ベクトルＩＶ）が変更になる毎に最初から実行し直す必要があり、特に、放送データの暗号化等、途中から視聴参加するユーザのために回避できない問題であり、システム性能上無視できないものであった。
【０００６】
本発明は上記事情に基づいてなされたものであり、頻繁に初期値が更新される環境でストリーム暗号を使用する場合にも、安全、高速に初期化処理を実現することのできる、ストリーム暗号方法および装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記した課題を解決するために本発明は、線形フィードバックレジスタを備え、前記線形フィードバックレジスタの出力に非線形関数演算を施してキーストリームを生成し、入力される平文を前記キーストリームにより暗号化するストリーム暗号方法であって、外部から前記鍵情報と初期値とを所定の周期で受信し、所定のアルゴリズムに従い決定されるストリーム暗号の内部状態を前記線形フィードバックレジスタに入力して初期攪拌を行うと共に、前記初期攪拌終了後の内部状態を内部状態メモリに保存する初期化処理ステップと、前記初期化処理ステップにおける周期よりも短い周期で到来する初期値を受信し、前記初期値と前記状態メモリに保存された前記初期攪拌終了後の内部状態とを演算し、その結果を前記内部状態メモリに保持する簡易初期化処理ステップと、前記内部状態メモリに保持された内部状態を使用してキーストリームを生成し、前記キーストリームと外部から入力される平文とを演算して暗号化を行い、前記内部状態を動的に更新する暗号化処理ステップと、前記暗号化処理部による暗号化が終了、もしくは前記初期値の入力があった場合、前記内部状態メモリに保持された内部状態を消去し、前記内部メモリに保存されている初期攪拌終了後の内部状態に基づき、前記簡易初期化処理ステップ以降の処理ステップを繰り返し実行する後処理ステップと、を有することを特徴とする。
【０００８】
また、本発明は、線形フィードバックレジスタを備え、前記線形フィードバックレジスタの出力に非線形関数演算を施してキーストリームを生成し、当該キーストリームと平文とを演算して暗号化するストリーム暗号装置であって、外部から鍵情報と初期値とを所定の周期で受信し、所定のアルゴリズムに従い決定されるストリーム暗号の内部状態を前記線形フィードバックシフトレジスタに入力して初期攪拌を行い、前記初期攪拌終了後の内部状態を内部状態メモリに保存する第１の内部状態生成部と、前記所定の周期よりも短い周期で到来する初期値を受信し、前記初期値と前記状態メモリに保存された前記初期攪拌終了後の内部状態とを演算し、その結果を前記内部状態メモリに保持する第２の内部状態生成部と、前記内部状態メモリに保持された内部状態を使用してキーストリームを生成し、前記キーストリームと外部から入力される平文とを演算して暗号化を行い、前記内部状態を動的に更新する暗号化処理部と、前記暗号化処理部による暗号化が終了、もしくは前記初期値の入力があった場合、前記内部状態メモリに保持された内部状態を消去し、前記内部状態メモリに保存されている初期攪拌終了後の内部状態を復元する内部状態復元部と、を備えたことを特徴とする。
【発明の効果】
【０００９】
本発明によれば、通常の初期化処理が終了した内部状態と、暗号化処理時の内部状態を独立に管理し、暗号化処理時、本発明により付加される簡易初期化処理を実行して内部状態を更新した後に暗号化処理を行い、暗号化処理終了後にその内部状態を消去して通常の初期化終了時の内部状態を復元することにより、頻繁に初期値が更新される環境にあっても、高速、かつ安全なストリーム暗号を実現することができる。
【００１０】
本発明は、一定周期で初期値を送信し、途中から受信したユーザもストリーム暗号を用いて復元を行う放送データの暗号化の初期化処理に用いて特に顕著な効果が得られる。
【発明を実施するための最良の形態】
【００１１】
図１は、本発明の実施形態にかかわるストリーム暗号方法の手順を示すフローチャートである。
以下、図１に示すフローチャートを参照しながら本発明の実施形態にかかわるストリーム暗号方法の処理手順のそれぞれについて詳細に説明する。
【００１２】
まず、通常の初期化処理（Ｓ１１）から説明する。本発明の実施形態にかかわるストリーム暗号装置は、まず、外部から秘密鍵（ＩＫ：Initial Key）と、初期値（ＩＶ：Initial Value）を受信し、内蔵のキースケジュールアルゴリズムを実行して決定される内部状態を、後述する線形フィードバックレジスタ（ＬＦＳＲ−Ａ、ＬＦＳＲ−Ｂ）に供給する。
【００１３】
続いて線形フィードバックレジスタ（ＬＦＳＲ−Ａ、ＬＦＳＲ−Ｂ）は、複数回空回しを行うことで比較的時間を要する初期攪拌処理を行う。そして、初期攪拌処理終了後の内部状態を後述する内部状態メモリに保存する。
【００１４】
次に、本発明により付加される簡易初期化処理（Ｓ１２）が実行される。この簡易初期化処理においては、図２にその詳細がフローチャートとして示されるように、まず、一定周期で初期値（ＩＶ）を受信する（Ｓ１２１、Ｓ１２２）。ここで初期値（ＩＶ）は、初期化処理時における周期よりは短く頻繁に送信されるものとし、内部状態と同じ３００〜４００ビット程度の長さを持つものとする。
【００１５】
そして、ここで受信した初期値（ＩＶ）を、図１に示す初期化処理（Ｓ１１）における初期攪拌終了後の内部状態と、例えばＸＯＲ（排他的論理和）演算することにより足し合わせ、内部状態を更新する（Ｓ１２３）。このＸＯＲ演算の結果、生成される内部状態は、暗号化／復号化処理用として内部状態メモリに一時保持される（Ｓ１２４）。なお、ここでは、初期化処理時のような時間の要する攪拌処理は行なわれない。
【００１６】
説明を図１に戻して説明を続ける。上記した簡易初期化処理（Ｓ１２）に続いて暗号化／復号化処理（Ｓ１３）が実行される。
暗号化／復号化処理（Ｓ１３）では、平文もしくは暗号文が入力され、上記した簡易初期化処理（Ｓ１２）時に更新された内部状態を使ってキーストリームを生成し、平文（暗号文）と、生成されたキーストリームとをＸＯＲ演算することにより暗号化（復号化）を行う。ここで、内部状態は、暗号化（復号化）処理中、動的に更新され、都度内部状態メモリに反映されるものとする。
【００１７】
最後に、後処理（Ｓ１４）について説明する。後処理は、暗号化（復号化）処理終了時、あるいは初期値（ＩＶ）の変更があったときに起動され、内部状態メモリに保持されている内部状態を消去し、先に保存しておいた初期攪拌終了後の内部状態を復元する処理を実行する。そして、Ｓ１２の処理に戻り、簡易初期化処理以降の処理を、暗号化（復号化）処理終了、あるいは初期値（ＩＶ）の変更がある迄繰り返す。
【００１８】
以上説明のように、本発明のストリーム暗号方法は、通常の初期化処理（Ｓ１１）が終了した内部状態と、暗号化処理（Ｓ１３）時の内部状態とをそれぞれ独立して管理することを特徴とするものである。このために、暗号化処理（Ｓ１３）時に簡易初期化処理（Ｓ１２）を実行し、内部状態を更新した後に暗号化処理（Ｓ１３）を行い、この暗号化処理終了後にその内部状態を消去して通常の初期化処理終了時の内部状態を復元する各手順を実行する。
【００１９】
このことにより、頻繁に初期値が更新される環境にあっても、高速なストリーム暗号を実現することができ、また、初期値（ＩＶ）に完全な乱数を用いることで安全性も実現できるものである。
【００２０】
図３は、本発明の実施形態にかかわるストリーム暗号装置の内部構成を示すブロック図である。
本発明の実施形態にかかわるストリーム暗号装置は、内部状態生成部１と、ＬＦＳＲ−Ａ（２）と、クロックコントローラ３と、ＬＦＳＲ−Ｂ（４）と、内部状態メモリ５と、非線形関数発生器６と、内部状態復元部７とで構成される。
【００２１】
内部状態生成部１は、第１と第２の内部状態生成部から成る。第１の内部状態生成部は、外部から秘密鍵（ＩＫ）と初期値（ＩＶ）とを所定の周期で受信し、内蔵のキースケジュールアルゴリズムを実行して決定される内部状態を、ストリーム暗号の内部状態（擬似乱数）発生用に使用される、ＬＦＳＲ−Ａ（２）とＬＦＳＲ−Ｂ（４）のそれぞれに入力して初期攪拌を行い、当該初期攪拌終了後の内部状態を内部状態メモリ５に保存する。
【００２２】
また、第２の内部状態生成部は、上記より短い周期で到来する初期値（ＩＶ）を受信し、当該初期値と内部状態メモリ５に保存された初期攪拌終了後の内部状態とを演算し、その結果を内部状態メモリ５に保持する。
【００２３】
なお、ＬＦＳＲ−Ｂ（４）により生成されるキーストリームは、キーストリームを生成する非線形関数発生器６の入力として供給されている。ここで、非線型関数発生器６は、入力されたキーストリームと、内部状態メモリ５に保持された内部状態とにより、ある非線形関数演算を実行して新たなキーストリームを生成する。
【００２４】
一方、非線型関数発生器６の出力は内部状態メモリ５にも供給されており、更新された内部状態メモリ５の出力は非線形関数発生器６にフィードバック入力される。また、ＬＦＳＲ−Ａ（２）は、クロック制御を行うクロックコントローラ３に対してキーストリームを出力している。クロックコントローラ３は、入力されたキーストリームに従いクロック（シフト量）を決定してＬＦＳＲ−Ｂ（４）を制御する構成になっている。
【００２５】
なお、非線形関数発生器６の出力であるキーストリームは、外部から供給される平文とＸＯＲ演算が実行され、暗号化されたテキストを出力する。ここでは、非線形関数発生器６とＸＯＲ演算器とを総称して暗号化処理部としている。暗号化処理部は、内部状態メモリ５に保持された内部状態を使用してキーストリームを生成し、当該キーストリームと外部から入力される平文とを演算して暗号化を行い、内部状態メモリ５に保持すべき内部状態を動的に更新する。
【００２６】
また、内部状態復元部７は、暗号化あるいは復号化が終了し、あるいは初期値（ＩＶ）の入力があった場合、内部状態メモリ５に逐一保持された内部状態を消去し、内部状態メモリ５に保存されている初期攪拌終了後の内部状態に復元する。
【００２７】
以下、図３に示すストリーム暗号装置の動作について詳細に説明する。まず、ＬＦＳＥ−Ａ（２）、ＬＦＳＲ−Ｂ（４）への内部状態の設定にあたり、内部状態生成部１へ秘密鍵（ＩＫ：Initial Key）と初期値（ＩＶ：Initial Value）が入力される。このとき、内部状態生成部１（第１の内部状態生成部）は、所定のキースケジュールアルゴリズムに従い内部状態を決定し、ＬＦＳＲ−Ａ（２）、ＬＦＳＲ−Ｂ（４）のそれぞれに内部状態（第１の擬似乱数列、第２の擬似乱数列）を入力して初期化処理を実行する。このとき、決定された内部状態を内部状態メモリ５に保存する。
【００２８】
続いて、内部状態生成部１（第２の内部状態生成部）は、上記した初期化処理における周期よりも短い周期で到来する初期値を受信し、当該初期値と内部状態メモリ５に保存された初期攪拌終了後の内部状態とを演算し、その結果を暗号化処理用として内部状態メモリ５に保持して簡易初期化処理を実行する
【００２９】
上記した簡易初期化処理終了の後、本発明の実施形態にかかわるストリーム暗号装置は、以下の手順に従って暗号化処理を実行する。
すなわち、ＬＦＳＲ−Ｂ（４）により出力されるキーストリームは、後述するクロックコントローラ３によるクロック制御を経て非線形関数発生器６の入力として供給される。非線型関数発生器６は、入力されたキーストリームと、内部状態メモリ５に保存された内部状態とにより、ある非線形関数演算を実行して新たなキーストリームを生成する。そして、非線型関数発生器６により生成されるキーストリームは、別途入力される平文とによりＸＯＲ演算が施され、このことにより暗号化テキストが生成される。
【００３０】
なお、内部状態は上記した暗号化処理の過程で適宜更新される。すなわち、非線型関数発生器６の出力は内部状態メモリ５にも供給されており、内容が更新された内部状態メモリ５の出力は非線形関数発生器６にフィードバックされ入力されている。また、ＬＦＳＲ−Ａ（２）は、クロック制御を行うクロックコントローラ３に対して内部状態（擬似乱数列）を出力している。
【００３１】
クロックコントローラ３は、入力されたキーストリーム（擬似乱数列）に従いクロックを決定してＬＦＳＲ−Ｂ（４）を制御する。具体的に、ここでは、ＬＦＳＲ−Ａ（２）、ＬＦＳＲ−Ｂ（４）を１周期動作させている。その際、クロックコントローラ３は、次数２のガロア有限フィールド（ＧＦ２^Ｎ）を定義する多項式の根αに従い、ＬＦＳＲ−Ｂ（４）のフィードバックポリノミアル（図３中結線部分）のビットシフトにクロック制御（α^ｎを掛ける）を行う。ここで、ｎはクロックコントローラ３が決定したクロック数（シフト量）である。このことにより、１ワード内でのクロック制御が行なわれる。
【００３２】
最後に、暗号化処理が終了し、あるいは新規に初期値（ＩＶ）入力があった場合、内部状態復元部７は、内部状態メモリ５に保持された内部状態を消去し、内部状態メモリ５に保存されている初期攪拌終了後の内部状態に基づき、上記した簡易初期化処理以降の処理の繰り返し実行を指示する。
【００３３】
以上説明のように本発明は、通常の初期化処理が終了した内部状態と、暗号化処理時の内部状態を独立して管理し、暗号化処理時、上記した簡易初期化処理を実行して内部状態を更新した後に暗号化処理を行い、暗号化処理終了後にその内部状態を消去して通常の初期化終了時の内部状態を復元することにより、頻繁に初期値が更新される環境にあっても、高速、かつ安全なストリーム暗号を実現するものである。
【００３４】
本発明は、一定周期で初期値を送信し、途中から受信したユーザもストリーム暗号を用いて復元を行う放送データの暗号化の初期化処理に用いて特に顕著な効果が得られる。また、様々なストリーム暗号の評価に広く適用でき、ストリーム暗号を使用するようなブロードバンド事業や、携帯電話をはじめとするモバイル通信におけるシステム構築に応用が可能である。
【図面の簡単な説明】
【００３５】
【図１】本発明の実施形態にかかわるストリーム暗方法の各実行手順を説明するために引用したフローチャートである。
【図２】本発明により付加される簡易初期化処理の詳細手順を説明するために引用したフローチャートである。
【図３】本発明の実施形態にかかわるストリーム暗化装置の内部構成を示すブロック図である。
【符号の説明】
【００３６】
１…内部状態生成部（第１、第２の内部状態生成部）、２、４…線形フィードバックレジスタ（ＬＦＳＲ−Ａ，ＬＦＳＲ−Ｂ）、３…クロックコントローラ、５…内部状態メモリ、６…非線型関数発生器（暗号化処理部）、７…内部状態復元部
【図１】
2007060191.tif 000003
【図２】
2007060191.tif 000004
【図３】
2007060191.tif 000005