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

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

Info

Publication number
JP5822757B2
JP5822757B2 JP2012041428A JP2012041428A JP5822757B2 JP 5822757 B2 JP5822757 B2 JP 5822757B2 JP 2012041428 A JP2012041428 A JP 2012041428A JP 2012041428 A JP2012041428 A JP 2012041428A JP 5822757 B2 JP5822757 B2 JP 5822757B2
Authority
JP
Japan
Prior art keywords
bit string
linear
generated
calculation table
exclusive
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2012041428A
Other languages
English (en)
Other versions
JP2013179422A (ja
Inventor
清本 晋作
晋作 清本
和英 福島
和英 福島
三宅 優
優 三宅
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
KDDI Corp
Original Assignee
KDDI Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by KDDI Corp filed Critical KDDI Corp
Priority to JP2012041428A priority Critical patent/JP5822757B2/ja
Publication of JP2013179422A publication Critical patent/JP2013179422A/ja
Application granted granted Critical
Publication of JP5822757B2 publication Critical patent/JP5822757B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、実装規模を抑えつつ、演算処理の高速化を図るストリーム暗号の暗号化装置、ストリーム暗号の復号化装置、ストリーム暗号の暗号化方法、ストリーム暗号の復号化方法およびプログラムに関する。
近年、コンピュータを利用した様々なサービスが提供されている。多くのサービスに置いては、通信の秘匿を実現するため、暗号が利用される。暗号方式として最も一般的なものは、1つの鍵で暗号化・復号化を行う共通鍵暗号方式であるが、共通鍵暗号方式は、大きくブロック暗号方式とストリーム暗号方式の2つに分けられる。前者は、最も一般的に用いられている方式であるが、後者の方が処理速度に優れるため、近年注目を集めつつある。
ストリーム暗号が注目を浴びる要因としては、公開鍵暗号方式に基づく秘密共有方式は計算量が多く、鍵同期を取るまでに時間がかかるという問題があり、また、上記公開鍵暗号方式に基づく秘密共有方式を用いると、ハードウェア規模が大きくなるといった問題があるためである。
一方、ストリーム暗号は、初期鍵を初期化処理により攪拌して、初期の内部状態を生成し、生成した状態を逐次更新しながら、暗号化の各系列を生成するものであり、公開鍵暗号方式に基づく秘密共有方式よりも、実装規模が小さく、演算速度が速いという特色があるが、非線形処理を用いて、更なる高速化を行う技術が知られている(例えば、特許文献1参照。)。
特開2000−209195号公報
しかしながら、特許文献1に記載の技術では、未だに、初期化処理および非線形処理の処理負荷が大きいという問題がある。この問題を回避するために、諸々の演算を事前計算しておきテーブルとして持つという手法があるが、このテーブルによって実装規模(プログラムサイズ等)が大きくなってしまうという問題点があった。
そこで、本発明は、上述の課題に鑑みてなされたものであり、演算に使用するテーブルを動的に生成するストリーム暗号の暗号化装置、ストリーム暗号の復号化装置、ストリーム暗号の暗号化方法、ストリーム暗号の復号化方法およびプログラムを提供することを目的とする。
本発明は、上記の課題を解決するために、以下の事項を提案している。なお、理解を容易にするために、本発明の実施形態に対応する符号を付して説明するが、これに限定されるものではない。
(1)本発明は、初期鍵と初期値とを入力して初期化処理を行う初期化処理手段(例えば、図1の初期化処理部100に相当)と、該初期化処理手段から入力したビット列から鍵系列を生成する非線形手段(例えば、図1の非線形処理部200に相当)と、該生成された鍵系列と平文との排他的論理和演算を行い暗号文を生成する排他的論理和演算器(例えば、図1の排他的論理和演算器300に相当)と、を備え、前記初期化処理手段が、フィードバックシフトレジスタとフィードバック演算器とから構成され、前記フィードバック演算器の入力ビット列と出力ビット列とを対応づけ、前記出力ビット列が異なるビット列となるよう長周期化する第1の演算テーブルを動的に生成する第1の演算テーブル生成手段(例えば、図1の第1の演算テーブル生成部400に相当)を備え、該生成した前記第1の演算テーブルを用いて、初期化処理を行うことを特徴とするストリーム暗号の暗号化装置を提案している。
本発明によれば、初期化処理手段が、フィードバックシフトレジスタとフィードバック演算器とから構成され、第1の演算テーブル生成手段が、フィードバック演算器の入力ビット列と出力ビット列とを対応づけ、出力ビット列が異なるビット列となるよう長周期化する第1の演算テーブルを動的に生成する。したがって、第1の演算テーブルを動的に生成するため、実装規模の拡大を抑制することができる。また、第1の演算テーブルを用いて、初期化処理の演算処理するため、演算速度を高速化することができる。
(2)本発明は、(1)のストリーム暗号の暗号化装置について、前記非線形手段内の線形置換関数器が、複数の非線形関数器と線形変換手段とから構成され、前記非線形関数器ごとに、前記非線形関数器の入力ビット列と前記線形変換手段の出力ビット列とを対応づけた第2の演算テーブルを動的に生成する第2の演算テーブル生成手段(例えば、図4の第2の演算テーブル生成部500に相当)を備え、該生成した前記第2の演算テーブルを用いて、鍵系列を生成することを特徴とするストリーム暗号の暗号化装置を提案している。
本発明によれば、非線形手段内の線形置換関数器が、複数の非線形関数器と線形変換手段とから構成され、第2の演算テーブル生成手段が、非線形関数器ごとに、非線形関数器の入力ビット列と線形変換手段の出力ビット列とを対応づけた第2の演算テーブルを動的に生成する。したがって、第1の演算テーブルおよび第2の演算テーブルを動的に生成するため、実装規模の拡大を抑制することができる。また、第1の演算テーブルおよび第2の演算テーブルを用いて、初期化処理および非線形処理の演算処理するため、演算速度を高速化することができる。
(3)本発明は、(1)または(2)に記載のストリーム暗号の暗号化装置から出力される暗号文を復号するストリーム暗号の復号化装置であって、初期鍵と初期値とを入力して初期化処理を行う初期化処理手段と、該初期化処理手段から入力したビット列から鍵系列を生成する非線形手段と、該生成された鍵系列と暗号文との排他的論理和演算を行い平文を生成する排他的論理和演算器(例えば、図8の排他的論理和演算器600に相当)と、を備え、前記初期化処理手段が、フィードバックシフトレジスタとフィードバック演算器とから構成され、前記フィードバック演算器の入力ビット列と出力ビット列とを対応づけ、前記出力ビット列が異なるビット列となるよう長周期化する第1の演算テーブルを動的に生成する第1の演算テーブル生成手段を備え、該生成した前記第1の演算テーブルを用いて、初期化処理を行うことを特徴とするストリーム暗号の復号化装置を提案している。
本発明によれば、初期化処理手段が、フィードバックシフトレジスタとフィードバック演算器とから構成され、第1の演算テーブル生成手段が、フィードバック演算器の入力ビット列と出力ビット列とを対応づけ、出力ビット列が異なるビット列となるよう長周期化する第1の演算テーブルを動的に生成する。したがって、第1の演算テーブルを動的に生成するため、実装規模の拡大を抑制することができる。また、第1の演算テーブルを用いて、初期化処理の演算処理するため、演算速度を高速化することができる。
(4)本発明は、(3)のストリーム暗号の復号化装置について、前記非線形手段内の線形置換関数器が、複数の非線形関数器と線形変換手段とから構成され、非線形関数器ごとに、非線形関数器の入力ビット列と線形変換手段の出力ビット列とを対応づけた第2の演算テーブルを動的に生成する第2の演算テーブル生成手段を備え、該生成した前記第2の演算テーブルを用いて、鍵系列を生成することを特徴とするストリーム暗号の復号化装置を提案している。
本発明によれば、非線形手段内の線形置換関数器が、複数の非線形関数器と線形変換手段とから構成され、第2の演算テーブル生成手段が、非線形関数器ごとに、非線形関数器の入力ビット列と線形変換手段の出力ビット列とを対応づけた第2の演算テーブルを動的に生成する。したがって、第1の演算テーブルおよび第2の演算テーブルを動的に生成するため、実装規模の拡大を抑制することができる。また、第1の演算テーブルおよび第2の演算テーブルを用いて、初期化処理および非線形処理の演算処理するため、演算速度を高速化することができる。
(5)本発明は、第1の演算テーブル生成手段が、フィードバックシフトレジスタとフィードバック演算器とからなる初期化処理手段の前記フィードバック演算器の入力ビット列と出力ビット列とを対応づけ、前記出力ビット列が異なるビット列となるよう長周期化する第1の演算テーブルを動的に生成する第1のステップ(例えば、図3のステップS101に相当)と、初期化処理手段が、初期鍵と初期値とを入力し、前記生成した前記第1の演算テーブルを用いて、初期化処理を行う第2のステップ(例えば、図3のステップS102に相当)と、非線形手段が、初期化処理後のビット列から鍵系列を生成する第3のステップ(例えば、図3のステップS103に相当)と、排他的論理和演算器が、該生成された鍵系列と平文との排他的論理和演算を行い暗号文を生成する第4のステップ(例えば、図3のステップS104に相当)と、を備えたことを特徴とするストリーム暗号の暗号化方法を提案している。
本発明によれば、第1の演算テーブル生成手段が、フィードバックシフトレジスタとフィードバック演算器とからなる初期化処理手段のフィードバック演算器の入力ビット列と出力ビット列とを対応づけ、出力ビット列が異なるビット列となるよう長周期化する第1の演算テーブルを動的に生成し、初期化処理手段が、初期鍵と初期値とを入力し、生成した第1の演算テーブルを用いて、初期化処理を行う。そして、非線形手段が、初期化処理後のビット列から鍵系列を生成し、排他的論理和演算器が、生成された鍵系列と平文との排他的論理和演算を行い暗号文を生成する。したがって、第1の演算テーブルを動的に生成するため、実装規模の拡大を抑制することができる。また、第1の演算テーブルを用いて、初期化処理の演算処理するため、演算速度を高速化することができる。
(6)本発明は、第1の演算テーブル生成手段が、フィードバックシフトレジスタとフィードバック演算器とからなる初期化処理手段の前記フィードバック演算器の入力ビット列と出力ビット列とを対応づけ、前記出力ビット列が異なるビット列となるよう長周期化する第1の演算テーブルを動的に生成する第1のステップ(例えば、図7のステップS201に相当)と、第2の演算テーブル生成手段が、複数の非線形関数器と線形変換手段とからなる非線形手段内の線形置換関数器の前記非線形関数器ごとに、前記非線形関数器の入力ビット列と前記線形変換手段の出力ビット列とを対応づけた第2の演算テーブルを動的に生成する第2のステップ(例えば、図7のステップS202に相当)と、初期化処理手段が、初期鍵と初期値とを入力し、前記生成した前記第1の演算テーブルを用いて、初期化処理を行う第3のステップ(例えば、図7のステップS203に相当)と、非線形手段が、前記第2の演算テーブルを用いて、初期化処理後のビット列から鍵系列を生成する第4のステップ(例えば、図7のステップS204に相当)と、排他的論理和演算器が、該生成された鍵系列と平文との排他的論理和演算を行い暗号文を生成する第5のステップ(例えば、図7のステップS205に相当)と、を備えたことを特徴とするストリーム暗号の暗号化方法を提案している。
本発明によれば、第1の演算テーブル生成手段が、フィードバックシフトレジスタとフィードバック演算器とからなる初期化処理手段のフィードバック演算器の入力ビット列と出力ビット列とを対応づけ、出力ビット列が異なるビット列となるよう長周期化する第1の演算テーブルを動的に生成し、第2の演算テーブル生成手段が、複数の非線形関数器と線形変換手段とからなる非線形手段内の線形置換関数器の非線形関数器ごとに、非線形関数器の入力ビット列と線形変換手段の出力ビット列とを対応づけた第2の演算テーブルを動的に生成する。そいて、初期化処理手段が、初期鍵と初期値とを入力し、生成した第1の演算テーブルを用いて、初期化処理を行い、非線形手段が、第2の演算テーブルを用いて、初期化処理後のビット列から鍵系列を生成して、排他的論理和演算器が、生成された鍵系列と平文との排他的論理和演算を行い暗号文を生成する。したがって、第1の演算テーブルおよび第2の演算テーブルを動的に生成するため、実装規模の拡大を抑制することができる。また、第1の演算テーブルおよび第2の演算テーブルを用いて、初期化処理および非線形処理の演算処理するため、演算速度を高速化することができる。
(7)本発明は、(5)または(6)に記載のストリーム暗号の暗号化方法により生成された暗号文を復号するストリーム暗号の復号化方法であって、第1の演算テーブル生成手段が、フィードバックシフトレジスタとフィードバック演算器とからなる初期化処理手段の前記フィードバック演算器の入力ビット列と出力ビット列とを対応づけ、前記出力ビット列が異なるビット列となるよう長周期化する第1の演算テーブルを動的に生成する第1のステップ(例えば、図9のステップS301に相当)と、初期化処理手段が、初期鍵と初期値とを入力し、前記生成した前記第1の演算テーブルを用いて、初期化処理を行う第2のステップ(例えば、図9のステップS302に相当)と、非線形手段が、初期化処理後のビット列から鍵系列を生成する第3のステップ(例えば、図9のステップS303に相当)と、排他的論理和演算器が、該生成された鍵系列と暗号文との排他的論理和演算を行い平文を生成する第4のステップ(例えば、図9のステップS303に相当)と、を備えたことを特徴とするストリーム暗号の復号化方法を提案している。
本発明によれば、第1の演算テーブル生成手段が、フィードバックシフトレジスタとフィードバック演算器とからなる初期化処理手段のフィードバック演算器の入力ビット列と出力ビット列とを対応づけ、出力ビット列が異なるビット列となるよう長周期化する第1の演算テーブルを動的に生成し、初期化処理手段が、初期鍵と初期値とを入力し、生成した第1の演算テーブルを用いて、初期化処理を行う。そして、非線形手段が、初期化処理後のビット列から鍵系列を生成し、排他的論理和演算器が、生成された鍵系列と暗号文との排他的論理和演算を行い平文を生成する。したがって、第1の演算テーブルを動的に生成するため、実装規模の拡大を抑制することができる。また、第1の演算テーブルを用いて、初期化処理の演算処理するため、演算速度を高速化することができる。
(8)本発明は、(5)または(6)に記載のストリーム暗号の暗号化方法により生成された暗号文を復号するストリーム暗号の復号化方法であって、第1の演算テーブル生成手段が、フィードバックシフトレジスタとフィードバック演算器とからなる初期化処理手段の前記フィードバック演算器の入力ビット列と出力ビット列とを対応づけ、前記出力ビット列が異なるビット列となるよう長周期化する第1の演算テーブルを動的に生成する第1のステップ(例えば、図11のステップS401に相当)と、第2の演算テーブル生成手段が、複数の非線形関数器と線形変換手段とからなる非線形手段内の線形置換関数器の前記非線形関数器ごとに、前記非線形関数器の入力ビット列と前記線形変換手段の出力ビット列とを対応づけた第2の演算テーブルを動的に生成する第2のステップ(例えば、図11のステップS402に相当)と、初期化処理手段が、初期鍵と初期値とを入力し、前記生成した前記第1の演算テーブルを用いて、初期化処理を行う第3のステップ(例えば、図11のステップS403に相当)と、非線形手段が、前記第2の演算テーブルを用いて、初期化処理後のビット列から鍵系列を生成する第4のステップ(例えば、図11のステップS404に相当)と、排他的論理和演算器が、該生成された鍵系列と暗号文との排他的論理和演算を行い平文を生成する第5のステップ(例えば、図11のステップS405に相当)と、を備えたことを特徴とするストリーム暗号の復号化方法を提案している。
本発明によれば、第1の演算テーブル生成手段が、フィードバックシフトレジスタとフィードバック演算器とからなる初期化処理手段のフィードバック演算器の入力ビット列と出力ビット列とを対応づけ、出力ビット列が異なるビット列となるよう長周期化する第1の演算テーブルを動的に生成し、第2の演算テーブル生成手段が、複数の非線形関数器と線形変換手段とからなる非線形手段内の線形置換関数器の非線形関数器ごとに、非線形関数器の入力ビット列と線形変換手段の出力ビット列とを対応づけた第2の演算テーブルを動的に生成する。そいて、初期化処理手段が、初期鍵と初期値とを入力し、生成した第1の演算テーブルを用いて、初期化処理を行い、非線形手段が、第2の演算テーブルを用いて、初期化処理後のビット列から鍵系列を生成して、排他的論理和演算器が、生成された鍵系列と暗号文との排他的論理和演算を行い平文を生成する。したがって、第1の演算テーブルおよび第2の演算テーブルを動的に生成するため、実装規模の拡大を抑制することができる。また、第1の演算テーブルおよび第2の演算テーブルを用いて、初期化処理および非線形処理の演算処理するため、演算速度を高速化することができる。
(9)本発明は、コンピュータに、第1の演算テーブル生成手段が、フィードバックシフトレジスタとフィードバック演算器とからなる初期化処理手段の前記フィードバック演算器の入力ビット列と出力ビット列とを対応づけ、前記出力ビット列が異なるビット列となるよう長周期化する第1の演算テーブルを動的に生成する第1のステップ(例えば、図3のステップS101に相当)と、初期化処理手段が、初期鍵と初期値とを入力し、前記生成した前記第1の演算テーブルを用いて、初期化処理を行う第2のステップ(例えば、図3のステップS102に相当)と、非線形手段が、初期化処理後のビット列から鍵系列を生成する第3のステップ(例えば、図3のステップS103に相当)と、排他的論理和演算器が、該生成された鍵系列と平文との排他的論理和演算を行い暗号文を生成する第4のステップ(例えば、図3のステップS104に相当)と、を実行させるためのプログラムを提案している。
本発明によれば、第1の演算テーブル生成手段が、フィードバックシフトレジスタとフィードバック演算器とからなる初期化処理手段のフィードバック演算器の入力ビット列と出力ビット列とを対応づけ、出力ビット列が異なるビット列となるよう長周期化する第1の演算テーブルを動的に生成し、初期化処理手段が、初期鍵と初期値とを入力し、生成した第1の演算テーブルを用いて、初期化処理を行う。そして、非線形手段が、初期化処理後のビット列から鍵系列を生成し、排他的論理和演算器が、生成された鍵系列と平文との排他的論理和演算を行い暗号文を生成する。したがって、第1の演算テーブルを動的に生成するため、実装規模の拡大を抑制することができる。また、第1の演算テーブルを用いて、初期化処理の演算処理するため、演算速度を高速化することができる。
(10)本発明は、コンピュータに、第1の演算テーブル生成手段が、フィードバックシフトレジスタとフィードバック演算器とからなる初期化処理手段の前記フィードバック演算器の入力ビット列と出力ビット列とを対応づけ、前記出力ビット列が異なるビット列となるよう長周期化する第1の演算テーブルを動的に生成する第1のステップ(例えば、図7のステップS201に相当)と、第2の演算テーブル生成手段が、複数の非線形関数器と線形変換手段とからなる非線形手段内の線形置換関数器の前記非線形関数器ごとに、前記非線形関数器の入力ビット列と前記線形変換手段の出力ビット列とを対応づけた第2の演算テーブルを動的に生成する第2のステップ(例えば、図7のステップS202に相当)と、初期化処理手段が、初期鍵と初期値とを入力し、前記生成した前記第1の演算テーブルを用いて、初期化処理を行う第3のステップ(例えば、図7のステップS203に相当)と、非線形手段が、前記第2の演算テーブルを用いて、初期化処理後のビット列から鍵系列を生成する第4のステップ(例えば、図7のステップS204に相当)と、排他的論理和演算器が、該生成された鍵系列と平文との排他的論理和演算を行い暗号文を生成する第5のステップ(例えば、図7のステップS205に相当)と、を実行させるためのプログラムを提案している。
本発明によれば、第1の演算テーブル生成手段が、フィードバックシフトレジスタとフィードバック演算器とからなる初期化処理手段のフィードバック演算器の入力ビット列と出力ビット列とを対応づけ、出力ビット列が異なるビット列となるよう長周期化する第1の演算テーブルを動的に生成し、第2の演算テーブル生成手段が、複数の非線形関数器と線形変換手段とからなる非線形手段内の線形置換関数器の非線形関数器ごとに、非線形関数器の入力ビット列と線形変換手段の出力ビット列とを対応づけた第2の演算テーブルを動的に生成する。そいて、初期化処理手段が、初期鍵と初期値とを入力し、生成した第1の演算テーブルを用いて、初期化処理を行い、非線形手段が、第2の演算テーブルを用いて、初期化処理後のビット列から鍵系列を生成して、排他的論理和演算器が、生成された鍵系列と平文との排他的論理和演算を行い暗号文を生成する。したがって、第1の演算テーブルおよび第2の演算テーブルを動的に生成するため、実装規模の拡大を抑制することができる。また、第1の演算テーブルおよび第2の演算テーブルを用いて、初期化処理および非線形処理の演算処理するため、演算速度を高速化することができる。
(11)本発明は、(9)または(10)に記載のストリーム暗号の暗号化方法により生成された暗号文を復号するストリーム暗号の復号化方法をコンピュータに実行させるためのプログラムであって、第1の演算テーブル生成手段が、フィードバックシフトレジスタとフィードバック演算器とからなる初期化処理手段の前記フィードバック演算器の入力ビット列と出力ビット列とを対応づけ、前記出力ビット列が異なるビット列となるよう長周期化する第1の演算テーブルを動的に生成する第1のステップ(例えば、図9のステップS301に相当)と、初期化処理手段が、初期鍵と初期値とを入力し、前記生成した前記第1の演算テーブルを用いて、初期化処理を行う第2のステップ(例えば、図9のステップS302に相当)と、非線形手段が、初期化処理後のビット列から鍵系列を生成する第3のステップ(例えば、図9のステップS303に相当)と、排他的論理和演算器が、該生成された鍵系列と暗号文との排他的論理和演算を行い平文を生成する第4のステップ(例えば、図9のステップS303に相当)と、をコンピュータに実行させるためのプログラムを提案している。
本発明によれば、第1の演算テーブル生成手段が、フィードバックシフトレジスタとフィードバック演算器とからなる初期化処理手段のフィードバック演算器の入力ビット列と出力ビット列とを対応づけ、出力ビット列が異なるビット列となるよう長周期化する第1の演算テーブルを動的に生成し、初期化処理手段が、初期鍵と初期値とを入力し、生成した第1の演算テーブルを用いて、初期化処理を行う。そして、非線形手段が、初期化処理後のビット列から鍵系列を生成し、排他的論理和演算器が、生成された鍵系列と暗号文との排他的論理和演算を行い平文を生成する。したがって、第1の演算テーブルを動的に生成するため、実装規模の拡大を抑制することができる。また、第1の演算テーブルを用いて、初期化処理の演算処理するため、演算速度を高速化することができる。
(12)本発明は、(9)または(10)に記載のストリーム暗号の暗号化方法により生成された暗号文を復号するストリーム暗号の復号化方法をコンピュータに実行させるためのプログラムであって、第1の演算テーブル生成手段が、フィードバックシフトレジスタとフィードバック演算器とからなる初期化処理手段の前記フィードバック演算器の入力ビット列と出力ビット列とを対応づけ、前記出力ビット列が異なるビット列となるよう長周期化する第1の演算テーブルを動的に生成する第1のステップ(例えば、図11のステップS401に相当)と、第2の演算テーブル生成手段が、複数の非線形関数器と線形変換手段とからなる非線形手段内の線形置換関数器の前記非線形関数器ごとに、前記非線形関数器の入力ビット列と前記線形変換手段の出力ビット列とを対応づけた第2の演算テーブルを動的に生成する第2のステップ(例えば、図11のステップS402に相当)と、初期化処理手段が、初期鍵と初期値とを入力し、前記生成した前記第1の演算テーブルを用いて、初期化処理を行う第3のステップ(例えば、図11のステップS403に相当)と、非線形手段が、前記第2の演算テーブルを用いて、初期化処理後のビット列から鍵系列を生成する第4のステップ(例えば、図11のステップS404に相当)と、排他的論理和演算器が、該生成された鍵系列と暗号文との排他的論理和演算を行い平文を生成する第5のステップ(例えば、図11のステップS405に相当)と、をコンピュータに実行させるためのプログラムを提案している。
本発明によれば、第1の演算テーブル生成手段が、フィードバックシフトレジスタとフィードバック演算器とからなる初期化処理手段のフィードバック演算器の入力ビット列と出力ビット列とを対応づけ、出力ビット列が異なるビット列となるよう長周期化する第1の演算テーブルを動的に生成し、第2の演算テーブル生成手段が、複数の非線形関数器と線形変換手段とからなる非線形手段内の線形置換関数器の非線形関数器ごとに、非線形関数器の入力ビット列と線形変換手段の出力ビット列とを対応づけた第2の演算テーブルを動的に生成する。そいて、初期化処理手段が、初期鍵と初期値とを入力し、生成した第1の演算テーブルを用いて、初期化処理を行い、非線形手段が、第2の演算テーブルを用いて、初期化処理後のビット列から鍵系列を生成して、排他的論理和演算器が、生成された鍵系列と暗号文との排他的論理和演算を行い平文を生成する。したがって、第1の演算テーブルおよび第2の演算テーブルを動的に生成するため、実装規模の拡大を抑制することができる。また、第1の演算テーブルおよび第2の演算テーブルを用いて、初期化処理および非線形処理の演算処理するため、演算速度を高速化することができる。
本発明によれば、第1の演算テーブルを動的に生成するため、実装規模の拡大を抑制することができるという効果がある。また、第1の演算テーブルを用いて、初期化処理の演算処理するため、演算速度を高速化することができるという効果がある。さらに、第2の演算テーブルを動的に生成することにより、非線形処理の演算処理速度についても高速化することができるという効果がある。
本発明の第1の実施形態に係るストリーム暗号の暗号化装置の構成を示す図である。 本発明の第1の実施形態に係るストリーム暗号の暗号化装置の初期化処理部の詳細な構成を示す図である。 本発明の第1の実施形態に係るストリーム暗号の暗号化装置の処理を示す図である。 本発明の第2の実施形態に係るストリーム暗号の暗号化装置の構成を示す図である。 本発明の第2の実施形態に係るストリーム暗号の暗号化装置の非線形処理部の詳細な構成を示す図である。 本発明の第2の実施形態に係るストリーム暗号の暗号化装置の非線形置換部(Sub)の詳細な構成を示す図である。 本発明の第2の実施形態に係るストリーム暗号の暗号化装置の処理を示す図である。 本発明の第3の実施形態に係るストリーム暗号の復号化装置の構成を示す図である。 本発明の第3の実施形態に係るストリーム暗号の復号化装置の処理を示す図である。 本発明の第4の実施形態に係るストリーム暗号の復号化装置の構成を示す図である。 本発明の第4の実施形態に係るストリーム暗号の復号化装置の処理を示す図である。
以下、本発明の実施形態について、図面を用いて、詳細に説明する。
なお、本実施形態における構成要素は適宜、既存の構成要素等との置き換えが可能であり、また、他の既存の構成要素との組合せを含む様々なバリエーションが可能である。したがって、本実施形態の記載をもって、特許請求の範囲に記載された発明の内容を限定するものではない。
以下、図1から図11を用いて、本発明の実施形態について説明する。
<第1の実施形態>
図1から図3を用いて、本実施形態に係るストリーム暗号の暗号化装置について説明する。
<ストリーム暗号の暗号化装置の構成>
図1に示すように、本実施形態に係るストリーム暗号の暗号化装置は、初期化処理部100と、非線形処理部200と、排他的論理和演算器300と、第1の演算テーブル生成部400とから構成されている。
初期化処理部100は、初期鍵と初期値とを入力し、攪拌処理を行うことにより、内部状態を生成する。非線形処理部200は、初期化処理部100から入力したビット列に対して、非線形処理を行い、鍵系列を生成する。排他的論理和演算器300は、非線形処理部200において生成された鍵系列と平文との排他的論理和演算を実行して、暗号文を生成する。
第1の演算テーブル生成部400は、初期化処理部100の一部を構成するフィードバック演算器の入力ビット列と出力ビット列とを対応づけ、出力ビット列が異なるビット列となるよう長周期化する第1の演算テーブルを動的に生成する。
<初期化処理部の詳細な構成>
図2に示すように、初期化処理部100は、フィードバックシフトレジスタ110、120と、フィードバック演算器130、140、150と、クロックコントローラ160とから構成されている。
フィードバックシフトレジスタ110、120は、入力ビットが直前の状態の線形写像になっているシフトレジスタであり、その値を構成するビット列の一部の排他的論理和を入力ビットとするシフトレジスタである。
フィードバック演算器130、140、150は、フィードバックシフトレジスタ110、120から入力されるビット列に対し、係数を乗算してフィードバックするビット列を生成する。クロックコントローラ160は、クロックに同期して、フィードバック演算器130、140、150にビット列を出力する。
<第1の演算テーブル生成部の処理>
いま、フィードバックシフトレジスタ110(LFSR−A)は、1レジスタあたり32bitの5つのレジスタから構成され、フィードバック関数f(x)は、数1とする。ここで、αは32bitから32bitへの変換を与える。
Figure 0005822757
時刻t≧0のときのフィードバックシフトレジスタ110(LFSR−A)の値を、数2とすると、At+5はフィードバック関数より数3で与えられる。
Figure 0005822757
Figure 0005822757
αは、GF(232)の元で、数4の根とする。但し、βは、原始多項式数5の根である。
Figure 0005822757
Figure 0005822757
したがって、α変換は、GF(232)内の乗算で表される。
つまり、数6の関係となる。
Figure 0005822757
ここで、Aを数7としたとき、αを用いて、Aは、数8で表される。
Figure 0005822757
Figure 0005822757
したがって、α・Aは、数9のように表され、ベクトル表記を用いると、数10のように表される。
Figure 0005822757
Figure 0005822757
ここで、a→(aβ24、aβ、aβ12、aβ71)変換をテーブル化すると数11のようになる。
Figure 0005822757
このテーブルを用いると、α変換は次の数12のように計算できる。
Figure 0005822757
このテーブルk2_alpha0_mulを実行時に動的に生成する。具体的には、その前のステップ、a→(aβ24、aβ、aβ12、aβ71)をすべてのaに対して、実行時に計算することで、テーブルを生成する。なお、フィードバックシフトレジスタ120(LFSR−B)についても同様の処理となる。
<ストリーム暗号の暗号化装置の処理>
図3を用いて、本実施形態に係るストリーム暗号の暗号化装置の処理について説明する。
まず、第1の演算テーブル生成部400が、フィードバックシフトレジスタとフィードバック演算器とからなる初期化処理部100のフィードバック演算器の入力ビット列と出力ビット列とを対応づけ、出力ビット列が異なるビット列となるよう長周期化する第1の演算テーブルを動的に生成する(ステップS101)。
そして、初期化処理部100が、初期鍵と初期値とを入力し、生成した第1の演算テーブルを用いて、初期化処理を行い(ステップS102)、非線形手段が、初期化処理後のビット列から鍵系列を生成して(ステップS103)、排他的論理和演算器が、生成された鍵系列と平文との排他的論理和演算を行い暗号文を生成する(ステップS104)。
以上、説明したように、本実施形態によれば、第1の演算テーブルを動的に生成するため、実装規模の拡大を抑制することができる。また、第1の演算テーブルを用いて、初期化処理の演算処理するため、演算速度を高速化することができる。
<第2の実施形態>
図4から図7を用いて、本発明に係る第2の実施形態について説明する。
<ストリーム暗号の暗号化装置の構成>
図4に示すように、本実施形態に係るストリーム暗号の暗号化装置は、初期化処理部100と、非線形処理部200と、排他的論理和演算器300と、第1の演算テーブル生成部400と、第2の演算テーブル生成部500とから構成されている。なお、第1の実施形態と同一の符号を付す構成要素については、同様の機能を有することから、その詳細な説明は省略する。
第2の演算テーブル生成部500は、演算実行時に、非線形処理部200内の線形置換関数器を構成する非線形関数器ごとに、非線形関数器の入力ビット列と非線形処理部200の一部をなす線形変換手段の出力ビット列とを対応づけた第2の演算テーブルを動的に生成する。
<非線形処理部の詳細な構成>
図5に示すように、非線形処理部200は、加算器211、212、213、214と、内部メモリ221、222、223、224と、非線形置換関数器(Sub)230、240、250、260と、排他的論理和演算器271、272、273、274とから構成されている。
また、非線形置換関数器(Sub)230、240、250、260は、図6に示すように、非線形関数器231、232、233、234と、線形変換部235とから構成されている。第2の演算テーブル生成部500は、非線形関数器231、232、233、234の入力ビット列と線形変換部235の出力ビット列とを対応づけた図6のテーブルA、テーブルB、テーブルC、テーブルDに対応する第2の演算テーブルを動的に生成する。
<第2の演算テーブル生成部の処理>
第2の演算テーブル生成部は、上記のように、非線形置換関数器(Sub)230、240、250、260の処理をテーブル化するものである。
非線形置換(Sub)は、数13に示すように、Substitution処理(非線形関数器231、232、233、234による処理)とPermutation処理(線形変換部235による処理)とからなり、32bitから32bitへの変換を与える。
Figure 0005822757
まず始めに、入力された値に対しSubstitution処理を行う。Substitutions処理は、入力された32bitデータを8bit単位でByteSub変換を行う。ByteSub変換は、8bitから8bitへの変換を与えるものである(詳細は後述)。つまり、Substitution処理は、入力値を数14とし、出力値を数15とすると、ByteSub変換を用いて、数16のようになる。
Figure 0005822757
Figure 0005822757
Figure 0005822757
ByteSub変換は8bitから8bitへの変換で、2つの変換関数f、gを用いて、数17のように表される。
Figure 0005822757
変換関数fは既約多項式m(x)=x+x+x+x+1を法としたときの逆元を与える関数である。また、変換関数gは行列を用い、数18のように表される。
Figure 0005822757
ここで、b、cは、数19の転置行列で、数20と表される。
Figure 0005822757
Figure 0005822757
次に、Substitution処理後の値に対しPermutation処理を行う。Permutation処理は、出力値を数21としたとき、数22によって求められる。
Figure 0005822757
Figure 0005822757
ここで、行列の乗算は、既約多項式m(x)=x+x+x+x+1を法として計算される。つまりbは、数23のようになる。
Figure 0005822757
そして、Permutation処理の結果である数24が、非線形置換(Sub)の出力値となる。
Figure 0005822757
以上の非線形置換処理をテーブルによって演算する手法は以下の通りである。非線形置換(Sub)は、入力値を数25とし、出力値を数26とした場合、したがって、Bは、数27となる。数28を整理すると、数29となる。
Figure 0005822757
Figure 0005822757
Figure 0005822757
Figure 0005822757
Figure 0005822757
ここで、数30で示す4つのテーブルを作成する。
Figure 0005822757
このテーブルを用いると、Sub変換は、数31のように計算できる。
Figure 0005822757
このT0、T1、T2、T3の4つのテーブルを実行時に動的に生成する。具体的には、その前のステップ(数32に示す)、をすべての数33のそれぞれに対して、実行時に計算することで、テーブルを生成する。
Figure 0005822757
Figure 0005822757
<ストリーム暗号の暗号化装置の処理>
図7を用いて、本実施形態に係るストリーム暗号の暗号化装置の処理について説明する。
まず、第1の演算テーブル生成部400が、フィードバックシフトレジスタとフィードバック演算器とからなる初期化処理部100のフィードバック演算器の入力ビット列と出力ビット列とを対応づけ、出力ビット列が異なるビット列となるよう長周期化する第1の演算テーブルを動的に生成する(ステップS101)。
次いで、第2の演算テーブル生成部500が、演算実行時に、複数の非線形関数器と線形変換部とからなる非線形処理部内の線形置換関数器の非線形関数器ごとに、非線形関数器の入力ビット列と線形変換部の出力ビット列とを対応づけた第2の演算テーブルを動的に生成する(ステップS102)。
そして、初期化処理部100が、初期鍵と初期値とを入力し、生成した第1の演算テーブルを用いて、初期化処理を行い(ステップS103)、非線形手段が、生成した第2の演算テーブルを用いて、初期化処理後のビット列から鍵系列を生成して(ステップS104)、排他的論理和演算器が、生成された鍵系列と平文との排他的論理和演算を行い暗号文を生成する(ステップS105)。
以上、説明したように、本実施形態によれば、第1の演算テーブルおよび第2の演算テーブルを動的に生成するため、実装規模の拡大を抑制することができる。また、第1の演算テーブルおよび第2の演算テーブルを用いて、初期化処理および非線形処理の演算処理するため、演算速度を高速化することができる。
<第3の実施形態>
図8および図9を用いて、本実施形態に係るストリーム暗号の復号化装置について説明する。
<ストリーム暗号の復号化装置の構成>
図8に示すように、本実施形態に係るストリーム暗号の復号化装置は、初期化処理部100と、非線形処理部200と、排他的論理和演算器600と、第1の演算テーブル生成部400とから構成されている。なお、第1の実施形態と同一の符号を付す構成要素については、同様の機能を有することから、その詳細な説明は、省略する。
排他的論理和演算器600は、非線形処理部200において生成された鍵系列と暗号文との排他的論理和演算を実行して、平文を生成する。
<ストリーム暗号の復号化装置の処理>
図9を用いて、本実施形態に係るストリーム暗号の復号化装置の処理について説明する。
まず、第1の演算テーブル生成部400が、フィードバックシフトレジスタとフィードバック演算器とからなる初期化処理部100のフィードバック演算器の入力ビット列と出力ビット列とを対応づけ、出力ビット列が異なるビット列となるよう長周期化する第1の演算テーブルを動的に生成する(ステップS301)。
そして、初期化処理部100が、初期鍵と初期値とを入力し、生成した第1の演算テーブルを用いて、初期化処理を行い(ステップS302)、非線形手段が、初期化処理後のビット列から鍵系列を生成して(ステップS303)、排他的論理和演算器が、生成された鍵系列と暗号文との排他的論理和演算を行い平文を生成する(ステップS304)。
以上、説明したように、本実施形態によれば、第1の演算テーブルを動的に生成するため、実装規模の拡大を抑制することができる。また、第1の演算テーブルを用いて、初期化処理の演算処理するため、演算速度を高速化することができる。
<第4の実施形態>
図10および図11を用いて、本発明に係る第4の実施形態について説明する。
<ストリーム暗号の復号化装置の構成>
図10に示すように、本実施形態に係るストリーム暗号の復号化装置は、初期化処理部100と、非線形処理部200と、排他的論理和演算器600と、第1の演算テーブル生成部400と、第2の演算テーブル生成部500とから構成されている。なお、上記の構成要素は、第1の実施形態および第2の実施形態において説明したものと同一のものであることから、その詳細な説明は省略する。
<ストリーム暗号の復号化装置の処理>
11を用いて、本実施形態に係るストリーム暗号の復号化装置の処理について説明する。
まず、第1の演算テーブル生成部400が、フィードバックシフトレジスタとフィードバック演算器とからなる初期化処理部100のフィードバック演算器の入力ビット列と出力ビット列とを対応づけ、出力ビット列が異なるビット列となるよう長周期化する第1の演算テーブルを動的に生成する(ステップS401)。
次いで、第2の演算テーブル生成部500が、演算実行時に、複数の非線形関数器と線形変換部とからなる非線形処理部内の線形置換関数器の非線形関数器ごとに、非線形関数器の入力ビット列と線形変換部の出力ビット列とを対応づけた第2の演算テーブルを動的に生成する(ステップS402)。
そして、初期化処理部100が、初期鍵と初期値とを入力し、生成した第1の演算テーブルを用いて、初期化処理を行い(ステップS403)、非線形手段が、生成した第2の演算テーブルを用いて、初期化処理後のビット列から鍵系列を生成して(ステップS404)、排他的論理和演算器が、生成された鍵系列と暗号文との排他的論理和演算を行い平文を生成する(ステップS405)。
以上、説明したように、本実施形態によれば、第1の演算テーブルおよび第2の演算テーブルを動的に生成するため、実装規模の拡大を抑制することができる。また、第1の演算テーブルおよび第2の演算テーブルを用いて、初期化処理および非線形処理の演算処理するため、演算速度を高速化することができる。
なお、ストリーム暗号の暗号化装置およびストリーム暗号の復号化装置の処理をコンピュータシステムが読み取り可能な記録媒体に記録し、この記録媒体に記録されたプログラムを情報収集システムに読み込ませ、実行することによって本発明のストリーム暗号の暗号化装置およびストリーム暗号の復号化装置を実現することができる。ここでいうコンピュータシステムとは、OSや周辺装置等のハードウェアを含む。
また、「コンピュータシステム」は、WWW(World Wide Web)システムを利用している場合であれば、ホームページ提供環境(あるいは表示環境)も含むものとする。また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。
また、上記プログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組合せで実現できるもの、いわゆる差分ファイル(差分プログラム)であってもよい。
以上、この発明の実施形態につき、図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
100;初期化処理部
110;フィードバックシフトレジスタ
120;フィードバックシフトレジスタ
130;フィードバック演算器
140;フィードバック演算器
150;フィードバック演算器
160;クロックコントローラ
200;非線形処理部
211;加算器
212;加算器
213;加算器
214;加算器
221;内部メモリ
222;内部メモリ
223;内部メモリ
224;内部メモリ
230;非線形置換関数器(Sub)
231;非線形関数器
232;非線形関数器
233;非線形関数器
234;非線形関数器
235;線形変換部
240;非線形置換関数器(Sub)
250;非線形置換関数器(Sub)
260;非線形置換関数器(Sub)
271;排他的論理和演算器
272;排他的論理和演算器
273;排他的論理和演算器
274;排他的論理和演算器
300;排他的論理和演算器
400;第1の演算テーブル生成部
500;第2の演算テーブル生成部
600;排他的論理和演算器

Claims (12)

  1. 初期鍵と初期値とを入力して初期化処理を行う初期化処理手段と、
    該初期化処理手段から入力したビット列から鍵系列を生成する非線形手段と、
    該生成された鍵系列と平文との排他的論理和演算を行い暗号文を生成する排他的論理和演算器と、
    を備え、
    前記初期化処理手段が、初期化処理時に、フィードバックシフトレジスタとフィードバック演算器とから構成され、前記フィードバック演算器の入力ビット列と出力ビット列とを対応づけ、前記出力ビット列が異なるビット列となるよう長周期化する第1の演算テーブルを動的に生成する第1の演算テーブル生成手段を備え、該生成した前記第1の演算テーブルを用いて、初期化処理を行うことを特徴とするストリーム暗号の暗号化装置。
  2. 前記非線形手段内の線形置換関数器が、複数の非線形関数器と線形変換手段とから構成され、演算実行時に、前記非線形関数器ごとに、前記非線形関数器の入力ビット列と前記線形変換手段の出力ビット列とを対応づけた第2の演算テーブルを動的に生成する第2の演算テーブル生成手段を備え、該生成した前記第2の演算テーブルを用いて、鍵系列を生成することを特徴とする請求項1に記載のストリーム暗号の暗号化装置。
  3. 前記請求項1または請求項2に記載のストリーム暗号の暗号化装置から出力される暗号文を復号するストリーム暗号の復号化装置であって、
    初期鍵と初期値とを入力して初期化処理を行う初期化処理手段と、
    該初期化処理手段から入力したビット列から鍵系列を生成する非線形手段と、
    該生成された鍵系列と暗号文との排他的論理和演算を行い平文を生成する排他的論理和演算器と、
    を備え、
    前記初期化処理手段が、初期化処理時に、フィードバックシフトレジスタとフィードバック演算器とから構成され、前記フィードバック演算器の入力ビット列と出力ビット列とを対応づけ、前記出力ビット列が異なるビット列となるよう長周期化する第1の演算テーブルを動的に生成する第1の演算テーブル生成手段を備え、該生成した前記第1の演算テーブルを用いて、初期化処理を行うことを特徴とするストリーム暗号の復号化装置。
  4. 前記非線形手段内の線形置換関数器が、複数の非線形関数器と線形変換手段とから構成され、演算実行時に、前記非線形関数器ごとに、前記非線形関数器の入力ビット列と前記線形変換手段の出力ビット列とを対応づけた第2の演算テーブルを動的に生成する第2の演算テーブル生成手段を備え、該生成した前記第2の演算テーブルを用いて、鍵系列を生成することを特徴とする請求項3に記載のストリーム暗号の復号化装置。
  5. 第1の演算テーブル生成手段が、フィードバックシフトレジスタとフィードバック演算器とからなる初期化処理手段の前記フィードバック演算器の入力ビット列と出力ビット列とを対応づけ、前記出力ビット列が異なるビット列となるよう長周期化する第1の演算テーブルを動的に生成する第1のステップと、
    初期化処理手段が、初期化処理時に、初期鍵と初期値とを入力し、前記生成した前記第1の演算テーブルを用いて、初期化処理を行う第2のステップと、
    非線形手段が、初期化処理後のビット列から鍵系列を生成する第3のステップと、
    排他的論理和演算器が、該生成された鍵系列と平文との排他的論理和演算を行い暗号文を生成する第4のステップと、
    を備えたことを特徴とするストリーム暗号の暗号化方法。
  6. 第1の演算テーブル生成手段が、初期化処理時に、フィードバックシフトレジスタとフィードバック演算器とからなる初期化処理手段の前記フィードバック演算器の入力ビット列と出力ビット列とを対応づけ、前記出力ビット列が異なるビット列となるよう長周期化する第1の演算テーブルを動的に生成する第1のステップと、
    第2の演算テーブル生成手段が、演算実行時に、複数の非線形関数器と線形変換手段とからなる非線形手段内の線形置換関数器の前記非線形関数器ごとに、前記非線形関数器の入力ビット列と前記線形変換手段の出力ビット列とを対応づけた第2の演算テーブルを動的に生成する第2のステップと、
    初期化処理手段が、初期鍵と初期値とを入力し、前記生成した前記第1の演算テーブルを用いて、初期化処理を行う第3のステップと、
    非線形手段が、前記第2の演算テーブルを用いて、初期化処理後のビット列から鍵系列を生成する第4のステップと、
    排他的論理和演算器が、該生成された鍵系列と平文との排他的論理和演算を行い暗号文を生成する第5のステップと、
    を備えたことを特徴とするストリーム暗号の暗号化方法。
  7. 前記請求項5または請求項6に記載のストリーム暗号の暗号化方法により生成された暗号文を復号するストリーム暗号の復号化方法であって、
    第1の演算テーブル生成手段が、初期化処理時に、フィードバックシフトレジスタとフィードバック演算器とからなる初期化処理手段の前記フィードバック演算器の入力ビット列と出力ビット列とを対応づけ、前記出力ビット列が異なるビット列となるよう長周期化する第1の演算テーブルを動的に生成する第1のステップと、
    初期化処理手段が、初期鍵と初期値とを入力し、前記生成した前記第1の演算テーブルを用いて、初期化処理を行う第2のステップと、
    非線形手段が、初期化処理後のビット列から鍵系列を生成する第3のステップと、
    排他的論理和演算器が、該生成された鍵系列と暗号文との排他的論理和演算を行い平文を生成する第4のステップと、
    を備えたことを特徴とするストリーム暗号の復号化方法。
  8. 前記請求項5または請求項6に記載のストリーム暗号の暗号化方法により生成された暗号文を復号するストリーム暗号の復号化方法であって、
    第1の演算テーブル生成手段が、初期化処理時に、フィードバックシフトレジスタとフィードバック演算器とからなる初期化処理手段の前記フィードバック演算器の入力ビット列と出力ビット列とを対応づけ、前記出力ビット列が異なるビット列となるよう長周期化する第1の演算テーブルを動的に生成する第1のステップと、
    第2の演算テーブル生成手段が、演算実行時に、複数の非線形関数器と線形変換手段とからなる非線形手段内の線形置換関数器の前記非線形関数器ごとに、前記非線形関数器の入力ビット列と前記線形変換手段の出力ビット列とを対応づけた第2の演算テーブルを動的に生成する第2のステップと、
    初期化処理手段が、初期鍵と初期値とを入力し、前記生成した前記第1の演算テーブルを用いて、初期化処理を行う第3のステップと、
    非線形手段が、前記第2の演算テーブルを用いて、初期化処理後のビット列から鍵系列を生成する第4のステップと、
    排他的論理和演算器が、該生成された鍵系列と暗号文との排他的論理和演算を行い平文を生成する第5のステップと、
    を備えたことを特徴とするストリーム暗号の復号化方法。
  9. コンピュータに、
    第1の演算テーブル生成手段が、初期化処理時に、フィードバックシフトレジスタとフィードバック演算器とからなる初期化処理手段の前記フィードバック演算器の入力ビット列と出力ビット列とを対応づけ、前記出力ビット列が異なるビット列となるよう長周期化する第1の演算テーブルを動的に生成する第1のステップと、
    初期化処理手段が、初期鍵と初期値とを入力し、前記生成した前記第1の演算テーブルを用いて、初期化処理を行う第2のステップと、
    非線形手段が、初期化処理後のビット列から鍵系列を生成する第3のステップと、
    排他的論理和演算器が、該生成された鍵系列と平文との排他的論理和演算を行い暗号文を生成する第4のステップと、
    を実行させるためのプログラム。
  10. コンピュータに、
    第1の演算テーブル生成手段が、初期化処理時に、フィードバックシフトレジスタとフィードバック演算器とからなる初期化処理手段の前記フィードバック演算器の入力ビット列と出力ビット列とを対応づけ、前記出力ビット列が異なるビット列となるよう長周期化する第1の演算テーブルを動的に生成する第1のステップと、
    第2の演算テーブル生成手段が、演算実行時に、複数の非線形関数器と線形変換手段とからなる非線形手段内の線形置換関数器の前記非線形関数器ごとに、前記非線形関数器の入力ビット列と前記線形変換手段の出力ビット列とを対応づけた第2の演算テーブルを動的に生成する第2のステップと、
    初期化処理手段が、初期鍵と初期値とを入力し、前記生成した前記第1の演算テーブルを用いて、初期化処理を行う第3のステップと、
    非線形手段が、前記第2の演算テーブルを用いて、初期化処理後のビット列から鍵系列を生成する第4のステップと、
    排他的論理和演算器が、該生成された鍵系列と平文との排他的論理和演算を行い暗号文を生成する第5のステップと、
    を実行させるためのプログラム。
  11. 前記請求項9に記載のプログラムにより生成された暗号文を復号するストリーム暗号の復号化方法をコンピュータに実行させるためのプログラムであって、
    第1の演算テーブル生成手段が、初期化処理時に、フィードバックシフトレジスタとフィードバック演算器とからなる初期化処理手段の前記フィードバック演算器の入力ビット列と出力ビット列とを対応づけ、前記出力ビット列が異なるビット列となるよう長周期化する第1の演算テーブルを動的に生成する第1のステップと、
    初期化処理手段が、初期鍵と初期値とを入力し、前記生成した前記第1の演算テーブルを用いて、初期化処理を行う第2のステップと、
    非線形手段が、初期化処理後のビット列から鍵系列を生成する第3のステップと、
    排他的論理和演算器が、該生成された鍵系列と暗号文との排他的論理和演算を行い平文を生成する第4のステップと、
    をコンピュータに実行させるためのプログラム。
  12. 前記請求項10に記載のプログラムにより生成された暗号文を復号するストリーム暗号の復号化方法をコンピュータに実行させるためのプログラムであって、
    第1の演算テーブル生成手段が、初期化処理時に、フィードバックシフトレジスタとフィードバック演算器とからなる初期化処理手段の前記フィードバック演算器の入力ビット列と出力ビット列とを対応づけ、前記出力ビット列が異なるビット列となるよう長周期化する第1の演算テーブルを動的に生成する第1のステップと、
    第2の演算テーブル生成手段が、演算実行時に、複数の非線形関数器と線形変換手段とからなる非線形手段内の線形置換関数器の前記非線形関数器ごとに、前記非線形関数器の入力ビット列と前記線形変換手段の出力ビット列とを対応づけた第2の演算テーブルを動的に生成する第2のステップと、
    初期化処理手段が、初期鍵と初期値とを入力し、前記生成した前記第1の演算テーブルを用いて、初期化処理を行う第3のステップと、
    非線形手段が、前記第2の演算テーブルを用いて、初期化処理後のビット列から鍵系列を生成する第4のステップと、
    排他的論理和演算器が、該生成された鍵系列と暗号文との排他的論理和演算を行い平文を生成する第5のステップと、
    をコンピュータに実行させるためのプログラム。
JP2012041428A 2012-02-28 2012-02-28 ストリーム暗号の暗号化装置、ストリーム暗号の復号化装置、ストリーム暗号の暗号化方法、ストリーム暗号の復号化方法およびプログラム Active JP5822757B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012041428A JP5822757B2 (ja) 2012-02-28 2012-02-28 ストリーム暗号の暗号化装置、ストリーム暗号の復号化装置、ストリーム暗号の暗号化方法、ストリーム暗号の復号化方法およびプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012041428A JP5822757B2 (ja) 2012-02-28 2012-02-28 ストリーム暗号の暗号化装置、ストリーム暗号の復号化装置、ストリーム暗号の暗号化方法、ストリーム暗号の復号化方法およびプログラム

Publications (2)

Publication Number Publication Date
JP2013179422A JP2013179422A (ja) 2013-09-09
JP5822757B2 true JP5822757B2 (ja) 2015-11-24

Family

ID=49270702

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012041428A Active JP5822757B2 (ja) 2012-02-28 2012-02-28 ストリーム暗号の暗号化装置、ストリーム暗号の復号化装置、ストリーム暗号の暗号化方法、ストリーム暗号の復号化方法およびプログラム

Country Status (1)

Country Link
JP (1) JP5822757B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015114434A (ja) * 2013-12-10 2015-06-22 Kddi株式会社 ストリーム暗号の暗号化装置、ストリーム暗号の復号化装置、ストリーム暗号の暗号化方法、ストリーム暗号の復号化方法およびプログラム

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003195749A (ja) * 2001-12-26 2003-07-09 Denso Create:Kk データ変換装置、データ変換プログラム、記録媒体及びデータ変換方法
JP3818263B2 (ja) * 2003-01-28 2006-09-06 日本電気株式会社 Aes暗号処理装置、aes復号処理装置、aes暗号・復号処理装置、aes暗号処理方法、aes復号処理方法、および、aes暗号・復号処理方法
FR2871969B1 (fr) * 2004-06-18 2006-12-01 Sagem Procede et dispositif d'execution d'un calcul cryptographique

Also Published As

Publication number Publication date
JP2013179422A (ja) 2013-09-09

Similar Documents

Publication Publication Date Title
Faz-Hernández et al. A faster software implementation of the supersingular isogeny Diffie-Hellman key exchange protocol
JP6244429B2 (ja) ストリーム暗号の暗号化装置、ストリーム暗号の復号化装置、ストリーム暗号の暗号化方法、ストリーム暗号の復号化方法およびプログラム
JP5711681B2 (ja) 暗号処理装置
JP4180024B2 (ja) 乗算剰余演算器及び情報処理装置
JP2002229445A (ja) べき乗剰余演算器
JP4170267B2 (ja) 乗算剰余演算器及び情報処理装置
JP5202350B2 (ja) 暗号処理装置及び暗号処理方法及び暗号処理プログラム
JP5822757B2 (ja) ストリーム暗号の暗号化装置、ストリーム暗号の復号化装置、ストリーム暗号の暗号化方法、ストリーム暗号の復号化方法およびプログラム
CN111712816A (zh) 使用密码蒙蔽以用于高效地使用蒙哥马利乘法
CN110034918A (zh) 一种sm4加速方法和装置
CN106452726B (zh) 一种s盒及其构造方法
CN110071927B (zh) 一种信息加密方法、系统及相关组件
JP2011128655A (ja) 擬似乱数発生システム
KR100974624B1 (ko) 센서 모트에서의 효율적인 타원 곡선 암호 연산 방법, 그장치 및 이를 기록한 기록매체
JP5489696B2 (ja) ストリーム暗号の暗号化装置、ストリーム暗号の復号化装置、ストリーム暗号の暗号化方法、ストリーム暗号の復号化方法およびプログラム
JP2008286964A (ja) ストリーム暗号の暗号化装置、復号化装置、暗号化方法、復号化方法およびプログラム
JP2015114434A (ja) ストリーム暗号の暗号化装置、ストリーム暗号の復号化装置、ストリーム暗号の暗号化方法、ストリーム暗号の復号化方法およびプログラム
JP5726394B2 (ja) 非線形関数器、ストリーム暗号の暗号化装置、復号化装置、mac生成装置
JP5495825B2 (ja) ストリーム暗号の秘匿計算暗号化装置、ストリーム暗号の秘匿計算復号化装置、暗号化方法、復号化方法およびプログラム
JP5495754B2 (ja) ストリーム暗号の初期化処理回路、ストリーム暗号化装置、ストリーム復号化装置、ストリーム暗号の初期化処理方法およびプログラム
JP5268011B2 (ja) 暗号化システム及び復号化システム
JP2013127547A (ja) クロック制御型ストリーム暗号の暗号化装置、クロック制御型ストリーム暗号の復号化装置、クロック制御型ストリーム暗号の暗号化方法、クロック制御型ストリーム暗号の復号化方法およびプログラム
JP6876423B2 (ja) ストリーム暗号における内部状態の初期化装置、方法及びプログラム
ODUNAYO SCHOOL OF POSTGRADUATE STUDIES (SPGS)
KR100840944B1 (ko) 역믹스컬럼블록 장치 및 이를 이용한 곱셈연산방법

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140731

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150130

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150210

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150413

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20150908

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20151006

R150 Certificate of patent or registration of utility model

Ref document number: 5822757

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150