(57)【要約】【課題】クロック制御型ストリーム暗号において、テーブルの参照回数を減らして実効性能を向上させる。【解決手段】クロックビットに対応した参照テーブル番号をｑ、参照テーブルに入力するすべてのデータをＣとしたときに、ｑのあとにＣをつけた入力ビットＣ´を定義し、新たな参照テーブルＴ´と定義された入力ビットＣ´とクロックビットに対応した参照テーブルＴｑと該参照テーブルに入力するデータをＣとからなる数３に示す関係式から新たなすべての参照テーブルＴ´を生成する。次に、第１のシフトレジスタからのビット入力により、クロックビットを出力し、クロックビットに対応した参照テーブル番号をｑ、該参照テーブルに入力するデータをｃとしたときに、ｑのあとにｃをつけた入力ビットｃ´を定義する。そして、事前に作成された参照テーブルＴ´に対して、定義された入力ビットｃ´を入力する。【選択図】図３
2013127547.tif 000002
【特許請求の範囲】
【請求項１】
クロック制御型ストリーム暗号の暗号化装置であって、
クロックビットおよびすべての入力ビットの組み合わせに対応した新たな参照テーブルを事前に作成する事前処理手段と、
第１のシフトレジスタと、
該第１のシフトレジスタの出力ビットを入力にフィードバックする第１のフィードバック関数と、
前記第１のシフトレジスタと並列に設けられた第２のシフトレジスタと、
前記第１のシフトレジスタからのビット入力により、クロックビットを出力するクロック制御手段と、
前記クロックビットに対応付けられ、事前に作成されたテーブルを参照することにより制御され、前記第２のシフトレジスタの出力ビットを入力にフィードバックする第２のフィードバック関数と、
前記第１のシフトレジスタからのビット入力と前記第２のシフトレジスタからのビット入力とを演算して鍵系列を出力する演算手段と、
該鍵系列と平文との排他的論理和演算を行って暗号文を出力する排他的論理和演算手段と、
を備えたことを特徴とするクロック制御型ストリーム暗号の暗号化装置。
【請求項２】
前記事前処理手段が、
前記クロックビットに対応した参照テーブル番号をｑ、該参照テーブルに入力するすべてのデータをＣとしたときに、ｑのあとにＣをつけた入力ビットＣ´を定義する定義手段と、
新たな参照テーブルＴ´と定義された入力ビットＣ´と前記クロックビットに対応した参照テーブルＴｑと該参照テーブルに入力するデータをＣとからなる数１に示す関係式から新たなすべての参照テーブルＴ´を生成する生成手段とを備えたことを特徴とする請求項１に記載のクロック制御型ストリーム暗号の暗号化装置。
【数１】
2013127547.tif 000019
【請求項３】
クロック制御型ストリーム暗号の復号化装置であって、
クロックビットおよびすべての入力ビットの組み合わせに対応した新たな参照テーブルを事前に作成する事前処理手段と、
第１のシフトレジスタと、
該第１のシフトレジスタの出力ビットを入力にフィードバックする第１のフィードバック関数と、
前記第１のシフトレジスタと並列に設けられた第２のシフトレジスタと、
前記第１のシフトレジスタからのビット入力により、クロックビットを出力するクロック制御手段と、
前記クロックビットに対応付けられ、事前に作成されたテーブルを参照することにより制御され、前記第２のシフトレジスタの出力ビットを入力にフィードバックする第２のフィードバック関数と、
前記第１のシフトレジスタからのビット入力と前記第２のシフトレジスタからのビット入力とを演算して鍵系列を出力する演算手段と、
該鍵系列と暗号文との排他的論理和演算を行って平文を出力する排他的論理和演算手段と、
を備えたことを特徴とするクロック制御型ストリーム暗号の復号化装置。
【請求項４】
前記事前処理手段が、
前記クロックビットに対応した参照テーブル番号をｑ、該参照テーブルに入力するすべてのデータをＣとしたときに、ｑのあとにＣをつけた入力ビットＣ´を定義する定義手段と、
新たな参照テーブルＴ´と定義された入力ビットＣ´と前記クロックビットに対応した参照テーブルＴｑと該参照テーブルに入力するデータをＣとからなる数２に示す関係式から新たなすべての参照テーブルＴ´を生成する生成手段とを備えたことを特徴とする請求項３に記載のクロック制御型ストリーム暗号の復号化装置。
【数２】
2013127547.tif 000020
【請求項５】
クロック制御型ストリーム暗号の暗号化方法であって、
前記クロックビットに対応した参照テーブル番号をｑ、該参照テーブルに入力するすべてのデータをＣとしたときに、ｑのあとにＣをつけた入力ビットＣ´を定義し、新たな参照テーブルＴ´と定義された入力ビットＣ´と前記クロックビットに対応した参照テーブルＴｑと該参照テーブルに入力するデータをＣとからなる数３に示す関係式から新たなすべての参照テーブルＴ´を生成する事前処理を行う第１のステップと、
第１のシフトレジスタが初期鍵と初期ベクトルとを読み込む第２のステップと、
第１のフィードバック関数が出力ビットを前記第１のシフトレジスタの入力にフィードバックしてデータの攪拌処理を行う第３のステップと、
前記第１のシフトレジスタからのビット入力により、クロックビットを出力する第４のステップと、
前記クロックビットに対応した参照テーブル番号をｑ、該参照テーブルに入力するデータをｃとしたときに、ｑのあとにｃをつけた入力ビットｃ´を定義する第５のステップと、
前記事前に作成された参照テーブルＴ´に対して前記定義された入力ビットｃ´を入力する第６のステップと、
前記事前に作成された参照テーブルからの出力により制御される第２のフィードバック関数に接続された第２のシフトレジスタからのビット入力と前記第１のシフトレジスタからのビット入力とを演算して鍵系列を出力する第７のステップと、
該鍵系列と平文との排他的論理和演算を行って暗号文を出力する第８のステップと、
を備えたことを特徴とするクロック制御型ストリーム暗号の暗号化方法。
【数３】
2013127547.tif 000021
【請求項６】
クロック制御型ストリーム暗号の復号化方法であって、
前記クロックビットに対応した参照テーブル番号をｑ、該参照テーブルに入力するすべてのデータをＣとしたときに、ｑのあとにＣをつけた入力ビットＣ´を定義し、新たな参照テーブルＴ´と定義された入力ビットＣ´と前記クロックビットに対応した参照テーブルＴｑと該参照テーブルに入力するデータをＣとからなる数４に示す関係式から新たなすべての参照テーブルＴ´を生成する事前処理を行う第１のステップと、
第１のシフトレジスタが初期鍵と初期ベクトルとを読み込む第２のステップと、
第１のフィードバック関数が出力ビットを前記第１のシフトレジスタの入力にフィードバックしてデータの攪拌処理を行う第３のステップと、
前記第１のシフトレジスタからのビット入力により、クロックビットを出力する第４のステップと、
前記クロックビットに対応した参照テーブル番号をｑ、該参照テーブルに入力するデータをｃとしたときに、ｑのあとにｃをつけた入力ビットｃ´を定義する第５のステップと、
前記事前に作成された参照テーブルＴ´に対して、前記定義された入力ビットｃ´を入力する第６のステップと、
前記事前に作成された参照テーブルからの出力により制御される第２のフィードバック関数に接続された第２のシフトレジスタからのビット入力と前記第１のシフトレジスタからのビット入力とを演算して鍵系列を出力する第７のステップと、
該鍵系列と暗号文との排他的論理和演算を行って平文を出力する第８のステップと、
を備えたことを特徴とするクロック制御型ストリーム暗号の復号化方法。
【数４】
2013127547.tif 000022
【請求項７】
クロック制御型ストリーム暗号の暗号化方法をコンピュータに実行させるためのプログラムであって、
前記クロックビットに対応した参照テーブル番号をｑ、該参照テーブルに入力するすべてのデータをＣとしたときに、ｑのあとにＣをつけた入力ビットＣ´を定義し、新たな参照テーブルＴ´と定義された入力ビットＣ´と前記クロックビットに対応した参照テーブルＴｑと該参照テーブルに入力するデータをＣとからなる数５に示す関係式から新たなすべての参照テーブルＴ´を生成する事前処理を行う第１のステップと、
第１のシフトレジスタが初期鍵と初期ベクトルとを読み込む第２のステップと、
第１のフィードバック関数が出力ビットを前記第１のシフトレジスタの入力にフィードバックしてデータの攪拌処理を行う第３のステップと、
前記第１のシフトレジスタからのビット入力により、クロックビットを出力する第４のステップと、
前記クロックビットに対応した参照テーブル番号をｑ、該参照テーブルに入力するデータをｃとしたときに、ｑのあとにｃをつけた入力ビットｃ´を定義する第５のステップと、
前記事前に作成された参照テーブルＴ´に対して、前記定義された入力ビットｃ´を入力する第６のステップと、
前記事前に作成された参照テーブルからの出力により制御される第２のフィードバック関数に接続された第２のシフトレジスタからのビット入力と前記第１のシフトレジスタからのビット入力とを演算して鍵系列を出力する第７のステップと、
該鍵系列と平文との排他的論理和演算を行って暗号文を出力する第８のステップと、
をコンピュータに実行させるためのプログラム。
【数５】
2013127547.tif 000023
【請求項８】
クロック制御型ストリーム暗号の復号化方法をコンピュータに実行させるためのプログラムであって、
前記クロックビットに対応した参照テーブル番号をｑ、該参照テーブルに入力するすべてのデータをＣとしたときに、ｑのあとにＣをつけた入力ビットＣ´を定義し、新たな参照テーブルＴ´と定義された入力ビットＣ´と前記クロックビットに対応した参照テーブルＴｑと該参照テーブルに入力するデータをＣとからなる数６に示す関係式から新たなすべての参照テーブルＴ´を生成する事前処理を行う第１のステップと、
第１のシフトレジスタが初期鍵と初期ベクトルとを読み込む第２のステップと、
第１のフィードバック関数が出力ビットを前記第１のシフトレジスタの入力にフィードバックしてデータの攪拌処理を行う第３のステップと、
前記第１のシフトレジスタからのビット入力により、クロックビットを出力する第４のステップと、
前記クロックビットに対応した参照テーブル番号をｑ、該参照テーブルに入力するデータをｃとしたときに、ｑのあとにｃをつけた入力ビットｃ´を定義する第５のステップと、
前記事前に作成された参照テーブルＴ´に対して、前記定義された入力ビットｃ´を入力する第６のステップと、
前記事前に作成された参照テーブルからの出力により制御される第２のフィードバック関数に接続された第２のシフトレジスタからのビット入力と前記第１のシフトレジスタからのビット入力とを演算して鍵系列を出力する第７のステップと、
該鍵系列と暗号文との排他的論理和演算を行って平文を出力する第８のステップと、
をコンピュータに実行させるためのプログラム。
【数６】
2013127547.tif 000024
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、クロック制御型ストリーム暗号の暗号化装置、クロック制御型ストリーム暗号の復号化装置、クロック制御型ストリーム暗号の暗号化方法、クロック制御型ストリーム暗号の復号化方法およびプログラムに関し、特に、テーブルの参照回数を削減するクロック制御型ストリーム暗号の暗号化装置、クロック制御型ストリーム暗号の復号化装置、クロック制御型ストリーム暗号の暗号化方法、クロック制御型ストリーム暗号の復号化方法およびプログラムに関する。
【背景技術】
【０００２】
近年、インターネットの目覚しい普及により、コンピュータを利用した様々なサービスが提供されている。こうして提供されるサービスの多くは、その通信内容を秘匿化するために暗号が利用されている。ここで、暗号方式としては、１つの鍵で暗号化と復号化とを行う共通鍵暗号方式が一般的であるが、この共通鍵暗号方式は、大きくブロック暗号方式とストリーム暗号方式とに大別される。
【０００３】
ストリーム暗号方式は、ブロック暗号方式よりも高速な処理が期待できるため、例えば、映画等の大容量データを伝送するための方式として、近年、注目を浴びているが、ストリーム暗号の中でもクロックによって線形フィードバックレジスタ（ＬＦＳＲ）の動作が変わるクロック制御型ストリーム暗号では、クロックによって処理を変えるために、参照テーブルが複数ある場合がある（例えば、非特許文献１参照。）。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】Ｓ．Ｋｉｙｏｍｏｔｏ，Ｔ．Ｔａｎａｋａ，ａｎｄ  Ｋ．Ｓａｋｕｒａｉ,“  Ｋ２：  Ａ  Ｓｔｒｅａｍ  Ｃｉｐｈｅｒ  Ａｌｇｏｒｉｔｈｍ  Ｕｓｉｎｇ  Ｄｙｎａｍｉｃ  Ｆｅｅｄｂａｃｋ  Ｃｏｎｔｒｏｌ,”Ｐｒｏｃ．ｏｆ  ＳＥＣＲＹＰＴ２００７，  ｐｐ．２０４−２１３，  ２００７．
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、クロック制御型ストリーム暗号は、上述のように、複数の参照テーブルがあり、このテーブルを参照することにより、処理量を削減できるものの、テーブルの参照回数が増えるたびに、メモリへのアクセスに伴う待ち時間が発生することにより、高速性の点において問題があった。
【０００６】
そこで、本発明は、上述の課題に鑑みてなされたものであり、クロック制御型ストリーム暗号において、テーブルの参照回数を減らして実効性能を向上させるクロック制御型ストリーム暗号の暗号化装置、クロック制御型ストリーム暗号の復号化装置、クロック制御型ストリーム暗号の暗号化方法、クロック制御型ストリーム暗号の復号化方法およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明は、上記の課題を解決するために、以下の事項を提案している。なお、理解を容易にするために、本発明の実施形態に対応する符号を付して説明するが、これに限定されるものではない。
【０００８】
（１）本発明は、クロック制御型ストリーム暗号の暗号化装置であって、クロックビットおよびすべての入力ビットの組み合わせに対応した新たな参照テーブルを事前に作成する事前処理手段（例えば、図１の事前処理部１００に相当）と、第１のシフトレジスタ（例えば、図１のシフトレジスタ１２０に相当）と、該第１のシフトレジスタの出力ビットを入力にフィードバックする第１のフィードバック関数（例えば、図１のフィードバック関数１１０に相当）と、前記第１のシフトレジスタと並列に設けられた第２のシフトレジスタ（例えば、図１のシフトレジスタ１６０に相当）と、前記第１のシフトレジスタからのビット入力により、クロックビットを出力するクロック制御手段（例えば、図１のクロック制御部１３０に相当）と、前記クロックビットに対応付けられ、事前に作成されたテーブルを参照することにより制御され、前記第２のシフトレジスタの出力ビットを入力にフィードバックする第２のフィードバック関数（例えば、図１のフィードバック関数１５０に相当）と、前記第１のシフトレジスタからのビット入力と前記第２のシフトレジスタからのビット入力とを演算して鍵系列を出力する演算手段（例えば、図１の演算部１７０に相当）と、該鍵系列と平文との排他的論理和演算を行って暗号文を出力する排他的論理和演算手段（例えば、図１の排他的論理和演算器１８０に相当）と、を備えたことを特徴とするクロック制御型ストリーム暗号の暗号化装置を提案している。
【０００９】
この発明によれば、事前処理手段は、クロックビットおよびすべての入力ビットの組み合わせに対応した新たな参照テーブルを事前に作成する。第１のフィードバック関数は、第１のシフトレジスタの出力ビットを入力にフィードバックする。第２のシフトレジスタは、第１のシフトレジスタと並列に設けられており、第２のフィードバック関数は、クロックビットに対応付けられ、事前に作成されたテーブルを参照することにより制御され、第２のシフトレジスタの出力ビットを入力にフィードバックする。クロック制御手段は、第１のシフトレジスタからのビット入力により、クロックビットを出力する。演算手段は、第２のフィードバック関数からのビット入力と第１のフィードバック関数からのビット入力とを演算して鍵系列を出力する。排他的論理和演算手段は、鍵系列と平文との排他的論理和演算を行って暗号文を出力する。したがって、クロックビットに対応付けられた新たな参照テーブルを作成することにより、従来、複数回、行っていた参照テーブルへのアクセスを軽減することができる。
【００１０】
（２）本発明は、（１）のクロック制御型ストリーム暗号の暗号化装置について、前記事前処理手段が、前記クロックビットに対応した参照テーブル番号をｑ、該参照テーブルに入力するすべてのデータをＣとしたときに、ｑのあとにＣをつけた入力ビットＣ´を定義する定義手段（例えば、図２の定義部１０１に相当）と、新たな参照テーブルＴ´と定義された入力ビットＣ´と前記クロックビットに対応した参照テーブルＴｑと該参照テーブルに入力するデータをＣとからなる数１に示す関係式から新たなすべての参照テーブルＴ´を生成する生成手段（例えば、図２の生成部１０２に相当）と、を備えたことを特徴とするクロック制御型ストリーム暗号の暗号化装置を提案している。
【００１１】
この発明によれば、定義手段は、クロックビットに対応した参照テーブル番号をｑ、参照テーブルに入力するすべてのデータをＣとしたときに、ｑのあとにＣをつけた入力ビットＣ´を定義する。生成手段は、新たな参照テーブルＴ´と定義された入力ビットＣ´と前記クロックビットに対応した参照テーブルＴｑと参照テーブルに入力するデータをＣとからなる数１に示す関係式から新たなすべての参照テーブルＴ´を生成する。これにより、参照すべきテーブルを新たに作成できるため、このテーブルのみにアクセスを行えば、適正な処理が行えるとともに、テーブルの参照回数を低減することができる。
【００１２】
（３）本発明は、クロック制御型ストリーム暗号の復号化装置であって、クロックビットおよびすべての入力ビットの組み合わせに対応した新たな参照テーブルを事前に作成する事前処理手段（例えば、図４の事前処理部１００に相当）と、第１のシフトレジスタ（例えば、図４のシフトレジスタ１２０に相当）と、該第１のシフトレジスタの出力ビットを入力にフィードバックする第１のフィードバック関数（例えば、図４のフィードバック関数１１０に相当）と、前記第１のシフトレジスタと並列に設けられた第２のシフトレジスタ（例えば、図４のシフトレジスタ１６０に相当）と、前記第１のシフトレジスタからのビット入力により、クロックビットを出力するクロック制御手段（例えば、図４のクロック制御部１３０に相当）と、前記クロックビットに対応付けられ、事前に作成されたテーブルを参照することにより制御され、前記第２のシフトレジスタの出力ビットを入力にフィードバックする第２のフィードバック関数（例えば、図４のフィードバック関数１５０に相当）と、前記第１のシフトレジスタからのビット入力と前記第２のシフトレジスタからのビット入力とを演算して鍵系列を出力する演算手段（例えば、図４の演算部１７０に相当）と、該鍵系列と暗号文との排他的論理和演算を行って平文を出力する排他的論理和演算手段（例えば、図４の排他的論理和演算器１９０に相当）と、を備えたことを特徴とするクロック制御型ストリーム暗号の復号化装置を提案している。
【００１３】
この発明によれば、事前処理手段は、クロックビットおよびすべての入力ビットの組み合わせに対応した新たな参照テーブルを事前に作成する。第１のフィードバック関数は、第１のシフトレジスタの出力ビットを入力にフィードバックする。第２のシフトレジスタは、第１のシフトレジスタと並列に設けられており、第２のフィードバック関数は、クロックビットに対応付けられ、事前に作成されたテーブルを参照することにより制御され、第２のシフトレジスタの出力ビットを入力にフィードバックする。クロック制御手段は、第１のシフトレジスタからのビット入力により、クロックビットを出力する。演算手段は、第２のフィードバック関数からのビット入力と第１のフィードバック関数からのビット入力とを演算して鍵系列を出力する。排他的論理和演算手段は、鍵系列と暗号文との排他的論理和演算を行って平文を出力する。したがって、クロックビットに対応付けられた新たな参照テーブルを作成することにより、従来、複数回、行っていた参照テーブルへのアクセスを軽減することができる。
【００１４】
（４）本発明は、（３）のクロック制御型ストリーム暗号の復号化装置について、前記事前処理手段が、前記クロックビットに対応した参照テーブル番号をｑ、該参照テーブルに入力するすべてのデータをＣとしたときに、ｑのあとにＣをつけた入力ビットＣ´を定義する定義手段（例えば、図２の定義部１０１に相当）と、新たな参照テーブルＴ´と定義された入力ビットＣ´と前記クロックビットに対応した参照テーブルＴｑと該参照テーブルに入力するデータをＣとからなる数２に示す関係式から新たなすべての参照テーブルＴ´を生成する生成手段（例えば、図２の生成部１０２に相当）と、を備えたことを特徴とするクロック制御型ストリーム暗号の復号化装置を提案している。
【００１５】
この発明によれば、定義手段は、クロックビットに対応した参照テーブル番号をｑ、参照テーブルに入力するすべてのデータをＣとしたときに、ｑのあとにＣをつけた入力ビットＣ´を定義する。生成手段は、新たな参照テーブルＴ´と定義された入力ビットＣ´と前記クロックビットに対応した参照テーブルＴｑと参照テーブルに入力するデータをＣとからなる数１に示す関係式から新たなすべての参照テーブルＴ´を生成する。これにより、参照すべきテーブルを新たに作成できるため、このテーブルのみにアクセスを行えば、適正な処理が行えるとともに、テーブルの参照回数を低減することができる。
【００１６】
（５）本発明は、クロック制御型ストリーム暗号の暗号化方法であって、前記クロックビットに対応した参照テーブル番号をｑ、該参照テーブルに入力するすべてのデータをＣとしたときに、ｑのあとにＣをつけた入力ビットＣ´を定義し、新たな参照テーブルＴ´と定義された入力ビットＣ´と前記クロックビットに対応した参照テーブルＴｑと該参照テーブルに入力するデータをＣとからなる数３に示す関係式から新たなすべての参照テーブルＴ´を生成する事前処理を行う第１のステップ（例えば、図３のステップＳ１０１に相当）と、第１のシフトレジスタが初期鍵と初期ベクトルとを読み込む第２のステップ（例えば、図３のステップＳ１０２に相当）と、第１のフィードバック関数が出力ビットを前記第１のシフトレジスタの入力にフィードバックしてデータの攪拌処理を行う第３のステップ（例えば、図３のステップＳ１０３に相当）と、前記第１のシフトレジスタからのビット入力により、クロックビットを出力する第４のステップ（例えば、図３のステップＳ１０４に相当）と、前記クロックビットに対応した参照テーブル番号をｑ、該参照テーブルに入力するデータをｃとしたときに、ｑのあとにｃをつけた入力ビットｃ´を定義する第５のステップ（例えば、図３のステップＳ１０５に相当）と、前記事前に作成された参照テーブルＴ´に対して前記定義された入力ビットｃ´を入力する第６のステップ（例えば、図３のステップＳ１０６に相当）と、前記事前に作成された参照テーブルからの出力により制御される第２のフィードバック関数に接続された第２のシフトレジスタからのビット入力と前記第１のシフトレジスタからのビット入力とを演算して鍵系列を出力する第７のステップ（例えば、図３のステップＳ１０７に相当）と、該鍵系列と平文との排他的論理和演算を行って暗号文を出力する第８のステップ（例えば、図３のステップＳ１０８に相当）と、を備えたことを特徴とするクロック制御型ストリーム暗号の暗号化方法を提案している。
【００１７】
この発明によれば、まず、事前処理によって、クロックビットに対応した参照テーブル番号をｑ、参照テーブルに入力するすべてのデータをＣとしたときに、ｑのあとにＣをつけた入力ビットＣ´を定義し、新たな参照テーブルＴ´と定義された入力ビットＣ´とクロックビットに対応した参照テーブルＴｑと該参照テーブルに入力するデータをＣとからなる数３に示す関係式から新たなすべての参照テーブルＴ´を生成する。次に、第１のシフトレジスタが初期鍵と初期ベクトルとを読み込み、第１のフィードバック関数が出力ビットを第１のシフトレジスタの入力にフィードバックしてデータの攪拌処理を行う。さらに、第１のシフトレジスタからのビット入力により、クロックビットを出力し、クロックビットに対応した参照テーブル番号をｑ、該参照テーブルに入力するデータをｃとしたときに、ｑのあとにｃをつけた入力ビットｃ´を定義する。そして、事前に作成された参照テーブルＴ´に対して定義された入力ビットｃ´を入力して、事前に作成された参照テーブルからの出力により制御される第２のフィードバック関数に接続された第２のシフトレジスタからのビット入力と第１のシフトレジスタからのビット入力とを演算して鍵系列を出力し、鍵系列と平文との排他的論理和演算を行って暗号文を出力する。したがって、クロックビットに対応付けられた新たな参照テーブルを作成することにより、従来、複数回、行っていた参照テーブルへのアクセスを軽減することができる。
【００１８】
（６）本発明は、クロック制御型ストリーム暗号の復号化方法であって、前記クロックビットに対応した参照テーブル番号をｑ、該参照テーブルに入力するすべてのデータをＣとしたときに、ｑのあとにＣをつけた入力ビットＣ´を定義し、新たな参照テーブルＴ´と定義された入力ビットＣ´と前記クロックビットに対応した参照テーブルＴｑと該参照テーブルに入力するデータをＣとからなる数３に示す関係式から新たなすべての参照テーブルＴ´を生成する事前処理を行う第１のステップ（例えば、図５のステップＳ２０１に相当）と、第１のシフトレジスタが初期鍵と初期ベクトルとを読み込む第２のステップ（例えば、図５のステップＳ２０２に相当）と、第１のフィードバック関数が出力ビットを前記第１のシフトレジスタの入力にフィードバックしてデータの攪拌処理を行う第３のステップ（例えば、図５のステップＳ２０３に相当）と、前記第１のシフトレジスタからのビット入力により、クロックビットを出力する第４のステップ（例えば、図５のステップＳ２０４に相当）と、前記クロックビットに対応した参照テーブル番号をｑ、該参照テーブルに入力するデータをｃとしたときに、ｑのあとにｃをつけた入力ビットｃ´を定義する第５のステップ（例えば、図５のステップＳ２０５に相当）と、前記事前に作成された参照テーブルＴ´に対して、前記定義された入力ビットｃ´を入力する第６のステップ（例えば、図５のステップＳ２０６に相当）と、前記事前に作成された参照テーブルからの出力により制御される第２のフィードバック関数に接続された第２のシフトレジスタからのビット入力と前記第１のシフトレジスタからのビット入力とを演算して鍵系列を出力する第７のステップ（例えば、図５のステップＳ２０７に相当）と、該鍵系列と暗号文との排他的論理和演算を行って平文を出力する第８のステップ（例えば、図５のステップＳ２０８に相当）と、を備えたことを特徴とするクロック制御型ストリーム暗号の復号化方法を提案している。
【００１９】
この発明によれば、まず、事前処理によって、クロックビットに対応した参照テーブル番号をｑ、参照テーブルに入力するすべてのデータをＣとしたときに、ｑのあとにＣをつけた入力ビットＣ´を定義し、新たな参照テーブルＴ´と定義された入力ビットＣ´とクロックビットに対応した参照テーブルＴｑと該参照テーブルに入力するデータをＣとからなる数３に示す関係式から新たなすべての参照テーブルＴ´を生成する。次に、第１のシフトレジスタが初期鍵と初期ベクトルとを読み込み、第１のフィードバック関数が出力ビットを第１のシフトレジスタの入力にフィードバックしてデータの攪拌処理を行う。さらに、第１のシフトレジスタからのビット入力により、クロックビットを出力し、クロックビットに対応した参照テーブル番号をｑ、該参照テーブルに入力するデータをｃとしたときに、ｑのあとにｃをつけた入力ビットｃ´を定義する。そして、事前に作成された参照テーブルＴ´に対して、定義された入力ビットｃ´を入力して、事前に作成された参照テーブルからの出力により制御される第２のフィードバック関数に接続された第２のシフトレジスタからのビット入力と第１のシフトレジスタからのビット入力とを演算して鍵系列を出力し、鍵系列と暗号文との排他的論理和演算を行って平文を出力する。したがって、クロックビットに対応付けられた新たな参照テーブルを作成することにより、従来、複数回、行っていた参照テーブルへのアクセスを軽減することができる。
【００２０】
（７）本発明は、クロック制御型ストリーム暗号の暗号化方法をコンピュータに実行させるためのプログラムであって、前記クロックビットに対応した参照テーブル番号をｑ、該参照テーブルに入力するすべてのデータをＣとしたときに、ｑのあとにＣをつけた入力ビットＣ´を定義し、新たな参照テーブルＴ´と定義された入力ビットＣ´と前記クロックビットに対応した参照テーブルＴｑと該参照テーブルに入力するデータをＣとからなる数３に示す関係式から新たなすべての参照テーブルＴ´を生成する事前処理を行う第１のステップ（例えば、図３のステップＳ１０１に相当）と、第１のシフトレジスタが初期鍵と初期ベクトルとを読み込む第２のステップ（例えば、図３のステップＳ１０２に相当）と、第１のフィードバック関数が出力ビットを前記第１のシフトレジスタの入力にフィードバックしてデータの攪拌処理を行う第３のステップ（例えば、図３のステップＳ１０３に相当）と、前記第１のシフトレジスタからのビット入力により、クロックビットを出力する第４のステップ（例えば、図３のステップＳ１０４に相当）と、前記クロックビットに対応した参照テーブル番号をｑ、該参照テーブルに入力するデータをｃとしたときに、ｑのあとにｃをつけた入力ビットｃ´を定義する第５のステップ（例えば、図３のステップＳ１０５に相当）と、前記事前に作成された参照テーブルＴ´に対して、前記定義された入力ビットｃ´を入力する第６のステップ（例えば、図３のステップＳ１０６に相当）と、前記事前に作成された参照テーブルからの出力により制御される第２のフィードバック関数に接続された第２のシフトレジスタからのビット入力と前記第１のシフトレジスタからのビット入力とを演算して鍵系列を出力する第７のステップ（例えば、図３のステップＳ１０７に相当）と、該鍵系列と平文との排他的論理和演算を行って暗号文を出力する第８のステップ（例えば、図３のステップＳ１０８に相当）と、をコンピュータに実行させるためのプログラムを提案している。
【００２１】
この発明によれば、まず、事前処理によって、クロックビットに対応した参照テーブル番号をｑ、参照テーブルに入力するすべてのデータをＣとしたときに、ｑのあとにＣをつけた入力ビットＣ´を定義し、新たな参照テーブルＴ´と定義された入力ビットＣ´とクロックビットに対応した参照テーブルＴｑと該参照テーブルに入力するデータをＣとからなる数３に示す関係式から新たなすべての参照テーブルＴ´を生成する。次に、第１のシフトレジスタが初期鍵と初期ベクトルとを読み込み、第１のフィードバック関数が出力ビットを第１のシフトレジスタの入力にフィードバックしてデータの攪拌処理を行う。さらに、第１のシフトレジスタからのビット入力により、クロックビットを出力し、クロックビットに対応した参照テーブル番号をｑ、該参照テーブルに入力するデータをｃとしたときに、ｑのあとにｃをつけた入力ビットｃ´を定義する。そして、事前に作成された参照テーブルＴ´に対して、定義された入力ビットｃ´を入力して、事前に作成された参照テーブルからの出力により制御される第２のフィードバック関数に接続された第２のシフトレジスタからのビット入力と第１のシフトレジスタからのビット入力とを演算して鍵系列を出力し、鍵系列と平文との排他的論理和演算を行って暗号文を出力する。したがって、クロックビットに対応付けられた新たな参照テーブルを作成することにより、従来、複数回、行っていた参照テーブルへのアクセスを軽減することができる。
【００２２】
（８）本発明は、クロック制御型ストリーム暗号の復号化方法をコンピュータに実行させるためのプログラムであって、前記クロックビットに対応した参照テーブル番号をｑ、該参照テーブルに入力するすべてのデータをＣとしたときに、ｑのあとにＣをつけた入力ビットＣ´を定義し、新たな参照テーブルＴ´と定義された入力ビットＣ´と前記クロックビットに対応した参照テーブルＴｑと該参照テーブルに入力するデータをＣとからなる数３に示す関係式から新たなすべての参照テーブルＴ´を生成する事前処理を行う第１のステップ（例えば、図５のステップＳ２０１に相当）と、第１のシフトレジスタが初期鍵と初期ベクトルとを読み込む第２のステップ（例えば、図５のステップＳ２０２に相当）と、第１のフィードバック関数が出力ビットを前記第１のシフトレジスタの入力にフィードバックしてデータの攪拌処理を行う第３のステップ（例えば、図５のステップＳ２０３に相当）と、前記第１のシフトレジスタからのビット入力により、クロックビットを出力する第４のステップ（例えば、図５のステップＳ２０４に相当）と、前記クロックビットに対応した参照テーブル番号をｑ、該参照テーブルに入力するデータをｃとしたときに、ｑのあとにｃをつけた入力ビットｃ´を定義する第５のステップ（例えば、図５のステップＳ２０５に相当）と、前記事前に作成された参照テーブルＴ´に対して前記定義された入力ビットｃ´を入力する第６のステップ（例えば、図５のステップＳ２０６に相当）と、前記事前に作成された参照テーブルからの出力により制御される第２のフィードバック関数に接続された第２のシフトレジスタからのビット入力と前記第１のシフトレジスタからのビット入力とを演算して鍵系列を出力する第７のステップ（例えば、図５のステップＳ２０７に相当）と、該鍵系列と暗号文との排他的論理和演算を行って平文を出力する第８のステップ（例えば、図５のステップＳ２０８に相当）と、をコンピュータに実行させるためのプログラムを提案している。
【００２３】
まず、事前処理によって、クロックビットに対応した参照テーブル番号をｑ、参照テーブルに入力するすべてのデータをＣとしたときに、ｑのあとにＣをつけた入力ビットＣ´を定義し、新たな参照テーブルＴ´と定義された入力ビットＣ´とクロックビットに対応した参照テーブルＴｑと該参照テーブルに入力するデータをＣとからなる数３に示す関係式から新たなすべての参照テーブルＴ´を生成する。次に、第１のシフトレジスタが初期鍵と初期ベクトルとを読み込み、第１のフィードバック関数が出力ビットを第１のシフトレジスタの入力にフィードバックしてデータの攪拌処理を行う。さらに、第１のシフトレジスタからのビット入力により、クロックビットを出力し、クロックビットに対応した参照テーブル番号をｑ、該参照テーブルに入力するデータをｃとしたときに、ｑのあとにｃをつけた入力ビットｃ´を定義する。そして、事前に作成された参照テーブルＴ´に対して、定義された入力ビットｃ´を入力して、事前に作成された参照テーブルからの出力により制御される第２のフィードバック関数に接続された第２のシフトレジスタからのビット入力と第１のシフトレジスタからのビット入力とを演算して鍵系列を出力し、鍵系列と暗号文との排他的論理和演算を行って平文を出力する。したがって、クロックビットに対応付けられた新たな参照テーブルを作成することにより、従来、複数回、行っていた参照テーブルへのアクセスを軽減することができる。
【発明の効果】
【００２４】
本発明によれば、テーブルを参照する回数が大幅に削減されるため、暗号あるいは復号の実行時間を大幅に短縮することが出来るという効果がある。特に、メモリの速度が遅いデバイスに対しては大きな効果が期待できる。
【図面の簡単な説明】
【００２５】
【図１】第１の実施形態に係る暗号化装置の構成を示す図である。
【図２】第１の実施形態に係るテーブル作成部の構成を示す図である。
【図３】第１の実施形態に係る暗号化装置の処理を示すフロー図である。
【図４】第２の実施形態に係る復号化装置の構成を示す図である。
【図５】第２の実施形態に係る復号化装置の処理を示すフロー図である。
【図６】実施例に係る暗号化装置の構成を示す図である。
【発明を実施するための形態】
【００２６】
以下、本発明の実施形態について、図面を用いて、詳細に説明する。
なお、本実施形態における構成要素は適宜、既存の構成要素等との置き換えが可能であり、また、他の既存の構成要素との組合せを含む様々なバリエーションが可能である。したがって、本実施形態の記載をもって、特許請求の範囲に記載された発明の内容を限定するものではない。
【００２７】
＜第１の実施形態＞
図１から図３を用いて、本発明の第１の実施形態について説明する。
【００２８】
＜暗号化装置の構成＞
図１を用いて、本実施形態に係る暗号化装置の構成について説明する。
【００２９】
本実施形態に係る暗号化装置は、図１に示すように、事前処理部１００と、フィードバック関数１１０と、シフトレジスタ１２０と、クロック制御部１３０と、テーブル格納部１４０と、フィードバック関数１５０と、シフトレジスタ１６０と、演算部１７０と、排他的論理和演算器１８０とから構成されており、演算部１７０は非線形関数１７１と、排他的論理和演算器１７２とを備えている。なお、フィードバック関数１１０とシフトレジスタ１２０は、非線形フィードバックシフトレジスタで構成されてもよく、フィードバック関数１５０とシフトレジスタ１６０とは、動的線形フィードバックシフトレジスタで構成されてもよい。また、図１では、フィードバック関数１１０とシフトレジスタ１２０、フィードバック関数１５０とシフトレジスタ１６０とがそれぞれ１個ずつの構成になっているが、これに限らず、対をなせば、複数であってもよい。
【００３０】
事前処理部１００は、クロックビットおよびすべての入力ビットの組み合わせに対応した新たな参照テーブルを事前に作成し、これをテーブル格納部１４０に格納しておく。
【００３１】
フィードバック関数１１０は、シフトレジスタ１２０の出力ビットを入力にフィードバックする。なお、フィードバック関数１１０は、非線形関数を用いてもよい。シフトレジスタ１２０は、演算部１７０及びクロック制御部１３０に必要なビットを出力する。
【００３２】
クロック制御部１３０は、シフトレジスタ１２０からの入力ビットにより、クロックビットを出力する。テーブル格納部１４０は、事前処理部１００において生成されたすべての参照テーブルをクロックビットに対応付けて格納する。
【００３３】
フィードバック関数１５０は、クロックビットに対応付けられ、事前処理部１００において作成されたテーブルを参照することにより制御され、シフトレジスタ１６０の出力ビットを入力にフィードバックする。シフトレジスタ１６０は、演算部１７０に必要なビットを出力する。
【００３４】
演算部１７０は、シフトレジスタ１６０からのビット入力とシフトレジスタ１２０からのビット入力とを演算して鍵系列を出力する。排他的論理和演算器１８０は、鍵系列と平文との排他的論理和演算を行って暗号文を出力する。
【００３５】
＜事前処理部の構成＞
図２を用いて、事前処理部の構成について説明する。
【００３６】
本実施形態に係る事前処理部は、定義部１０１と、生成部１０２とから構成されている。
定義部１０１は、クロックビットに対応した参照テーブル番号をｑ、参照テーブルに入力するすべてのデータをＣとしたときに、ｑのあとにＣをつけた入力ビットＣ´を定義する。生成部１０２は、新たな参照テーブルＴ´と定義された入力ビットＣ´とクロックビットに対応した参照テーブルＴｑと参照テーブルに入力するデータをＣとからなる数１に示す関係式から新たなすべての参照テーブルＴ´を生成する。なお、これらの詳細については、後述する実施例の中で、説明する。
【００３７】
【数１】
2013127547.tif 000003
【００３８】
＜暗号化装置の処理＞
図３を用いて、本実施形態に係る暗号化装置の処理について説明する。
【００３９】
まず、クロックビットに対応した参照テーブル番号をｑ、参照テーブルに入力するすべてのデータをＣとしたときに、ｑのあとにＣをつけた入力ビットＣ´を定義し、新たな参照テーブルＴ´と定義された入力ビットＣ´とクロックビットに対応した参照テーブルＴｑと該参照テーブルに入力するデータをＣとからなる数２に示す関係式から新たなすべての参照テーブルＴ´を生成する事前処理を行う（ステップＳ１０１）。
【００４０】
次いで、シフトレジスタ１２０が初期鍵と初期ベクトルとを読み込み（ステップＳ１０２）、フィードバック関数１１０が出力ビットをシフトレジスタ１２０の入力にフィードバックしてデータの攪拌処理を行う（ステップＳ１０３）。
【００４１】
シフトレジスタ１２０からのビット入力により、クロックビットを出力し（ステップＳ１０４）、クロックビットに対応した参照テーブル番号をｑ、参照テーブルに入力するデータをｃとしたときに、ｑのあとにｃをつけた入力ビットｃ´を定義する（ステップＳ１０５）。
【００４２】
そして、事前に作成された参照テーブルＴ´に対して、定義された入力ビットｃ´を入力し（ステップＳ１０６）、事前に作成された参照テーブルからの出力により制御される第２のフィードバック関数に接続された第２のシフトレジスタからのビット入力と第１のシフトレジスタからのビット入力とを演算して鍵系列を出力し（ステップＳ１０７）、この鍵系列と平文との排他的論理和演算を行って暗号文を出力する（ステップＳ１０８）。
【００４３】
【数２】
2013127547.tif 000004
【００４４】
以上、説明したように、本実施形態によれば、クロックビットに対応付けられた新たな参照テーブルを作成することにより、従来、複数回、行っていた参照テーブルへのアクセスを軽減することができる。
【００４５】
＜第２の実施形態＞
図４および図５を用いて、本発明の第２の実施形態について説明する。
【００４６】
＜復号化装置の構成＞
図４を用いて、本実施形態に係る復号化装置の構成について説明する。
【００４７】
本実施形態に係る復号化装置は、図４に示すように、事前処理部１００と、フィードバック関数１１０と、シフトレジスタ１２０と、クロック制御部１３０と、テーブル格納部１４０と、フィードバック関数１５０と、シフトレジスタ１６０と、演算部１７０と、排他的論理和演算器１９０とから構成されており、演算部１７０は非線形関数１７１と、排他的論理和演算器１７２とを備えている。なお、フィードバック関数１１０とシフトレジスタ１２０は、非線形フィードバックシフトレジスタで構成されてもよく、フィードバック関数１５０とシフトレジスタ１６０とは、動的線形フィードバックシフトレジスタで構成されてもよい。また、図１では、フィードバック関数１１０とシフトレジスタ１２０、フィードバック関数１５０とシフトレジスタ１６０とがそれぞれ１個ずつの構成になっているが、これに限らず、対をなせば、複数であってもよい。
【００４８】
事前処理部１００は、クロックビットおよびすべての入力ビットの組み合わせに対応した新たな参照テーブルを事前に作成し、これをテーブル格納部１４０に格納しておく。
【００４９】
フィードバック関数１１０は、シフトレジスタ１２０の出力ビットを入力にフィードバックする。なお、フィードバック関数１１０は、非線形関数を用いてもよい。シフトレジスタ１２０は、演算部１７０及びクロック制御部１３０に必要なビットを出力する。
【００５０】
クロック制御部１３０は、シフトレジスタ１２０からの入力ビットにより、クロックビットを出力する。テーブル格納部１４０は、事前処理部１００において生成されたすべての参照テーブルをクロックビットに対応付けて格納する。
【００５１】
フィードバック関数１５０は、クロックビットに対応付けられ、事前処理部１００において作成されたテーブルを参照することにより制御され、シフトレジスタ１６０の出力ビットを入力にフィードバックする。シフトレジスタ１６０は、演算部１７０に必要なビットを出力する。
【００５２】
演算部１７０は、シフトレジスタ１６０からのビット入力とシフトレジスタ１２０からのビット入力とを演算して鍵系列を出力する。排他的論理和演算器１９０は、鍵系列と暗号文との排他的論理和演算を行って平文を出力する。
【００５３】
＜復号化装置の処理＞
図５を用いて、本実施形態に係る復号化装置の処理について説明する。
【００５４】
まず、クロックビットに対応した参照テーブル番号をｑ、参照テーブルに入力するすべてのデータをＣとしたときに、ｑのあとにＣをつけた入力ビットＣ´を定義し、新たな参照テーブルＴ´と定義された入力ビットＣ´とクロックビットに対応した参照テーブルＴｑと該参照テーブルに入力するデータをＣとからなる数３に示す関係式から新たなすべての参照テーブルＴ´を生成する事前処理を行う（ステップＳ２０１）。
【００５５】
次いで、シフトレジスタ１２０が初期鍵と初期ベクトルとを読み込み（ステップＳ２０２）、フィードバック関数１１０が出力ビットをシフトレジスタ１２０の入力にフィードバックしてデータの攪拌処理を行う（ステップＳ２０３）。
【００５６】
シフトレジスタ１２０からのビット入力により、クロックビットを出力し（ステップＳ２０４）、クロックビットに対応した参照テーブル番号をｑ、参照テーブルに入力するデータをｃとしたときに、ｑのあとにｃをつけた入力ビットｃ´を定義する（ステップＳ２０５）。
【００５７】
そして、事前に作成された参照テーブルＴ´に対して、定義された入力ビットｃ´を入力し（ステップＳ２０６）、事前に作成された参照テーブルからの出力により制御される第２のフィードバック関数に接続された第２のシフトレジスタからのビット入力と第１のシフトレジスタからのビット入力とを演算して鍵系列を出力し（ステップＳ２０７）、この鍵系列と暗号文との排他的論理和演算を行って平文を出力する（ステップＳ２０８）。
【００５８】
【数３】
2013127547.tif 000005
【００５９】
以上、説明したように、本実施形態によれば、クロックビットに対応付けられた新たな参照テーブルを作成することにより、従来、複数回、行っていた参照テーブルへのアクセスを軽減することができる。
【００６０】
＜本発明の実施例＞
以下、本発明の実施例について説明する。なお、本実施例では、図６に示すクロック制御型ストリーム暗号を例示して説明を行う。
【００６１】
図６のクロック制御型ストリーム暗号では、従来、フィードバック関数３１０とシフトレジスタ３２０とからなる、例えば、線形フィードバックシフトレジスタの処理として、Ｆ２８〔ｘ〕の元ω（次数４）とｃｌ∈｛０、１}を用いて、数４を計算する必要がある。ここで、α１、α２をそれぞれ数５、数６とし、γ、σは、ある原子多項式の根を表す。
【００６２】
【数４】
2013127547.tif 000006
【００６３】
【数５】
2013127547.tif 000007
【００６４】
【数６】
2013127547.tif 000008
【００６５】
ここで、ωは、数７のように、一意に表され、このとき、α１ω１は、数８となる。
【００６６】
【数７】
2013127547.tif 000009
【００６７】
【数８】
2013127547.tif 000010
【００６８】
同様に、α2ω2は、数９となる。
【数９】
2013127547.tif 000011
【００６９】
ここで、Ｆ２８を４次拡大した体Ｙ∈Ｆ２32を（Ｙ3、Ｙ2、Ｙ1、Ｙ0）、Ｙｉ∈Ｆ２８と表す。ここで、テーブルＭｕｌα１〔ｃ〕（＝Ｔ1）、Ｍｕｌα2〔ｃ〕（＝Ｔ2）を数１０のように、定義する。
【００７０】
【数１０】
2013127547.tif 000012
【００７１】
つまり、このテーブルは、入力ｃとして８ビットすべての値を計算し、３２ビットの値を出力するテーブルである。このテーブルを用いて、３２ビットの値ωに対して、数１１を求め、その結果を用いて、数１２を求める。ここで、＜＜は左シフト、＞＞は右シフトを示す。そのため、図６に示すクロック制御型ストリーム暗号では、テーブルが２つ必要となり、テーブルの参照も２回必要となる。
【００７２】
【数１１】
2013127547.tif 000013
【００７３】
【数１２】
2013127547.tif 000014
【００７４】
一方で、本実施例では、新たなテーブルＭｕｌｎｅｗ〔ｃ´〕（＝Ｔ´）を構成する。ここで、ｃ´は、新たなテーブルＭｕｌｎｅｗ〔ｃ´〕（＝Ｔ´）に入力する入力ビットである。この例では、ｃ´は、９ビットであり、下位の８ビットが所望の参照テーブルの入力ビットであって、最上位のｃｌは、所望の参照テーブルを示すデータであり、本実施例の場合、参照テーブルが２つであるため、「０」または「１」の値となる。つまり、ｃ´は、数１３のように表される。
【００７５】
【数１３】
2013127547.tif 000015
【００７６】
また、Ｍｕｌｎｅｗ〔ｃ´〕（＝Ｔ´）は、最上位のｃｌが０の時は、数１４のようになり、１の時は、数１５のようになる。
【００７７】
【数１４】
2013127547.tif 000016
【００７８】
【数１５】
2013127547.tif 000017
【００７９】
このテーブルを用いると、数４は、数１６を入力として、テーブルＭｕｌα2〔ｃ´〕（＝Ｔ´）を一度参照するだけで、計算できるようになる。
【００８０】
【数１６】
2013127547.tif 000018
【００８１】
なお、暗号化装置および復号化装置の処理をコンピュータ読み取り可能な記録媒体に記録し、この記録媒体に記録されたプログラムを暗号化装置および復号化装置に読み込ませ、実行することによって本発明の暗号化装置および復号化装置を実現することができる。ここでいうコンピュータシステムとは、ＯＳや周辺装置等のハードウェアを含む。
【００８２】
また、「コンピュータシステム」は、ＷＷＷ（Ｗｏｒｌｄ  Ｗｉｄｅ  Ｗｅｂ）システムを利用している場合であれば、ホームページ提供環境（あるいは表示環境）も含むものとする。また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されても良い。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク（通信網）や電話回線等の通信回線（通信線）のように情報を伝送する機能を有する媒体のことをいう。
【００８３】
また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組合せで実現できるもの、いわゆる差分ファイル（差分プログラム）であっても良い。
【００８４】
以上、この発明の実施形態につき、図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【符号の説明】
【００８５】
１１０；フィードバック関数
１２０；シフトレジスタ
１３０；クロック制御部
１４０；テーブル作成部
１５０；フィードバック関数
１６０；シフトレジスタ
１７０；演算部
１７１；非線形関数
１７２；排他的論理和演算器
１８０；排他的論理和演算器
１９０；排他的論理和演算器
【図１】
2013127547.tif 000025
【図２】
2013127547.tif 000026
【図３】
2013127547.tif 000027
【図４】
2013127547.tif 000028
【図５】
2013127547.tif 000029
【図６】
2013127547.tif 000030