JP2010181789A - 情報処理装置及び情報処理方法及びプログラム - Google Patents

情報処理装置及び情報処理方法及びプログラム Download PDF

Info

Publication number
JP2010181789A
JP2010181789A JP2009027340A JP2009027340A JP2010181789A JP 2010181789 A JP2010181789 A JP 2010181789A JP 2009027340 A JP2009027340 A JP 2009027340A JP 2009027340 A JP2009027340 A JP 2009027340A JP 2010181789 A JP2010181789 A JP 2010181789A
Authority
JP
Japan
Prior art keywords
feedback shift
linear feedback
bit
shift registers
order
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.)
Granted
Application number
JP2009027340A
Other languages
English (en)
Other versions
JP5188414B2 (ja
Inventor
Toru Tanmachi
亨 反町
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric 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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2009027340A priority Critical patent/JP5188414B2/ja
Publication of JP2010181789A publication Critical patent/JP2010181789A/ja
Application granted granted Critical
Publication of JP5188414B2 publication Critical patent/JP5188414B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

【課題】効率的な処理を実現しながら、安全性に関しても乱数性と周期性を保証し、かつ、数学的に安全性の証明可能な、ストリーム暗号方式に対応した擬似乱数を生成する。
【解決手段】順序攪拌部103が、各線形フィードバックシフトレジスタ101からのビット列を結合するとともに、ビット列の順序を線形フィードバックシフトレジスタ102からの出力値に基づいて攪拌し、順序攪拌後のビット列に対して、数学的に安全性が証明可能な非線形変換部104が更に攪拌することで、次に生成される擬似乱数を推定することが困難であり、かつ周期が大きく、数学的に安全性の証明可能な擬似乱数を生成する。
【選択図】図1

Description

本発明は、この発明は、ストリーム暗号方式に対応する擬似乱数生成技術に関する。
近年、コンピュータや通信装置を利用した様々なサービスが提供され、それらのサービスでは、通信の秘匿や認証を実現するために、暗号技術を用いていることが多い。
暗号化方式として、最も一般的なものは、共通の鍵で暗号化・復号化を行う共通鍵暗号化方式であるが、この共通暗号化方式は、ブロック暗号方式とストリーム暗号方式の2つに大別される。
ブロック暗号方式の方が現在一般的に用いられていることが多い方式であるが、ストリーム暗号に関しても後者の方が処理速度で優れている場合が多く、近年再度注目を集める技術分野である。
上記したストリーム暗号を生成するための方法および装置の一例が以下の特許文献に開示されている。
特表2002−536912号公報 国際公開WO2006/100801号公報
従来、ストリーム暗号方式は、ビット単位で暗号化処理を行うものが一般的であり、その構成として、クロック制御は最も一般的として利用されている。
特許文献1における従来技術では、処理効率を向上させる効果の目的で暗号化処理の単位がビット単位からワード単位に変更されているが、ワード単位で暗号化するストリーム暗号化方式においては、クロック制御を用いた場合、ワード長×N(Nはクロック数)の生成された擬似乱数を利用することなく棄却され、暗号化効率の観点から、クロック制御が用いられていない。
上記の課題を踏まえて、特許文献2における従来技術では、ワード単位で暗号化を行う際に効率的な処理を実現しながら安全性を向上させ、かつ、乱数性と周期性を保証することが可能であることが開示されている。
しかし、ブロック暗号方式では確立されている差分解読法や線形解読法のような非常に一般的な攻撃方法に対する安全性指標がストリーム暗号方式には存在しておらず、ストリーム暗号の方式ごとに安全性評価の方式を検討し、安全性の議論を行う必要がある。
本発明は上記事情に基づいてなされたものであり、効率的な処理を実現しながら、安全性に関しても乱数性と周期性を保証し、かつ、数学的に安全性の証明可能な、ストリーム暗号方式に対応した擬似乱数生成装置等を提供することを主な目的とする。
本発明に係る情報処理装置は、
それぞれが所定ビット長のビット列を出力する順序付けられている複数の第1の線形フィードバックシフトレジスタと、
前記複数の第1の線形フィードバックシフトレジスタから出力された複数のビット列の順序を制御するための制御値を出力する第2の線形フィードバックシフトレジスタと、
前記複数の第1の線形フィードバックシフトレジスタから出力された複数のビット列の順序を前記第2の線形フィードバックシフトレジスタから出力された制御値に基づいて攪拌するとともに、前記複数の第1の線形フィードバックシフトレジスタから出力された複数のビット列を結合する順序攪拌部と、
前記順序攪拌部により攪拌され結合された結合ビット列を入力し、入力した結合ビット列を攪拌する、数学的に安全性が証明可能である非線形変換部と、
前記非線形変換部により攪拌された結合ビット列を用いて処理対象データに対してストリーム暗号方式による暗号及び復号の少なくともいずれかを行うデータ処理部とを有することを特徴とする。
本発明によれば、第1の線形フィードバックシフトレジスタ、第2の線形フィードバックシフトレジスタ及び順序攪拌部による順序攪拌、更に数学的に安全性が証明可能である非線形処理部による攪拌により、次に生成される擬似乱数を推定することが困難であり、かつ周期が大きく、数学的に安全性の証明可能な擬似乱数を生成することが可能となる。
実施の形態1に係る情報処理装置の構成例を示す図。 実施の形態1に係る暗号アルゴリズムを説明する図。 実施の形態1に係るByte置換処理の例を示す図。 実施の形態1に係る非線形変換処理の例を示す図。 実施の形態2に係る暗号アルゴリズムを説明する図。 実施の形態1及び2に係る情報処理装置のハードウェア構成例を示す図。
実施の形態1.
本実施の形態に係る情報処理装置は、ストリーム暗号方式で擬似乱数を生成するものであり、M系列等を発生させる複数の線形フィードバックシフトレジスタ(以下、LFSRとも表記する)の出力をさらに異なる線形フィードバックシフトレジスタの出力によって順序の攪拌を行い、生成されたストリーム系列を、数学的に安全性が証明可能な非線形変換部に入力し処理することで、偏りが無く、入力される秘密情報を知らない限り次に生成される系列が推測困難な擬似乱数を出力するものである。
以下、本実施の形態に係る情報処理装置の詳細を図1〜図4を参照して説明する。
図1は、本実施の形態に係る情報処理装置100の構成例を示す。
図1において、複数の線形フィードバックシフトレジスタ101は、それぞれが所定ビット長のビット列を出力する線形フィードバックシフトレジスタである。各線形フィードバックシフトレジスタ101は、より具体的には、M系列等の周期性の保証された擬似乱数系列を出力する。また、複数の線形フィードバックシフトレジスタ101は、各々順序づけられており、図1ではL1〜LNという順序が付けられている。
線形フィードバックシフトレジスタ101は、第1の線形フィードバックシフトレジスタの例である。
線形フィードバックシフトレジスタ102は、複数の線形フィードバックシフトレジスタ101から出力された複数のビット列の順序を制御するための制御値を出力する。
線形フィードバックシフトレジスタ102は、第2の線形フィードバックシフトレジスタの例である。
順序攪拌部103は、複数の線形フィードバックシフトレジスタ101から出力された複数のビット列の順序を線形フィードバックシフトレジスタ102から出力された制御値に基づいて攪拌するとともに、複数の線形フィードバックシフトレジスタ101から出力された複数のビット列を結合する。
非線形変換部104は、順序攪拌部103により攪拌され結合された結合ビット列を入力し、入力した結合ビット列を非線形変換して攪拌する。非線形変換部104は、数学的に安全性が証明可能である。より具体的には、非線形変換部104は、鍵を入力するとともに、入力した鍵と、入力した鍵が秘密であれば数学的に安全性が証明可能である一方向性関数とを用いて、順序攪拌部103から入力した結合ビット列を攪拌する。
データ処理部105は、非線形変換部104により攪拌された結合ビット列(疑似乱数)を用いて処理対象データに対してストリーム暗号方式による暗号化又は復号を行う。
図1では、データ処理部105は平文系列Pの暗号化を行って暗号文系列Cを得る例を示しているが、データ処理部105は暗号文系列Cの復号を行ってもよい。
次に、図1に示した情報処理装置100を用いて暗号化を行う場合の暗号アルゴリズムの概要を説明する。
図2は、本実施の形態に係る暗号アルゴリズムの例を示す。
図2では、ワード単位を64ビットとし、ワード単位でストリーム暗号方式に従って暗号化する例を説明する。
LFSR1〜8及びLFSRは、ガロア体GF(2)で定義する原始多項式をパラメータにより構成される線形フィードバックシフトレジスタであり、M系列と呼ばれる周期性の保証された擬似乱数系列を生成する構成とする。
図2のLFSR1〜8は、図1の線形フィードバックシフトレジスタ101(第1の線形フィードバックシフトレジスタ)に相当する。つまり、図2では、8個の線形フィードバックシフトレジスタ101を用いている。また、LFSRは、図1の線形フィードバックシフトレジスタ102(第2の線形フィードバックシフトレジスタ)に相当する。
このように、図2に示すように、情報処理装置100は、N(Nは2以上の整数)個の第1の線形フィードバックシフトレジスタを有し、N個の第1の線形フィードバックシフトレジスタは、それぞれ、ガロア体GF(2)(Kは2以上の整数)で定義される原始多項式を生成多項式としてKビット長のビット列を生成する。そして、第2の線形フィードバックシフトレジスタは、ガロア体GF(2)で定義される原始多項式を生成多項式としてNビット長のビット列を制御値として生成する。
なお、図2では、ワードを64ビットとし、8個のLFSR(LFSR1〜8)を用い、各LFSRは8ビットの疑似乱数を出力し、LFSRも8ビットの疑似乱数(制御値)を出力する。
順序攪拌部103は、LFSR1〜8からの出力に、LFSRの出力を適用して、Byte置換処理を行う。
順序攪拌部103のByte置換処理の詳細は、後述する。
また、非線形変換部104の非線形変換処理及び置換64(106)の処理の詳細も、後述する。
なお、置換64(106)は図1には示されておらず、図2において追加された機能である。なお、置換64(106)は省略してもよい。
次に、図2の各要素の動作を説明する。
先ず、8ビット単位×レジスタ段数分の初期値(オールゼロ以外)をそれぞれLFSR1〜8およびLFSRに設定を行う。初期値は、例えば、情報処理装置100のユーザが入力してもよいし、情報処理装置100内のファイル等からCPU(Central Processing Unit)が読み出すようにしてもよい。
また、非線形変換部104の処理に必要な秘密鍵Kの設定も行う。この秘密鍵Kも、情報処理装置100のユーザが入力してもよいし、情報処理装置100内のファイル等からCPUが読み出すようにしてもよい。
次に、設定を行った次のサイクルからそれぞれの線形フィードバックシフトレジスタを動作させ、LFSR1〜9の中の最大のレジスタ段数以上のサイクルが経過したところから、実際の出力として採用する。
次に、順序攪拌部103が、LFSR1〜8のそれぞれから出力される8個の8ビットデータをLFSRから出力される8ビットデータを用いて、バイト単位での置換(Byte置換処理)により順序攪拌を行う(順序攪拌ステップ)。
Byte置換処理の構成としては、図3のようにLFSRから出力される8ビットデータを1ビット毎に分割し、それぞれをSEL1〜SEL8のセレクタ信号とする。
LFSR1〜8から入力される8ビットをLFSRから順番に上位ビット側として並べていき、例えば、LFSRからの8ビットデータとLFSRからの8ビットデータの順番をセレクタ信号SEL1が0の場合はそのままにしておき、SEL1が1の場合はLFSRからの8ビットデータとLFSRからの8ビットデータの順番を8ビット毎入れ替える。
また、LFSRからの8ビットデータとLFSRからの8ビット、LFSRからの8ビットデータとLFSRからの8ビットデータ、LFSRからの8ビットデータとLFSRからの8ビットデータも同様の処理を行う。
次の段階では、LFSRとLFSRからの16ビットデータ(順番が入れ替わっている場合がある)とLFSRとLFSRからの16ビットデータ(順番が入れ替わっている場合がある)を結合するとともに、セレクタ信号SEL5が0の場合は、この32ビットデータの順序をそのままにし、セレクタ信号SEL5が1の場合は、1番目の8ビットデータと3番目の8ビットデータの順序を入れ替えるとともに2番目の8ビットデータと4番目の8ビットデータの順序を入れ替える。LFSR〜LFSRの32ビットデータについても同様の処理を行う。
次の段階では、LFSR〜LFSRの32ビットデータのうちの前半16ビットデータをLFSR〜LFSRの32ビットデータの後半16ビットデータと結合し、セレクタ信号SEL7が0の場合は、この32ビットデータの順序をそのままにし、セレクタ信号SEL7が1の場合は、1番目の8ビットデータと3番目の8ビットデータの順序を入れ替えるとともに2番目の8ビットデータと4番目の8ビットデータの順序を入れ替える。また、LFSR〜LFSRの32ビットデータのうちの後半16ビットデータをLFSR〜LFSRの32ビットデータの前半16ビットデータと結合し、セレクタ信号SEL8が0の場合は、この32ビットデータの順序をそのままにし、セレクタ信号SEL8が1の場合は、1番目の8ビットデータと3番目の8ビットデータの順序を入れ替えるとともに2番目の8ビットデータと4番目の8ビットデータの順序を入れ替える。
最後に、図3に示す位置関係で、順序攪拌された8ビット×8=64ビットのデータを非線形変換部104に入力する。
非線形変換部104では、入力された64ビットデータに対して以下に示す非線形変換を行う(非線形変換ステップ)。
非線形変換部104の構成としては、一般に数学的に安全性が証明可能な構成として暗号アルゴリズムMISTY(登録商標)が知られており、本実施の形態の構成としてもMISTY2(登録商標)のようなFO関数をN段(N≧3)重ねた変型フェイステル型の構成を採用する。
本実施の形態に係る非線形変換部104は、たとえば、図4に示す構成とする。
本実施の形態では、図4(a)に示すFO関数〜FO関数の各々の内部構成が、図4(b)に示す構成となっており、図4(b)に示す関数FI関数〜FI関数の各々の内部構成が図4(c)に示す構成となっている。
また、一般にFO関数の段数Nが大きくなると処理遅延が大きくなり処理速度に影響を及ぼす原因となるが、本実施の形態では、非線形変換部104は線形フィードバックシフトレジスタLFSR1〜9に対してフィードバックを行わないので、非線形変換部104の出力結果が線形フィードバックシフトレジスタLFSR1〜9の処理と独立に動作可能であることから、FO関数1段毎にレジスタ200を挿入することで、各FO関数の演算処理をパイプライン制御により行うことができ、ハードウェア実装のような場合には処理遅延を短くすることが可能であり、従来提案されているストリーム暗号方式以上の高速処理を実現するものである。
また、更なる攪拌効果を期待し、非線形変換部104の出力64ビットに対して、ビット置換を行う関数である置換64(106)により攪拌を行い、その攪拌を行った結果を擬似乱数系列とする。
置換64(106)の構成としては、複数の64ビット置換行列を保持し、LFSRから出力される8ビットデータの情報により選択して使用することとする。
本実施の形態の構成としては、2種類の64ビット置換行列を持ち、LFSRの出力のParityの結果により、置換行列を選択する構成を採用する。
最後に、データ処理部105が、置換64(106)により攪拌された後の64ビットの疑似乱数と平文系列Pとの排他論理和をとることにより、暗号文系列Cが得られる(データ処理ステップ)。
なお、本実施の形態では、LFSR〜LFSR及びLFSRは、それぞれ、パラメータを変更することにより、生成多項式として用いる原始多項式を変更可能である。
また、非線形変換部104は、パラメータを変更することによりFO関数、FI関数、S関数の各段階の演算処理の内容を変更可能である。
このように、本実施の形態によれば、次に生成される擬似乱数を推定することが困難であり、かつ周期が大きく、数学的に安全性の証明可能な擬似乱数を生成することが可能となる。
更に、線形フィードバックシフトレジスタ群の出力の順序を攪拌する順序攪拌部の制御を上記線形フィードバックシフトレジスタ群とは異なる線形フィードバックシフトレジスタの出力を用いることで、線形フィードバックシフトレジスタ群の出力を推測することが困難になるといった効果も得られる。
更に、線形フィードバックシフトレジスタ群の出力を順序攪拌部により攪拌した結果を、数学的に安全性を証明可能とする非線形変換部に入力することで、これまでのストリーム暗号には無かった出力のランダム性を保証することが可能となるといった効果も得られる。
更に、非線形変換部の出力を線形フィードバックシフトレジスタ群へフィードバックしないことにより、特にハードウェア実装の場合には、パイプライン実装が可能となるため、非常に高速に擬似乱数を生成することが可能となる。
以上、本実施の形態では、ワード単位の出力を生成するような複数の線形フィードバックシフトレジスタ(LFSR)群L1〜LNとその複数のLFSRの出力の順序を制御するような線形フィードバックシフトレジスタ(LFSR)LMを保持し、LMの出力によりL1〜LNの出力の順序を攪拌する順序攪拌部とその順序攪拌部から出力されるワード単位のデータを攪拌する非線形変換部、また、非線形変換部によって生成された擬似乱数系列と外部より入力される平文系列Pを排他的論理和EXORの演算を行い暗号文系列Cを生成する暗号化手段を具備するストリーム暗号方式を用いた擬似乱数生成装置を説明した。
また、本実施の形態では、線形フィードバックシフトレジスタL1〜LNおよびLMは、それぞれ処理単位のデータサイズをKビットとした場合にガロア体GF(2)で定義する原始多項式を線形フィードバックシフトレジスタの生成多項式として使用することを説明した。
また、本実施の形態では、線形フィードバックシフトレジスタL1〜LNおよびLMは、上記のガロア体GF(2)で定義する原始多項式をパラメータにより更新可能であることを説明した。
また、本実施の形態では、非線形変換部は、入力される鍵が秘密であることを条件にして、入力されるワード単位のデータが数学的に安全性を証明可能とする一方向性関数を用いて、偏りの無い擬似乱数系列を生成することを説明した。
また、本実施の形態では、非線形変換部は、線形フィードバックシフトレジスタ群へのフィードバックデータを持たないことにより、パイプライン処理を行うことで高速処理が可能であることを説明した。
また、本実施の形態では、非線形変換部は、安全性を証明可能とする枠組みを崩すことなくパラメータにより内部構成部品の更新が可能である。
実施の形態2.
本実施の形態では、ワード単位を64ビットとした場合の別の構成を以下に示す。
図5は、本実施の形態に係る暗号アルゴリズムの例を示す。
図5において、LFSR及びLFSRは、ガロア体GF(232)で定義する原始多項式をパラメータにより構成される線形フィードバックシフトレジスタであり、M系列と呼ばれる周期性の保証された擬似乱数系列を生成する構成とする。
また、LFSRは、ガロア体GF(2)で定義する原始多項式をパラメータにより構成される線形フィードバックシフトレジスタであり、M系列と呼ばれる周期性の保証された擬似乱数系列を生成する構成とする。
LFSR及びLFSRが、図1の線形フィードバックシフトレジスタ101に相当し、LFSRが、図1の線形フィードバックシフトレジスタ102に相当する。
また、本実施の形態では、順序攪拌部103は、32ビット単位の動的スワップを行う。
非線形変換部104、データ処理部105及び置換64(106)は、図2と同様である。
本実施の形態では、32ビット単位×レジスタ段数分の初期値(オールゼロ以外)をそれぞれLFSR1,2およびレジスタ段数分の初期値(オールゼロ以外)をLFSRに設定を行う。また、非線形変換部104の処理に必要な秘密鍵Kの設定も行う。
設定を行った次のサイクルからそれぞれの線形フィードバックシフトレジスタを動作させ、LFSR1〜3の中の最大のレジスタ段数以上のサイクルが経過したところから、実際の出力として採用する。
順序攪拌部103は、LFSR1,2のそれぞれから出力される2個の32ビットデータをLFSRから出力される1ビットデータを用いて、32ビット単位で置換(動的スワップ処理)することにより順序攪拌を行う。
動的スワップ処理の構成としてはLFSRから出力されるビットデータをセレクタ信号とし、LFSR1,2から入力されるそれぞれ32ビットデータをLFSRを上位ビット側、LFSRを下位ビット側として並べ、例えば、LFSRとLFSRの順番をセレクタ信号SEL1が0の場合はそのままにしておき、SEL1が1の場合はLFSRとLFSRの順番を32ビット毎入れ替えると言った操作を行うものである。
順序攪拌された32ビット×2=64ビットのデータを非線形変換部104に入力し処理を行う。
非線形変換部104の構成としては、実施の形態1と同様に一般に数学的に安全性が証明可能な構成として暗号アルゴリズムMISTY(登録商標)が知られており、本実施の形態の構成としてもMISTY2(登録商標)のようなFO関数をN段(N≧3)重ねた変型フェイステル型の構成を採用する。
一般にFO関数の段数Nが大きくなると処理遅延が大きくなり処理速度に影響を及ぼす原因となるが、本実施の形態では、非線形変換部104の出力結果が線形フィードバックシフトレジスタLFSR1〜3の処理と独立に動作可能であることから、FO関数1段毎にレジスタを挿入することでハードウェア実装のような場合には処理遅延を短くすることが可能であり、従来提案されているストリーム暗号方式以上の高速処理を実現するものである。
なお、本実施の形態の構成では、非線形変換部104の構成としてMISTY2(登録商標)の構成を使用したが、HierocryptのようなSPN(Substitution Permutation Network)型の数学的に安全性が証明可能な方式を非線形変換部104として用いることも可能である。
また、更なる攪拌効果を期待し、非線形変換部104の出力64ビットに対して、ビット置換を行う関数である置換64(106)により攪拌を行い、その攪拌を行った結果を擬似乱数系列とする。置換64(106)の構成としては、複数の64ビット置換行列を保持し、LFSRから出力される1ビットデータの情報により選択して使用することとする。
本実施の形態の構成としては、2種類の64ビット置換行列を持ち、LFSRの出力により、置換行列を選択する構成を採用する。
最後に、実施の形態1、2に示した情報処理装置100のハードウェア構成例について説明する。
図6は、実施の形態1、2に示す情報処理装置100のハードウェア資源の一例を示す図である。
なお、図6の構成は、あくまでも情報処理装置100のハードウェア構成の一例を示すものであり、情報処理装置100のハードウェア構成は図6に記載の構成に限らず、他の構成であってもよい。
図6において、情報処理装置100は、プログラムを実行するCPU911(Central Processing Unit、中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、プロセッサともいう)を備えている。
CPU911は、バス912を介して、例えば、ROM(Read Only Memory)913、RAM(Random Access Memory)914、通信ボード915、表示装置901、キーボード902、マウス903、LFSR906、磁気ディスク装置920と接続され、これらのハードウェアデバイスを制御する。
更に、CPU911は、FDD904(Flexible Disk Drive)、コンパクトディスク装置905(CDD)、プリンタ装置等と接続していてもよい。また、磁気ディスク装置920の代わりに、光ディスク装置、メモリカード(登録商標)読み書き装置などの記憶装置でもよい。
RAM914は、揮発性メモリの一例である。ROM913、FDD904、CDD905、磁気ディスク装置920の記憶媒体は、不揮発性メモリの一例である。これらは、記憶装置の一例である。
通信ボード915、キーボード902、マウス903、FDD904などは、入力装置の一例である。
また、通信ボード915、表示装置901などは、出力装置の一例である。
通信ボード915は、ネットワークに接続されている。例えば、通信ボード915は、LAN(ローカルエリアネットワーク)、インターネット、WAN(ワイドエリアネットワーク)、SAN(ストレージエリアネットワーク)などに接続されていても構わない。
磁気ディスク装置920には、オペレーティングシステム921(OS)、ウィンドウシステム922、プログラム群923、ファイル群924が記憶されている。
プログラム群923のプログラムは、CPU911がオペレーティングシステム921、ウィンドウシステム922を利用しながら実行する。
また、RAM914には、CPU911に実行させるオペレーティングシステム921のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。
また、RAM914には、CPU911による処理に必要な各種データが格納される。
また、ROM913には、BIOS(Basic Input Output System)プログラムが格納され、磁気ディスク装置920にはブートプログラムが格納されている。
情報処理装置100の起動時には、ROM913のBIOSプログラム及び磁気ディスク装置920のブートプログラムが実行され、BIOSプログラム及びブートプログラムによりオペレーティングシステム921が起動される。
上記プログラム群923には、実施の形態1、2の説明において「〜部」として説明している機能を実行するプログラムが記憶されている。プログラムは、CPU911により読み出され実行される。
ファイル群924には、実施の形態1、2の説明において、「〜の攪拌」、「〜の暗号化」、「〜の復号」、「〜の生成」、「〜の更新」、「〜の設定」、「〜の登録」、「〜の選択」等として説明している処理の結果を示す情報やデータや信号値や変数値やパラメータが、「〜ファイル」や「〜データベース」の各項目として記憶されている。
「〜ファイル」や「〜データベース」は、ディスクやメモリなどの記録媒体に記憶される。ディスクやメモリなどの記憶媒体に記憶された情報やデータや信号値や変数値やパラメータは、読み書き回路を介してCPU911によりメインメモリやキャッシュメモリに読み出され、抽出・検索・参照・比較・演算・計算・処理・編集・出力・印刷・表示などのCPUの動作に用いられる。
抽出・検索・参照・比較・演算・計算・処理・編集・出力・印刷・表示のCPUの動作の間、情報やデータや信号値や変数値やパラメータは、メインメモリ、レジスタ、キャッシュメモリ、バッファメモリ等に一時的に記憶される。
また、実施の形態1、2の説明において「〜部」として説明しているものは、「〜回路」、「〜装置」、「〜機器」であってもよく、また、「〜ステップ」、「〜手順」、「〜処理」であってもよい。すなわち、「〜部」として説明しているものは、ROM913に記憶されたファームウェアで実現されていても構わない。或いは、ソフトウェアのみ、或いは、素子・デバイス・基板・配線などのハードウェアのみ、或いは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実施されても構わない。ファームウェアとソフトウェアは、プログラムとして、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、DVD等の記録媒体に記憶される。プログラムはCPU911により読み出され、CPU911により実行される。すなわち、プログラムは、実施の形態1、2の「〜部」としてコンピュータを機能させるものである。あるいは、実施の形態1、2の「〜部」の手順や方法をコンピュータに実行させるものである。
このように、実施の形態1、2に示す情報処理装置100は、処理装置たるCPU、記憶装置たるメモリ、磁気ディスク等、入力装置たるキーボード、マウス、通信ボード等、出力装置たる表示装置、通信ボード等を備えるコンピュータであり、上記したように「〜部」として示された機能をこれら処理装置、記憶装置、入力装置、出力装置を用いて実現するものである。
100 情報処理装置、101 線形フィードバックシフトレジスタ、102 線形フィードバックシフトレジスタ、103 順序攪拌部、104 非線形変換部、105 データ処理部、106 置換64、200 レジスタ。

Claims (9)

  1. それぞれが所定ビット長のビット列を出力する順序付けられている複数の第1の線形フィードバックシフトレジスタと、
    前記複数の第1の線形フィードバックシフトレジスタから出力された複数のビット列の順序を制御するための制御値を出力する第2の線形フィードバックシフトレジスタと、
    前記複数の第1の線形フィードバックシフトレジスタから出力された複数のビット列の順序を前記第2の線形フィードバックシフトレジスタから出力された制御値に基づいて攪拌するとともに、前記複数の第1の線形フィードバックシフトレジスタから出力された複数のビット列を結合する順序攪拌部と、
    前記順序攪拌部により攪拌され結合された結合ビット列を入力し、入力した結合ビット列を攪拌する、数学的に安全性が証明可能である非線形変換部と、
    前記非線形変換部により攪拌された結合ビット列を用いて処理対象データに対してストリーム暗号方式による暗号及び復号の少なくともいずれかを行うデータ処理部とを有することを特徴とする情報処理装置。
  2. 前記非線形変換部は、
    鍵を入力し、
    入力した鍵と、入力した鍵が秘密であれば数学的に安全性が証明可能である一方向性関数とを用いて、前記順序攪拌部から入力した結合ビット列を攪拌することを特徴とする請求項1に記載の情報処理装置。
  3. 前記非線形変換部は、
    前記複数の第1の線形フィードバックシフトレジスタ及び前記第2の線形フィードバックシフトレジスタのいずれに対してもフィードバックを行わないことを特徴とする請求項1又は2に記載の情報処理装置。
  4. 前記非線形変換部は、
    前記順序攪拌部から入力した結合ビット列の攪拌のための複数段階の演算処理をパイプライン制御により行うことを特徴とする請求項1〜3のいずれかに記載の情報処理装置。
  5. 前記非線形変換部は、
    パラメータを変更することにより各段階の演算処理の内容を変更可能であることを特徴とする請求項4に記載の情報処理装置。
  6. 前記情報処理装置は、
    N(Nは2以上の整数)個の第1の線形フィードバックシフトレジスタを有し、
    前記N個の第1の線形フィードバックシフトレジスタは、それぞれ、
    ガロア体GF(2)(Kは2以上の整数)で定義される原始多項式を生成多項式としてKビット長のビット列を生成し、
    前記第2の線形フィードバックシフトレジスタは、
    ガロア体GF(2)で定義される原始多項式を生成多項式としてNビット長のビット列を前記制御値として生成し、
    前記順序攪拌部は、
    前記N個の第1の線形フィードバックシフトレジスタから出力されたN個のKビット長のビット列の順序を前記第2の線形フィードバックシフトレジスタから出力されたN個の制御値に基づいて攪拌するとともに、前記複数の第1の線形フィードバックシフトレジスタから出力されたN個のKビット長のビット列を結合することを特徴とする請求項1〜5のいずれかに記載の情報処理装置。
  7. 前記複数の第1の線形フィードバックシフトレジスタ及び前記第2の線形フィードバックシフトレジスタは、それぞれ、
    生成多項式として用いる原始多項式を変更可能であることを特徴とする請求項6に記載の情報処理装置。
  8. それぞれが所定ビット長のビット列を出力する順序付けられている複数の第1の線形フィードバックシフトレジスタと、
    前記複数の第1の線形フィードバックシフトレジスタから出力された複数のビット列の順序を制御するための制御値を出力する第2の線形フィードバックシフトレジスタとを有するコンピュータが行う情報処理方法であって、
    前記コンピュータが、前記複数の第1の線形フィードバックシフトレジスタから出力された複数のビット列の順序を前記第2の線形フィードバックシフトレジスタから出力された制御値に基づいて攪拌するとともに、前記複数の第1の線形フィードバックシフトレジスタから出力された複数のビット列を結合する順序攪拌ステップと、
    前記コンピュータが、前記順序攪拌ステップにより攪拌され結合された結合ビット列を攪拌する、数学的に安全性が証明可能である非線形変換ステップと、
    前記コンピュータが、前記非線形変換ステップにより攪拌された結合ビット列を用いて処理対象データに対してストリーム暗号方式による暗号及び復号の少なくともいずれかを行うデータ処理ステップとを有することを特徴とする情報処理方法。
  9. それぞれが所定ビット長のビット列を出力する順序付けられている複数の第1の線形フィードバックシフトレジスタと、
    前記複数の第1の線形フィードバックシフトレジスタから出力された複数のビット列の順序を制御するための制御値を出力する第2の線形フィードバックシフトレジスタとを有するコンピュータに、
    前記複数の第1の線形フィードバックシフトレジスタから出力された複数のビット列の順序を前記第2の線形フィードバックシフトレジスタから出力された制御値に基づいて攪拌するとともに、前記複数の第1の線形フィードバックシフトレジスタから出力された複数のビット列を結合する順序攪拌処理と、
    前記順序攪拌処理により攪拌され結合された結合ビット列を攪拌する、数学的に安全性が証明可能である非線形変換処理と、
    前記非線形変換処理により攪拌された結合ビット列を用いて処理対象データに対してストリーム暗号方式による暗号処理及び復号処理の少なくともいずれかのデータ処理とを実行させることを特徴とするプログラム。
JP2009027340A 2009-02-09 2009-02-09 情報処理装置及び情報処理方法及びプログラム Active JP5188414B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009027340A JP5188414B2 (ja) 2009-02-09 2009-02-09 情報処理装置及び情報処理方法及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009027340A JP5188414B2 (ja) 2009-02-09 2009-02-09 情報処理装置及び情報処理方法及びプログラム

Publications (2)

Publication Number Publication Date
JP2010181789A true JP2010181789A (ja) 2010-08-19
JP5188414B2 JP5188414B2 (ja) 2013-04-24

Family

ID=42763382

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009027340A Active JP5188414B2 (ja) 2009-02-09 2009-02-09 情報処理装置及び情報処理方法及びプログラム

Country Status (1)

Country Link
JP (1) JP5188414B2 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012023500A1 (ja) 2010-08-16 2012-02-23 株式会社エヌ・ティ・ティ・ドコモ 移動端末装置及び無線通信方法
JP2012239634A (ja) * 2011-05-19 2012-12-10 Kyoraku Sangyo Kk 遊技機
JP2014186180A (ja) * 2013-03-25 2014-10-02 Mega Chips Corp ストリーム暗号装置
US8996947B2 (en) 2012-01-04 2015-03-31 Samsung Electronics Co., Ltd. Generation of program data for nonvolatile memory
JP2016103799A (ja) * 2014-11-28 2016-06-02 ソニー株式会社 暗号処理装置、および暗号処理方法、並びにプログラム

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0243594A (ja) * 1988-08-03 1990-02-14 Matsushita Electric Ind Co Ltd 二元擬似乱数発生器
JPH03173238A (ja) * 1989-12-01 1991-07-26 Matsushita Electric Ind Co Ltd データスクランブル装置
JPH10240500A (ja) * 1997-02-28 1998-09-11 Toshiba Corp 乱数生成装置及び方法、暗号化装置及び方法、復号装置及び方法、並びにストリーム暗号システム
WO2004032098A1 (ja) * 2002-10-07 2004-04-15 Kobayashi, Akira 疑似乱数発生方法及び疑似乱数発生器
WO2006100801A1 (ja) * 2005-03-23 2006-09-28 Kddi Corporation キーストリーム暗号化装置および方法ならびにプログラム

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0243594A (ja) * 1988-08-03 1990-02-14 Matsushita Electric Ind Co Ltd 二元擬似乱数発生器
JPH03173238A (ja) * 1989-12-01 1991-07-26 Matsushita Electric Ind Co Ltd データスクランブル装置
JPH10240500A (ja) * 1997-02-28 1998-09-11 Toshiba Corp 乱数生成装置及び方法、暗号化装置及び方法、復号装置及び方法、並びにストリーム暗号システム
WO2004032098A1 (ja) * 2002-10-07 2004-04-15 Kobayashi, Akira 疑似乱数発生方法及び疑似乱数発生器
WO2006100801A1 (ja) * 2005-03-23 2006-09-28 Kddi Corporation キーストリーム暗号化装置および方法ならびにプログラム

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
CSNG199800579003; 松井 充: 'ブロック暗号アルゴリズムMISTY' 電子情報通信学会技術研究報告 Vol. 96, No. 167, 19960722, pp. 35-42 *
CSNG200800843007; 高橋 賢司, 市川 哲也, 反町 亨: 'FPGAの部分再構成技術を利用した証明可能安全性を持つブロック暗号への可変鍵適用' 電子情報通信学会技術研究報告 Vol. 108, No.207, 200809, pp. 63-68 *
JPN6012067258; 松井 充: 'ブロック暗号アルゴリズムMISTY' 電子情報通信学会技術研究報告 Vol. 96, No. 167, 19960722, pp. 35-42 *
JPN6012067260; 高橋 賢司, 市川 哲也, 反町 亨: 'FPGAの部分再構成技術を利用した証明可能安全性を持つブロック暗号への可変鍵適用' 電子情報通信学会技術研究報告 Vol. 108, No.207, 200809, pp. 63-68 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012023500A1 (ja) 2010-08-16 2012-02-23 株式会社エヌ・ティ・ティ・ドコモ 移動端末装置及び無線通信方法
JP2012239634A (ja) * 2011-05-19 2012-12-10 Kyoraku Sangyo Kk 遊技機
US8996947B2 (en) 2012-01-04 2015-03-31 Samsung Electronics Co., Ltd. Generation of program data for nonvolatile memory
JP2014186180A (ja) * 2013-03-25 2014-10-02 Mega Chips Corp ストリーム暗号装置
JP2016103799A (ja) * 2014-11-28 2016-06-02 ソニー株式会社 暗号処理装置、および暗号処理方法、並びにプログラム

Also Published As

Publication number Publication date
JP5188414B2 (ja) 2013-04-24

Similar Documents

Publication Publication Date Title
JP4905000B2 (ja) 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
Benvenuto Galois field in cryptography
JP6900176B2 (ja) ハードウェア支援型の擬似乱数の高速生成
JP4728657B2 (ja) 回転バッファを用いたストリーム暗号設計
US9503256B2 (en) SMS4 acceleration hardware
JP2006003905A (ja) 情報漏れ攻撃を防止するためのガロア体上の乗算方法及び装置、逆変換装置、そしてaesバイト置換演算装置
JP2004505289A (ja) コンピュータで効率的な線形フィードバック・シフト・レジスタ
JP2008145791A (ja) 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
JP2005215688A (ja) S−box演算を用いるハードウェア暗号化/復号化装置及び、その方法
JP6735926B2 (ja) 暗号化装置、復号装置、暗号化方法、復号方法、暗号化プログラム及び復号プログラム
JP5188414B2 (ja) 情報処理装置及び情報処理方法及びプログラム
JP3735670B2 (ja) 乱数列生成装置、暗号化復号化装置、乱数列生成方法、暗号化復号化方法、ならびに、プログラム
US11093213B1 (en) Cryptographic computer machines with novel switching devices
JP5528281B2 (ja) ハッシュ値演算装置
JP4709685B2 (ja) 擬似乱数生成装置、擬似乱数生成方法および擬似乱数生成プログラム並びに暗号化装置および復号化装置
Rose KISS: A bit too simple
JP5354914B2 (ja) 暗号処理装置及び復号処理装置及びプログラム
Paar et al. Stream ciphers
JP4733793B2 (ja) 暗号化・復号化システム、暗号化装置、復号化装置、暗号化方法、復号化方法、およびプログラム
JP2006135969A (ja) 情報処理装置、情報処理方法及びプログラム
JP2005309148A (ja) データ変換装置およびデータ変換方法
JP4990843B2 (ja) 暗号演算装置、その方法、及びプログラム
JP5268413B2 (ja) 開示制限処理装置及びデータ処理システム及びプログラム
WO2021201780A1 (en) Method and system for white-box implementation of a stream cipher
Abubaker Probabilistic, lightweight cryptosystems based on finite automata

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20111024

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20121214

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: 20121225

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130122

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20160201

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 5188414

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250