【課題を解決するための手段】
【0013】
(1)本発明は、秘密鍵と初期ベクトルとに基づいて初期化されるストリーム暗号の内部状態、またはキーストリーム出力時に更新される前記ストリーム暗号の内部状態を保持するフィードバックシフトレジスタ(例えば、
図1のFSR−A100A、FSR−B100Bに相当)からの入力値に非線形処理を施してキーストリームを出力する非線形処理器であって、入力値を非線形置換処理する非線形置換手段(例えば、
図2のSub320a、Sub320b、Sub320c、Sub320dに相当)と、前記非線形置換手段からの出力値を格納する複数の内部レジスタ(例えば、
図2のL1、L2、R1、R2に相当)と、前記複数の内部レジスタそれぞれの入力端に設けられ、前記フィードバックシフトレジスタに格納されている値の一部から生成された乱数と、前記非線形置換手段の出力値との排他的論理和演算を行って、当該非線形置換手段の出力値をマスクするマスク処理手段(例えば、
図3排他的論理和演算器303aに相当)と、前記複数の内部レジスタそれぞれの出力端に設けられ、前記乱数と、当該複数の内部レジスタそれぞれに格納されている値との排他的論理和演算を行って、当該内部レジスタに格納されている値のマスクを外すマスク解除手段(例えば、
図3の排他的論理和演算器303bに相当)と、を備え、前記複数の内部レジスタが前記非線形置換手段を介して接続され、前記非線形置換手段が、少なくとも内部レジスタに格納されている値を入力値として非線形置換処理を行うことを特徴とする非線形処理器を提案している。
【0014】
この発明によれば、非線形置換手段は、少なくとも内部レジスタに格納されている値を入力値として非線形置換処理する。内部レジスタは、複数備えられ、また、非線形置換手段を介して接続され、非線形置換手段からの出力値を格納する。マスク処理手段は、複数の内部レジスタそれぞれの入力端に設けられ、フィードバックシフトレジスタに格納されている値の一部から生成された乱数と、非線形置換手段の出力値との排他的論理和演算を行って、非線形置換手段の出力値をマスクする。マスク解除手段は、複数の内部レジスタそれぞれの出力端に設けられ、乱数と、複数の内部レジスタそれぞれに格納されている値との排他的論理和演算を行って、内部レジスタに格納されている値のマスクを外す。したがって、暗号化または復号処理中の値をマスクするための乱数をストリーム暗号の内部状態から生成することにより、暗号化または復号処理中の値をマスクするための乱数を生成する回路を別途備えることなく、暗号を安全に実行することが可能となる。また、乱数を生成する回路を別途必要としないので、ICカード等のデバイスへの実装が可能であり、処理速度や消費電力等への影響も少なくすることができる。
【0015】
(2)本発明は、(1)の非線形処理器について、前記乱数が、前記フィードバックシフトレジスタに格納されている値のうち、前記キーストリーム出力時における当該フィードバックシフトレジスタの更新によって乱数性が確保される値から生成されることを特徴とする非線形処理器を提案している。
【0016】
この発明によれば、乱数が、フィードバックシフトレジスタに格納されている値のうち、キーストリーム出力時におけるフィードバックシフトレジスタの更新によって乱数性が確保される値から生成される。したがって、暗号化または復号処理中の値をマスクするために用いる乱数の乱数性が確保でき、サイドチャネル攻撃に対する安全性を高めることができる。
【0017】
(3)本発明は、(1)または(2)の非線形処理器について、前記乱数が、前記フィードバックシフトレジスタに格納されている値の一部を加算することにより生成されることを特徴とする非線形処理器を提案している。
【0018】
この発明によれば、乱数が、フィードバックシフトレジスタに格納されている値の一部を加算することにより生成される。したがって、回路規模をほとんど増加させず、処理速度や消費電力等への影響小さくすることができる。
【0019】
(4)本発明は、(1)から(3)の非線形処理器について、前記フィードバックシフトレジスタは、5段構成の第1のフィードバックレジスタ(例えば、
図1のFSR−A100Aに相当)と11段構成の第2のフィードバックレジスタ(例えば、
図1のFSR−B100Bに相当)を含み、前記乱数が、前記第1のフィードバックレジスタの2段目および3段目に格納されている値と、前記第2のフィードバックレジスタの4段目および10段目に格納されている値とを加算することにより生成されることを特徴とする非線形処理器を提案している。
【0020】
この発明によれば、フィードバックシフトレジスタは、5段構成の第1のフィードバックレジスタと11段構成の第2のフィードバックレジスタを含む。乱数が、第1のフィードバックレジスタの2段目および3段目に格納されている値と、第2のフィードバックレジスタの4段目および10段目に格納されている値とを加算することにより生成される。したがって、フィードバックレジスタに格納されている4つの値から乱数を生成することができる。
【0021】
(5)本発明は、(1)から(4)の非線形処理器と、前記秘密鍵と前記初期ベクトルとに基づいて前記内部状態を初期化し、初期化された内部状態を前記フィードバックシフトレジスタに保持する初期化処理手段(例えば、
図5の初期化処理部11に相当)と、前記キーストリーム出力時に内部状態を更新し、更新された内部状態を前記フィードバックシフトレジスタに保持する内部状態更新手段(例えば、
図5の内部状態更新部12に相当)と、前記非線形処理器から出力されたキーストリームと、外部から入力された平文との排他的論理和演算を行なって、暗号文を出力する暗号化手段(例えば、
図5の暗号化部13に相当)と、を備えるストリーム暗号の暗号化装置を提案している。
【0022】
この発明によれば、暗号化装置は、(1)から(4)の非線形処理器を用いて、暗号化装置を構成することができる。したがって、暗号化処理中の値をマスクするための乱数を生成する回路を別途備えることなく、暗号を安全に実行することが可能な暗号化装置を構成することができる。また、処理速度や消費電力等への影響が少なく、ICカード等のデバイスへの実装が可能な暗号化装置を構成することができる。
【0023】
(6)本発明は、(1)から(4)の非線形処理器と、前記秘密鍵と前記初期ベクトルとに基づいて前記内部状態を初期化し、初期化された内部状態を前記フィードバックシフトレジスタに保持する初期化処理手段(例えば、
図6の初期化処理部11に相当)と、前記キーストリーム出力時に内部状態を更新し、更新された内部状態を前記フィードバックシフトレジスタに保持する内部状態更新手段(例えば、
図6の内部状態更新部12に相当)と、前記非線形処理器から出力されたキーストリームと、外部から入力された暗号文との排他的論理和演算を行なって、平文を出力する復号手段(例えば、
図6の復号部14に相当)と、を備えるストリーム暗号の復号装置を提案している。
【0024】
この発明によれば、復号装置は、(1)から(4)の非線形処理器を用いて、復号装置を構成することができる。したがって、復号処理中の値をマスクするための乱数を生成する回路を別途備えることなく、復号を安全に実行することが可能な復号装置を構成することができる。また、処理速度や消費電力等への影響が少なく、ICカード等のデバイスへの実装が可能な復号装置を構成することができる。
【0025】
(7)本発明は、秘密鍵と初期ベクトルとに基づいて初期化されるストリーム暗号の内部状態、またはキーストリーム出力時に更新される前記ストリーム暗号の内部状態を保持するフィードバックシフトレジスタからの入力値に非線形処理を施してキーストリームを出力する非線形処理器における、非線形処理器内部のデータをマスクするマスク処理方法であって、前記非線形処理器が、内部レジスタ、入力値に対して非線形置換処理を行う非線形置換手段、マスク処理手段、およびマスク解除手段から構成され、前記マスク処理手段が、前記非線形置換手段の出力値と、前記フィードバックシフトレジスタに格納されている値の一部から生成された乱数との排他的論理和演算を行って、当該非線形置換手段の出力値をマスクする第1のステップ(例えば、
図4のステップS1に相当)と、前記内部レジスタが、前記第1のステップでマスクされた前記非線形置換手段の出力値を格納する第2のステップ(例えば、
図4のステップS2に相当)と、前記マスク解除手段が、前記第2のステップで前記内部レジスタに格納された値と、前記乱数との排他的論理和演算を行って、当該内部レジスタに格納された値のマスクを外す第3のステップ(例えば、
図4のステップS3に相当)と、を含むことを特徴とする非線形処理方法を提案している。
【0026】
この発明によれば、まず、第1のステップにおいて、マスク処理手段が、非線形置換手段の出力値と、フィードバックシフトレジスタに格納されている値の一部から生成された乱数との排他的論理和演算を行って、非線形置換手段の出力値をマスクする。次に、第2のステップにおいて、内部レジスタが、第1のステップでマスクされた非線形置換手段の出力値を格納する。次に、第3のステップにおいて、マスク解除手段が、第2のステップで内部レジスタに格納された値と、乱数との排他的論理和演算を行って、内部レジスタに格納された値のマスクを外す。したがって、暗号化または復号処理中の値をマスクするための乱数をストリーム暗号の内部状態から生成することにより、暗号化または復号処理中の値をマスクするための乱数を生成する回路を別途備えることなく、暗号を安全に実行することが可能となる。また、乱数を生成する回路を別途必要としないので、ICカード等のデバイスへの実装が可能であり、処理速度や消費電力等への影響も少なくすることができる。
【0027】
(8)本発明は、秘密鍵と初期ベクトルとに基づいて初期化されるストリーム暗号の内部状態、またはキーストリーム出力時に更新される前記ストリーム暗号の内部状態を保持するフィードバックシフトレジスタからの入力値に非線形処理を施してキーストリームを出力する非線形処理器における、非線形処理器内部のデータをマスクするマスク処理方法をコンピュータに実行させるためのプログラムであって、前記非線形処理器が、内部レジスタ、入力値に対して非線形置換処理を行う非線形置換手段、マスク処理手段、およびマスク解除手段から構成され、前記マスク処理手段が、前記非線形置換手段の出力値と、前記フィードバックシフトレジスタに格納されている値の一部から生成された乱数との排他的論理和演算を行って、当該非線形置換手段の出力値をマスクする第1のステップ(例えば、
図4のステップS1に相当)と、前記内部レジスタが、前記第1のステップでマスクされた前記非線形置換手段の出力値を格納する第2のステップ(例えば、
図4のステップS2に相当)と、前記マスク解除手段が、前記第2のステップで前記内部レジスタに格納された値と、前記乱数との排他的論理和演算を行って、当該内部レジスタに格納された値のマスクを外す第3のステップ(例えば、
図4のステップS3に相当)と、をコンピュータに実行させるためのプログラムを提案している。
【0028】
この発明によれば、まず、第1のステップにおいて、マスク処理手段が、非線形置換手段の出力値と、フィードバックシフトレジスタに格納されている値の一部から生成された乱数との排他的論理和演算を行って、非線形置換手段の出力値をマスクする。次に、第2のステップにおいて、内部レジスタが、第1のステップでマスクされた非線形置換手段の出力値を格納する。次に、第3のステップにおいて、マスク解除手段が、第2のステップで内部レジスタに格納された値と、乱数との排他的論理和演算を行って、内部レジスタに格納された値のマスクを外す。したがって、暗号化または復号処理中の値をマスクするための乱数をストリーム暗号の内部状態から生成することにより、暗号化または復号処理中の値をマスクするための乱数を生成する回路を別途備えることなく、暗号を安全に実行することが可能となる。また、乱数を生成する回路を別途必要としないので、ICカード等のデバイスへの実装が可能であり、処理速度や消費電力等への影響も少なくすることができる。
【0029】
(9)本発明は、初期化処理において、初期鍵を拡張した拡張鍵と初期値とを入力し、前記初期化処理終了後においては、非線形部からのフィードバック値を入力し、鍵系列を生成する鍵系列生成手段(例えば、
図7の非線形処理部1300に相当)と、初期化処理において、初期鍵を拡張した拡張鍵と初期値とを前記鍵系列生成手段に入力し、前記初期化処理終了後においては、非線形部からのフィードバック値を前記鍵系列生成手段に入力する入力切替手段(例えば、
図7のフリップフロップ1200に相当)と、前記鍵系列生成手段が実行する非線形処理が並列に処理され、前記鍵系列生成手段内に設けられた非線形関数が、並べ替え処理およびフィードバック値を得るための乗算結果をデータテーブルとして保持し、前記生成された鍵系列と平文の排他的論理和演算を行い暗号文を生成する暗号文生成手段(例えば、
図7の排他的論理和演算器1400に相当)と、を備えたことを特徴とするストリーム暗号の暗号化装置を提案している。
【0030】
この発明によれば、鍵系列生成手段は、初期化処理において、初期鍵を拡張した拡張鍵と初期値とを入力し、初期化処理終了後においては、非線形部からのフィードバック値を入力し、鍵系列を生成する。入力切替手段は、初期化処理において、初期鍵を拡張した拡張鍵と初期値とを鍵系列生成手段に入力し、初期化処理終了後においては、非線形部からのフィードバック値を鍵系列生成手段に入力する。暗号文生成手段は、鍵系列生成手段が実行する非線形処理が並列に処理され、鍵系列生成手段内に設けられた非線形関数が、並べ替え処理およびフィードバック値を得るための乗算結果をデータテーブルとして保持し、生成された鍵系列と平文の排他的論理和演算を行い暗号文を生成する。つまり、入力切替手段が、初期化処理において、初期鍵を拡張した拡張鍵と初期値とを鍵系列生成手段に入力し、初期化処理終了後においては、非線形部からのフィードバック値を鍵系列生成手段に入力するため、データの遅延量が、増大することを防止できるため、暗号化にかかる時間を短くすることができる。また、鍵系列生成手段が実行する非線形処理が並列に処理され、鍵系列生成手段内に設けられた非線形関数が、並べ替え処理およびフィードバック値を得るための乗算結果をデータテーブルとして保持するため、多くの処理が多重化でき、さらに、非線形関数は、テーブルを1回だけ参照すれば、処理を行うことができるため、暗号化にかかる時間を短くすることができる。
【0031】
(10)本発明は、初期鍵を拡張する初期鍵拡張手段(例えば、
図7の鍵拡張部1100に相当)と、初期化処理において、該拡張した初期鍵と初期値とを入力し、前記初期化処理終了後においては、非線形部からのフィードバック値を入力し、鍵系列を生成する鍵系列生成手段(例えば、
図7の非線形処理部1300に相当)と、初期化処理において、初期鍵を拡張した拡張鍵と初期値とを前記鍵系列生成手段に入力し、前記初期化処理終了後においては、非線形部からのフィードバック値を前記鍵系列生成手段に入力する入力切替手段(例えば、
図7のフリップフロップ1200に相当)と、前記鍵系列生成手段が実行する非線形処理が並列に処理され、前記鍵系列生成手段内に設けられた非線形関数が、並べ替え処理およびフィードバック値を得るための乗算結果をデータテーブルとして保持し、前記生成された鍵系列と平文の排他的論理和演算を行い暗号文を生成する暗号文生成手段(例えば、
図7の排他的論理和演算器1400に相当)と、を備えたことを特徴とするストリーム暗号の暗号化装置を提案している。
【0032】
この発明によれば、初期鍵拡張手段は、初期鍵を拡張する。初期化処理において、初期鍵を拡張した拡張鍵と初期値とを入力し、初期化処理終了後においては、非線形部からのフィードバック値を入力し、鍵系列を生成する。入力切替手段は、初期化処理において、初期鍵を拡張した拡張鍵と初期値とを鍵系列生成手段に入力し、初期化処理終了後においては、非線形部からのフィードバック値を鍵系列生成手段に入力する。暗号文生成手段は、鍵系列生成手段が実行する非線形処理が並列に処理され、鍵系列生成手段内に設けられた非線形関数が、並べ替え処理およびフィードバック値を得るための乗算結果をデータテーブルとして保持し、生成された鍵系列と平文の排他的論理和演算を行い暗号文を生成する。つまり、入力切替手段が、初期化処理において、初期鍵を拡張した拡張鍵と初期値とを鍵系列生成手段に入力し、初期化処理終了後においては、非線形部からのフィードバック値を鍵系列生成手段に入力するため、データの遅延量が、増大することを防止できるため、暗号化にかかる時間を短くすることができる。また、鍵系列生成手段が実行する非線形処理が並列に処理され、鍵系列生成手段内に設けられた非線形関数が、並べ替え処理およびフィードバック値を得るための乗算結果をデータテーブルとして保持するため、多くの処理が多重化でき、さらに、非線形関数は、テーブルを1回だけ参照すれば、処理を行うことができるため、暗号化にかかる時間を短くすることができる。
【0033】
(11)本発明は、(9)または(10)のストリーム暗号の暗号化装置について、前記入力切替手段が、フリップフロップであることを特徴とするストリーム暗号の暗号化装置を提案している。
【0034】
この発明によれば、入力切替手段が、フリップフロップである。したがって、「0」あるいは「1」を入力することにより、簡単に鍵系列生成手段への入力を切り替えることができる。
【0035】
(12)本発明は、初期化処理において、初期鍵を拡張した拡張鍵と初期値とを入力し、前記初期化処理終了後においては、非線形部からのフィードバック値を入力し、鍵系列を生成する鍵系列生成手段(例えば、
図12の非線形処理部1300に相当)と、初期化処理において、初期鍵を拡張した拡張鍵と初期値とを前記鍵系列生成手段に入力し、前記初期化処理終了後においては、非線形部からのフィードバック値を前記鍵系列生成手段に入力する入力切替手段(例えば、
図12のフリップフロップ1200に相当)と、前記鍵系列生成手段が実行する非線形処理が並列に処理され、前記鍵系列生成手段内に設けられた非線形関数が、並べ替え処理およびフィードバック値を得るための乗算結果をデータテーブルとして保持し、前記生成された鍵系列と暗号文の排他的論理和演算を行い平文を生成する平文生成手段(例えば、
図12の排他的論理和演算器1400に相当)と、を備えたことを特徴とするストリーム暗号の復号化装置を提案している。
【0036】
この発明によれば、鍵系列生成手段は、初期化処理において、初期鍵を拡張した拡張鍵と初期値とを入力し、初期化処理終了後においては、非線形部からのフィードバック値を入力し、鍵系列を生成する。入力切替手段は、初期化処理において、初期鍵を拡張した拡張鍵と初期値とを鍵系列生成手段に入力し、初期化処理終了後においては、非線形部からのフィードバック値を鍵系列生成手段に入力する。暗号文生成手段は、鍵系列生成手段が実行する非線形処理が並列に処理され、鍵系列生成手段内に設けられた非線形関数が、並べ替え処理およびフィードバック値を得るための乗算結果をデータテーブルとして保持し、生成された鍵系列と暗号文の排他的論理和演算を行い平文を生成する。つまり、入力切替手段が、初期化処理において、初期鍵を拡張した拡張鍵と初期値とを鍵系列生成手段に入力し、初期化処理終了後においては、非線形部からのフィードバック値を鍵系列生成手段に入力するため、データの遅延量が、増大することを防止できるため、暗号化にかかる時間を短くすることができる。また、鍵系列生成手段が実行する非線形処理が並列に処理され、鍵系列生成手段内に設けられた非線形関数が、並べ替え処理およびフィードバック値を得るための乗算結果をデータテーブルとして保持するため、多くの処理が多重化でき、さらに、非線形関数は、テーブルを1回だけ参照すれば、処理を行うことができるため、暗号化にかかる時間を短くすることができる。
【0037】
(13)本発明は、初期鍵を拡張する初期鍵拡張手段(例えば、
図12の鍵拡張部1100に相当)と、初期化処理において、該拡張した初期鍵と初期値とを入力し、前記初期化処理終了後においては、非線形部からのフィードバック値を入力し、鍵系列を生成する鍵系列生成手段(例えば、
図12の非線形処理部1300に相当)と、初期化処理において、初期鍵を拡張した拡張鍵と初期値とを前記鍵系列生成手段に入力し、前記初期化処理終了後においては、非線形部からのフィードバック値を前記鍵系列生成手段に入力する入力切替手段(例えば、
図12のフリップフロップ1200に相当)と、前記鍵系列生成手段が実行する非線形処理が並列に処理され、前記鍵系列生成手段内に設けられた非線形関数が、並べ替え処理およびフィードバック値を得るための乗算結果をデータテーブルとして保持し、前記生成された鍵系列と暗号文の排他的論理和演算を行い平文を生成する平文生成手段(例えば、
図12の排他的論理和演算器1400に相当)と、を備えたことを特徴とするストリーム暗号の復号化装置を提案している。
【0038】
この発明によれば、初期鍵拡張手段は、初期鍵を拡張する。初期化処理において、初期鍵を拡張した拡張鍵と初期値とを入力し、初期化処理終了後においては、非線形部からのフィードバック値を入力し、鍵系列を生成する。入力切替手段は、初期化処理において、初期鍵を拡張した拡張鍵と初期値とを鍵系列生成手段に入力し、初期化処理終了後においては、非線形部からのフィードバック値を鍵系列生成手段に入力する。暗号文生成手段は、鍵系列生成手段が実行する非線形処理が並列に処理され、鍵系列生成手段内に設けられた非線形関数が、並べ替え処理およびフィードバック値を得るための乗算結果をデータテーブルとして保持し、生成された鍵系列と暗号文の排他的論理和演算を行い平文を生成する。つまり、入力切替手段が、初期化処理において、初期鍵を拡張した拡張鍵と初期値とを鍵系列生成手段に入力し、初期化処理終了後においては、非線形部からのフィードバック値を鍵系列生成手段に入力するため、データの遅延量が、増大することを防止できるため、暗号化にかかる時間を短くすることができる。また、鍵系列生成手段が実行する非線形処理が並列に処理され、鍵系列生成手段内に設けられた非線形関数が、並べ替え処理およびフィードバック値を得るための乗算結果をデータテーブルとして保持するため、多くの処理が多重化でき、さらに、非線形関数は、テーブルを1回だけ参照すれば、処理を行うことができるため、暗号化にかかる時間を短くすることができる。
【0039】
(14)本発明は、(12)または(13)のストリーム暗号の暗号化装置について、前記入力切替手段が、フリップフロップであることを特徴とするストリーム暗号の復号化装置を提案している。
【0040】
この発明によれば、入力切替手段が、フリップフロップである。したがって、「0」あるいは「1」を入力することにより、簡単に鍵系列生成手段への入力を切り替えることができる。
【0041】
(15)本発明は、鍵拡張手段が、事前に初期鍵を拡張して拡張鍵を生成する第1のステップ(例えば、
図11のステップS1101に相当)と、初期化処理手段が、初期化処理において、該生成した拡張鍵と初期値とを入力し、初期化処理を行う第2のステップ(例えば、
図11のステップS1102に相当)と、鍵系列生成手段が、前記初期化処理終了後に、非線形部からのフィードバック値を入力し、非線形処理を並列に処理するとともに、非線形関数が、並べ替え処理およびフィードバック値を得るための乗算結果をデータテーブルとして保持して処理し、鍵系列を生成する第3のステップ(例えば、
図11のステップS1103に相当)と、暗号文生成手段が、該生成された鍵系列と平文の排他的論理和演算を行い暗号文を生成する第4のステップ(例えば、
図11のステップS1104に相当)と、を備えたことを特徴とするストリーム暗号の暗号化方法を提案している。
【0042】
この発明によれば、鍵拡張手段が、事前に初期鍵を拡張して拡張鍵を生成し、初期化処理手段が、初期化処理において、生成した拡張鍵と初期値とを入力し、初期化処理を行う。そして、鍵系列生成手段が、初期化処理終了後に、非線形部からのフィードバック値を入力し、非線形処理を並列に処理するとともに、非線形関数が、並べ替え処理およびフィードバック値を得るための乗算結果をデータテーブルとして保持して処理し、鍵系列を生成し、暗号文生成手段が、生成された鍵系列と平文の排他的論理和演算を行い暗号文を生成する。つまり、入力切替手段が、初期化処理において、初期鍵を拡張した拡張鍵と初期値とを鍵系列生成手段に入力し、初期化処理終了後においては、非線形部からのフィードバック値を鍵系列生成手段に入力するため、データの遅延量が、増大することを防止できるため、暗号化にかかる時間を短くすることができる。また、鍵系列生成手段が実行する非線形処理が並列に処理され、鍵系列生成手段内に設けられた非線形関数が、並べ替え処理およびフィードバック値を得るための乗算結果をデータテーブルとして保持するため、多くの処理が多重化でき、さらに、非線形関数は、テーブルを1回だけ参照すれば、処理を行うことができるため、暗号化にかかる時間を短くすることができる。
【0043】
(16)本発明は、鍵拡張手段が、初期鍵を拡張して拡張鍵を生成する第1のステップと、初期化処理手段が、初期化処理において、該生成した拡張鍵と初期値とを入力し、初期化処理を行う第2のステップと、鍵系列生成手段が、前記初期化処理終了後に、非線形部からのフィードバック値を入力し、非線形処理を並列に処理するとともに、非線形関数が、並べ替え処理およびフィードバック値を得るための乗算結果をデータテーブルとして保持して処理し、鍵系列を生成する第3のステップと、暗号文生成手段が、該生成された鍵系列と平文の排他的論理和演算を行い暗号文を生成する第4のステップと、を備えたことを特徴とするストリーム暗号の暗号化方法を提案している。
【0044】
この発明によれば、鍵拡張手段が、初期鍵を拡張して拡張鍵を生成し、初期化処理手段が、初期化処理において、生成した拡張鍵と初期値とを入力し、初期化処理を行う。そして、鍵系列生成手段が、初期化処理終了後に、非線形部からのフィードバック値を入力し、非線形処理を並列に処理するとともに、非線形関数が、並べ替え処理およびフィードバック値を得るための乗算結果をデータテーブルとして保持して処理し、鍵系列を生成し、暗号文生成手段が、生成された鍵系列と平文の排他的論理和演算を行い暗号文を生成する。つまり、入力切替手段が、初期化処理において、初期鍵を拡張した拡張鍵と初期値とを鍵系列生成手段に入力し、初期化処理終了後においては、非線形部からのフィードバック値を鍵系列生成手段に入力するため、データの遅延量が、増大することを防止できるため、暗号化にかかる時間を短くすることができる。また、鍵系列生成手段が実行する非線形処理が並列に処理され、鍵系列生成手段内に設けられた非線形関数が、並べ替え処理およびフィードバック値を得るための乗算結果をデータテーブルとして保持するため、多くの処理が多重化でき、さらに、非線形関数は、テーブルを1回だけ参照すれば、処理を行うことができるため、暗号化にかかる時間を短くすることができる。
【0045】
(17)本発明は、鍵拡張手段が、事前に初期鍵を拡張して拡張鍵を生成する第1のステップ(例えば、
図15のステップS1201に相当)と、初期化処理手段が、初期化処理において、該生成した拡張鍵と初期値とを入力し、初期化処理を行う第2のステップ(例えば、
図15のステップS1202に相当)と、鍵系列生成手段が、前記初期化処理終了後に、非線形部からのフィードバック値を入力し、非線形処理を並列に処理するとともに、非線形関数が、並べ替え処理およびフィードバック値を得るための乗算結果をデータテーブルとして保持して処理し、鍵系列を生成する第3のステップ(例えば、
図15のステップS1203に相当)と、平文生成手段が、該生成された鍵系列と暗号文の排他的論理和演算を行い平文を生成する第4のステップ(例えば、
図15のステップS1204に相当)と、を備えたことを特徴とするストリーム暗号の復号化方法を提案している。
【0046】
この発明によれば、鍵拡張手段が、事前に初期鍵を拡張して拡張鍵を生成し、初期化処理手段が、初期化処理において、生成した拡張鍵と初期値とを入力し、初期化処理を行う。そして、鍵系列生成手段が、初期化処理終了後に、非線形部からのフィードバック値を入力し、非線形処理を並列に処理するとともに、非線形関数が、並べ替え処理およびフィードバック値を得るための乗算結果をデータテーブルとして保持して処理し、鍵系列を生成し、暗号文生成手段が、生成された鍵系列と暗号文の排他的論理和演算を行い平文を生成する。つまり、入力切替手段が、初期化処理において、初期鍵を拡張した拡張鍵と初期値とを鍵系列生成手段に入力し、初期化処理終了後においては、非線形部からのフィードバック値を鍵系列生成手段に入力するため、データの遅延量が、増大することを防止できるため、暗号化にかかる時間を短くすることができる。また、鍵系列生成手段が実行する非線形処理が並列に処理され、鍵系列生成手段内に設けられた非線形関数が、並べ替え処理およびフィードバック値を得るための乗算結果をデータテーブルとして保持するため、多くの処理が多重化でき、さらに、非線形関数は、テーブルを1回だけ参照すれば、処理を行うことができるため、暗号化にかかる時間を短くすることができる。
【0047】
(18)本発明は、鍵拡張手段が、初期鍵を拡張して拡張鍵を生成する第1のステップと、初期化処理手段が、初期化処理において、該生成した拡張鍵と初期値とを入力し、初期化処理を行う第2のステップと、鍵系列生成手段が、前記初期化処理終了後に、非線形部からのフィードバック値を入力し、非線形処理を並列に処理するとともに、非線形関数が、並べ替え処理およびフィードバック値を得るための乗算結果をデータテーブルとして保持して処理し、鍵系列を生成する第3のステップと、平文生成手段が、該生成された鍵系列と暗号文の排他的論理和演算を行い平文を生成する第4のステップと、を備えたことを特徴とするストリーム暗号の復号化方法を提案している。
【0048】
この発明によれば、鍵拡張手段が、初期鍵を拡張して拡張鍵を生成し、初期化処理手段が、初期化処理において、生成した拡張鍵と初期値とを入力し、初期化処理を行う。そして、鍵系列生成手段が、初期化処理終了後に、非線形部からのフィードバック値を入力し、非線形処理を並列に処理するとともに、非線形関数が、並べ替え処理およびフィードバック値を得るための乗算結果をデータテーブルとして保持して処理し、鍵系列を生成し、暗号文生成手段が、生成された鍵系列と暗号文の排他的論理和演算を行い平文を生成する。つまり、入力切替手段が、初期化処理において、初期鍵を拡張した拡張鍵と初期値とを鍵系列生成手段に入力し、初期化処理終了後においては、非線形部からのフィードバック値を鍵系列生成手段に入力するため、データの遅延量が、増大することを防止できるため、暗号化にかかる時間を短くすることができる。また、鍵系列生成手段が実行する非線形処理が並列に処理され、鍵系列生成手段内に設けられた非線形関数が、並べ替え処理およびフィードバック値を得るための乗算結果をデータテーブルとして保持するため、多くの処理が多重化でき、さらに、非線形関数は、テーブルを1回だけ参照すれば、処理を行うことができるため、暗号化にかかる時間を短くすることができる。
【0049】
(19)本発明は、ストリーム暗号の暗号化方法をコンピュータに実行させるためのプログラムであって、鍵拡張手段が、事前に初期鍵を拡張して拡張鍵を生成する第1のステップ(例えば、
図11のステップS1101に相当)と、初期化処理手段が、初期化処理において、該生成した拡張鍵と初期値とを入力し、初期化処理を行う第2のステップ(例えば、
図11のステップS1102に相当)と、鍵系列生成手段が、前記初期化処理終了後に、非線形部からのフィードバック値を入力し、非線形処理を並列に処理するとともに、非線形関数が、並べ替え処理およびフィードバック値を得るための乗算結果をデータテーブルとして保持して処理し、鍵系列を生成する第3のステップ(例えば、
図11のステップS1103に相当)と、暗号文生成手段が、該生成された鍵系列と平文の排他的論理和演算を行い暗号文を生成する第4のステップ(例えば、
図11のステップS1104に相当)と、をコンピュータに実行させるためのプログラムを提案している。
【0050】
この発明によれば、鍵拡張手段が、事前に初期鍵を拡張して拡張鍵を生成し、初期化処理手段が、初期化処理において、生成した拡張鍵と初期値とを入力し、初期化処理を行う。そして、鍵系列生成手段が、初期化処理終了後に、非線形部からのフィードバック値を入力し、非線形処理を並列に処理するとともに、非線形関数が、並べ替え処理およびフィードバック値を得るための乗算結果をデータテーブルとして保持して処理し、鍵系列を生成し、暗号文生成手段が、生成された鍵系列と平文の排他的論理和演算を行い暗号文を生成する。つまり、入力切替手段が、初期化処理において、初期鍵を拡張した拡張鍵と初期値とを鍵系列生成手段に入力し、初期化処理終了後においては、非線形部からのフィードバック値を鍵系列生成手段に入力するため、データの遅延量が、増大することを防止できるため、暗号化にかかる時間を短くすることができる。また、鍵系列生成手段が実行する非線形処理が並列に処理され、鍵系列生成手段内に設けられた非線形関数が、並べ替え処理およびフィードバック値を得るための乗算結果をデータテーブルとして保持するため、多くの処理が多重化でき、さらに、非線形関数は、テーブルを1回だけ参照すれば、処理を行うことができるため、暗号化にかかる時間を短くすることができる。
【0051】
(20)本発明は、ストリーム暗号の暗号化方法をコンピュータに実行させるためのプログラムであって、鍵拡張手段が、初期鍵を拡張して拡張鍵を生成する第1のステップと、初期化処理手段が、初期化処理において、該生成した拡張鍵と初期値とを入力し、初期化処理を行う第2のステップと、鍵系列生成手段が、前記初期化処理終了後に、非線形部からのフィードバック値を入力し、非線形処理を並列に処理するとともに、非線形関数が、並べ替え処理およびフィードバック値を得るための乗算結果をデータテーブルとして保持して処理し、鍵系列を生成する第3のステップと、暗号文生成手段が、該生成された鍵系列と平文の排他的論理和演算を行い暗号文を生成する第4のステップと、をコンピュータに実行させるためのプログラムを提案している。
【0052】
この発明によれば、鍵拡張手段が、初期鍵を拡張して拡張鍵を生成し、初期化処理手段が、初期化処理において、生成した拡張鍵と初期値とを入力し、初期化処理を行う。そして、鍵系列生成手段が、初期化処理終了後に、非線形部からのフィードバック値を入力し、非線形処理を並列に処理するとともに、非線形関数が、並べ替え処理およびフィードバック値を得るための乗算結果をデータテーブルとして保持して処理し、鍵系列を生成し、暗号文生成手段が、生成された鍵系列と平文の排他的論理和演算を行い暗号文を生成する。つまり、入力切替手段が、初期化処理において、初期鍵を拡張した拡張鍵と初期値とを鍵系列生成手段に入力し、初期化処理終了後においては、非線形部からのフィードバック値を鍵系列生成手段に入力するため、データの遅延量が、増大することを防止できるため、暗号化にかかる時間を短くすることができる。また、鍵系列生成手段が実行する非線形処理が並列に処理され、鍵系列生成手段内に設けられた非線形関数が、並べ替え処理およびフィードバック値を得るための乗算結果をデータテーブルとして保持するため、多くの処理が多重化でき、さらに、非線形関数は、テーブルを1回だけ参照すれば、処理を行うことができるため、暗号化にかかる時間を短くすることができる。
【0053】
(21)本発明は、ストリーム暗号の復号化方法をコンピュータに実行させるためのプログラムであって、鍵拡張手段が、事前に初期鍵を拡張して拡張鍵を生成する第1のステップ(例えば、
図15のステップS1201に相当)と、初期化処理手段が、初期化処理において、該生成した拡張鍵と初期値とを入力し、初期化処理を行う第2のステップ(例えば、
図15のステップS1202に相当)と、鍵系列生成手段が、前記初期化処理終了後に、非線形部からのフィードバック値を入力し、非線形処理を並列に処理するとともに、非線形関数が、並べ替え処理およびフィードバック値を得るための乗算結果をデータテーブルとして保持して処理し、鍵系列を生成する第3のステップ(例えば、
図15のステップS1203に相当)と、平文生成手段が、該生成された鍵系列と暗号文の排他的論理和演算を行い平文を生成する第4のステップ(例えば、
図15のステップS1204に相当)と、をコンピュータに実行させるためのプログラムを提案している。
【0054】
この発明によれば、鍵拡張手段が、事前に初期鍵を拡張して拡張鍵を生成し、初期化処理手段が、初期化処理において、生成した拡張鍵と初期値とを入力し、初期化処理を行う。そして、鍵系列生成手段が、初期化処理終了後に、非線形部からのフィードバック値を入力し、非線形処理を並列に処理するとともに、非線形関数が、並べ替え処理およびフィードバック値を得るための乗算結果をデータテーブルとして保持して処理し、鍵系列を生成し、暗号文生成手段が、生成された鍵系列と暗号文の排他的論理和演算を行い平文を生成する。つまり、入力切替手段が、初期化処理において、初期鍵を拡張した拡張鍵と初期値とを鍵系列生成手段に入力し、初期化処理終了後においては、非線形部からのフィードバック値を鍵系列生成手段に入力するため、データの遅延量が、増大することを防止できるため、暗号化にかかる時間を短くすることができる。また、鍵系列生成手段が実行する非線形処理が並列に処理され、鍵系列生成手段内に設けられた非線形関数が、並べ替え処理およびフィードバック値を得るための乗算結果をデータテーブルとして保持するため、多くの処理が多重化でき、さらに、非線形関数は、テーブルを1回だけ参照すれば、処理を行うことができるため、暗号化にかかる時間を短くすることができる。
【0055】
(22)本発明は、ストリーム暗号の復号化方法をコンピュータに実行させるためのプログラムであって、鍵拡張手段が、初期鍵を拡張して拡張鍵を生成する第1のステップと、初期化処理手段が、初期化処理において、該生成した拡張鍵と初期値とを入力し、初期化処理を行う第2のステップと、鍵系列生成手段が、前記初期化処理終了後に、非線形部からのフィードバック値を入力し、非線形処理を並列に処理するとともに、非線形関数が、並べ替え処理およびフィードバック値を得るための乗算結果をデータテーブルとして保持して処理し、鍵系列を生成する第3のステップと、平文生成手段が、該生成された鍵系列と暗号文の排他的論理和演算を行い平文を生成する第4のステップと、をコンピュータに実行させるためのプログラムを提案している。
【0056】
この発明によれば、鍵拡張手段が、初期鍵を拡張して拡張鍵を生成し、初期化処理手段が、初期化処理において、生成した拡張鍵と初期値とを入力し、初期化処理を行う。そして、鍵系列生成手段が、初期化処理終了後に、非線形部からのフィードバック値を入力し、非線形処理を並列に処理するとともに、非線形関数が、並べ替え処理およびフィードバック値を得るための乗算結果をデータテーブルとして保持して処理し、鍵系列を生成し、暗号文生成手段が、生成された鍵系列と暗号文の排他的論理和演算を行い平文を生成する。つまり、入力切替手段が、初期化処理において、初期鍵を拡張した拡張鍵と初期値とを鍵系列生成手段に入力し、初期化処理終了後においては、非線形部からのフィードバック値を鍵系列生成手段に入力するため、データの遅延量が、増大することを防止できるため、暗号化にかかる時間を短くすることができる。また、鍵系列生成手段が実行する非線形処理が並列に処理され、鍵系列生成手段内に設けられた非線形関数が、並べ替え処理およびフィードバック値を得るための乗算結果をデータテーブルとして保持するため、多くの処理が多重化でき、さらに、非線形関数は、テーブルを1回だけ参照すれば、処理を行うことができるため、暗号化にかかる時間を短くすることができる。