JP4828068B2 - コンピュータで効率的な線形フィードバック・シフト・レジスタ - Google Patents

コンピュータで効率的な線形フィードバック・シフト・レジスタ Download PDF

Info

Publication number
JP4828068B2
JP4828068B2 JP2001549180A JP2001549180A JP4828068B2 JP 4828068 B2 JP4828068 B2 JP 4828068B2 JP 2001549180 A JP2001549180 A JP 2001549180A JP 2001549180 A JP2001549180 A JP 2001549180A JP 4828068 B2 JP4828068 B2 JP 4828068B2
Authority
JP
Japan
Prior art keywords
lfsr
binary data
word
bit
bits
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.)
Expired - Fee Related
Application number
JP2001549180A
Other languages
English (en)
Other versions
JP2004505289A (ja
JP2004505289A5 (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.)
Honeywell International Inc
Original Assignee
Honeywell International Inc
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 Honeywell International Inc filed Critical Honeywell International Inc
Publication of JP2004505289A publication Critical patent/JP2004505289A/ja
Publication of JP2004505289A5 publication Critical patent/JP2004505289A5/ja
Application granted granted Critical
Publication of JP4828068B2 publication Critical patent/JP4828068B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • G06F7/582Pseudo-random number generators
    • G06F7/584Pseudo-random number generators using finite field arithmetic, e.g. using a linear feedback shift register
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/58Indexing scheme relating to groups G06F7/58 - G06F7/588
    • G06F2207/582Parallel finite field implementation, i.e. at least partially parallel implementation of finite field arithmetic, generating several new bits or trits per step, e.g. using a GF multiplier

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Executing Machine-Instructions (AREA)
  • Storage Device Security (AREA)

Description

【0001】
(発明の分野)
本発明は、一般には、擬似乱数ジェネレータ(PRNG)に関し、より詳細には、平文と組み合わせることにより平文を暗号化して暗号文にするためのキーストリームや、暗号文と組み合わせることにより暗号文を解読して平文にするためのキーストリームなどの擬似ランダム・ビットのキーストリームを生成するために、線形フィードバック・シフト・レジスタを用いる秘密鍵ストリーム暗号の暗号システムなどのシステムに関する。
【0002】
(発明の背景)
擬似乱数ジェネレータ(PRNG)は、暗号システム、モンテ・カルロ・シミュレーション・システム、ゲーム、およびヒューリスティックな設計システム(例えばゲート・アレイの配置やルーティングのシステム)など、各種のシステムで使用される。詳細には、暗号システムは、許可された受信者しかその暗号文を元の平文に変換できないように、暗号法を行って平文を暗号文に変換する。暗号化(encryption、enciphering)は、平文を暗号文に変換するプロセスである。復号(decryption、deciphering)は、暗号文を平文に変換するプロセスである。
【0003】
暗号システムでは、暗号鍵と呼ばれるパラメータを用いて、平文が無許可の者によって容易に暴かれるのを妨げる。送信側は、所与の平文を、特定の暗号鍵によって選択される多種の可能な暗号文に変換する。暗号文を受信する側は、解読鍵と称されるパラメータを用いてその暗号文を解読する。公開鍵の暗号システムでは、暗号鍵は公開するが解読鍵は秘密のままにする。したがって、公開鍵暗号システムでは、解読鍵は、暗号鍵から推論することが計算上不可能でなくてはならない。秘密鍵の暗号システムでは、通例、送信側および受信側が、暗号化および解読の両方に使用される共通鍵を共用する。このような秘密鍵の暗号システムでは、共通鍵は変更することができ、また秘密の状態に保持しなければならない。
【0004】
一般に、秘密鍵暗号システムは、ブロック暗号の暗号システムか、またはストリーム暗号の暗号システムとして実装される。ブロック暗号の暗号システムは平文をブロックに分割し、ステートレスな変換を使用して各ブロックを個別に暗号化する。ブロック暗号の暗号システムでは、1つの固定した共通秘密鍵を用いて特定の平文ブロックの異なる出現を暗号化した場合、それらの出現はすべて、同じ対応暗号文ブロックに暗号化される。したがって、ブロック・サイズは、暗号文ブロック間の各種パターンの出現頻度を分析する暗号解読者による攻撃を達成させないために、十分な大きさに選択することが好ましい。ブロック・サイズの例は、64ビットおよび128ビットである。
【0005】
ストリーム暗号の暗号システムでは、通例、暗号化の進行に従って展開するステートフルな変換を使用して、または単語単位で平文を暗号化する。暗号文のバイナリ・データ・シーケンスとして送信するために平文バイナリ・データ・シーケンスを暗号化する際、共通の秘密鍵は、擬似ランダム・ビット・ジェネレータを制御してキーストリームと呼ばれる長いバイナリ・データ・シーケンスを作成するパラメータである。ストリーム暗号の暗号システムは暗号コンバイナを含み、これはキーストリームと平文のシーケンスを組み合わせる。暗号コンバイナは、通例、ビットワイズのモジュロ2加算を実行する、排他的論理和(XOR)のビットワイズ論理関数を用いて実装される。暗号コンバイナは、暗号文を生成する。受信側では、共通の秘密鍵が、受信側の擬似ランダム・ビット・ジェネレータを制御して解読キーストリームを生成する。解読キーストリームは解読コンバイナと組み合わされて、暗号文を解読し、受信者に平文を提供する。受信側の解読コンバイナの動作は、送信側の暗号コンバイナ動作の逆でなければならない。この理由から、最も一般的なコンバイナ動作は、それ自体の逆であるビットワイズのXORである。
【0006】
ストリーム暗号の暗号システムの問題の1つは、短くランダムな鍵から、長く、統計的に均質で、予測することが不可能なキーストリーム中のバイナリ・データ・シーケンスを生成することが難しいことである。暗号法のキーストリームでは、そのデータの妥当な部分と十分なコンピュータ資源を与えられても、そのシーケンスについてそれ以上知ることを不可能にするためにそのようなシーケンスが望ましい。
【0007】
暗号的にセキュアなキーストリームPRNGには、4つの一般的な要件がある。第1に、キーストリームの周期は、送信メッセージの長さに対応するのに十分な長さでなければならない。第2に、キーストリームの出力ビットは、良好な統計的プロパティを有さなければならない(例えば、値が均質に分散しているなど)。第3に、キーストリームの出力ビットは、生成が容易でなければならない。第4に、キーストリームの出力ビットは、予測が困難なものでなければならない。例えば、PRNGと、最初のN個の出力ビットa(0)、a(1)、...、a(N−1)を与えられた場合に、シーケンス中の(N+1)番目のビットa(N)を予測することが、50%以上の確率で計算的に不可能でなければならない。すなわち、キーストリームの出力シーケンスの所与の部分を与えられた場合に、暗号解読者が、それより後の他のビットまたはそれより前の他のビットを生成することができてはならない。
【0008】
ストリーム暗号の暗号システムで用いられるPRNGには、フィードバック・シフト・レジスタ(FSR)をしばしば利用するが、このレジスタは、N個の記憶要素と、それより前に生成された要素a(t−N)、a(t−N+1)、...、a(t−1)との関係でシーケンスの新しい各要素a(t)を表すフィードバック関数とを含む。FSRの個々の記憶要素はステージと呼ばれ、バイナリ信号a(0)、a(1)、a(2)、....、a(N−1)が初期データとしてステージにロードされて、キーストリーム・シーケンスを生成する。FSRによって生成されるキーストリーム・シーケンスの周期は、ステージの数と、フィードバック関数の詳細の両者によって決まる。N個のステージを持つFSRが正則のフィードバック関数を使用して生成するキーストリーム・シーケンスの最大の周期は2Nであり、これはN個のステージを有するFSRの可能な状態の数を表す。
【0009】
フィードバック関数が線形であるか非線形であるかに応じて、FSRはそれぞれ、線形フィードバック・シフト・レジスタ(LFSR)、または非線形フィードバック・シフト・レジスタ(NLFSR)と呼ばれる。
【0010】
詳細には、LFSRは、ストリーム暗号の暗号システム用の多くの擬似ランダム・ビット・ジェネレータで用いられる。長いシーケンス長と良好な統計が保証されたLFSRを設計するのに数学を利用することができるため、LFSRは、大半の他のPRNGよりも好まれる。LFSRのフィードバック関数は、
a(t)=c1a(t-1)XORc2a(t-2)XOR...XORcN-1a(t-N+1)XORcNa(t-N)
の形になり、ciはセット{0,1}の要素である。非ゼロのciと関連付けられる各ステージは、タップと称される。LFSRのフィードバック関数は、次のフィードバック多項式と称されるもので形式的に表すことができる。
【0011】
f(x)=1+c1X+c2XN-2+...+cN-1XN-1+cNXN
ここで、中間にあるXは、数学記号以外の意味を持たない。このフィードバック多項式により、キーストリーム出力シーケンスの周期と統計的振る舞いを決定する。自明の出力を回避するために、ゼロ状態は初期設定から排除すべきである。これにより、LFSRの可能な最大周期が2N−1に制限される。
【0012】
一般に、出力シーケンスの可能な最大周期2N−1を生成するには、LFSRのフィードバック多項式f(x)を原始多項式にしなければならない。原始のフィードバック多項式を用いるLFSRによって生成されるシーケンスは、最大長LFSRシーケンス、または単にm−シーケンスと呼ばれる。しかし、m−シーケンスは、さらに暗号変換を行わないとキーストリームとして使用することができない。この暗号変換を行わないと、N個のステージを有するLFSRの秘密内容(すなわち、LFSRの初期状態とLFSRのフィードバック関数)の鍵は、出力シーケンスの2N個の連続ビットだけから求めることができる。
【0013】
所与の出力シーケンスを生成する最短のLFSRのフィードバック多項式を見つけるための効率的な総合(synthesis)手順が存在する。このようなLFSRの長さは、シーケンスの線形複雑度と称される。この結果、暗号システムで使用するのに適したLFSRは、LFSRが生成するシーケンスの線形複雑度について、キーに依存しない、十分に大きな下限を保証しなければならない。
【0014】
ソフトウェアに実装される従来のLFSRは特に動作が遅い。これは、新しい各1ビットの要素a(t)を得、LFSRの実装に応じてLFSRの各ビットを左または右にシフトすることにより、その新しい要素a(t)をLFSR中にシフトするのに比較的多数の命令を実行する必要があるためである。従来のLFSRに伴うこの問題の詳細な例は、本明細書の好ましい実施形態の項で提供する。
【0015】
ソフトウェアに実装するLFSRは非常に動作が遅いため、各種の技術により、ソフトウェアに実装したLFSRの速度の向上が試みられた。例えば、行列乗算を使用して、複数ビット単位でLFSRを進める。別の速度向上技術は、パラレルのLFSRを実行するものである。しかし、パラレルのLFSRは初期化に時間がかかり、多くの場合それに対応するシリアルの実装に比べて多くのメモリを占める。従来の速度向上技術はいずれも、LFSRをソフトウェアに実装する場合には著しい時間の短縮を提供しない。
【0016】
上記のような理由と、本明細書の好ましい実施形態の説明の項に詳細に示すその他の理由から、ソフトウェアに実装されたLFSRを使用し、また、擬似乱数を生成するLFSRに使用される従来の速度向上技術に比べて大幅に速度の速いPRNGが望まれる。
【0017】
(発明の概要)
本発明は、状態を有する線形フィードバック・シフト・レジスタLFSRを含む擬似乱数ジェネレータ(PRNG)を提供する。このLFSRは、Nビットのバイナリ・データを記憶するN個の記憶要素(ステージ)を含み、この記憶要素は、ワード長Mを有するw個のワードに分割される。T個のタップ・ソースが、ステージからバイナリ・データを提供する。各タップ・ソースは複数のビットを有するが、これはMの倍数であり、Mの倍数であるステージで開始または終了する連続したLFSRステージから取られる。LFSRはまた、T個のタップ・ソースに結合され、一時的な値を提供する線形フィードバック関数も含み、この一時的な値は、Mの倍数である複数ビットを有し、T個のタップ・ソースから提供されるバイナリ・データの線形関数である。LFSRの状態は、記憶要素中のバイナリ・データをMの倍数ビット単位でシフトし、シフトの結果そのままでは空になる記憶要素を埋める一時的な値を提供することによって進められる。したがって、LFSRを進めるたびに、PRNGシーケンス中にMの倍数個の新しいビットが生成される。
【0018】
各タップ・ソースの1ビットは、タップ・ビットである。このタップ・ビットは、LFSRを左シフトした場合は最上位ビットとなり、LFSRを右シフトした場合には最下位ビットとなる。
【0019】
PRNGの一実施形態では、LFSRをソフトウェアに実装する。別の実施形態では、LFSRをハードウェアに実装する。LFSRのソフトウェア実装の一実施形態では、複数のコンピュータ・ワード・サイズにアクセスするコンピュータ・システムにLFSRを実装するが、この場合各コンピュータ・ワード・サイズはMビットを含む。LFSRのソフトウェア実装の一実施形態では、記憶要素中のバイナリ・データをMの倍数のビットずつシフトするためにワードを移動する代わりに、レジスタまたは位置のリネームを使用する。
【0020】
一実施形態では、Nは、Mの倍数よりも1小さい(例えば、M=32ビットの場合、N=127またはN=159)。この理由により、1回のクロック・パルスに応答してLFSRを左シフトする実施形態では、最下位のLFSRワードの最下位ビットはゼロになる。LFSRは、右シフトのLFSRに実装することもできる。
【0021】
一実施形態では、LFSRの状態が進むたびに、一時的な値が1ビット左にシフトされ、ゼロがシフトされて最下位ビットになり、次いで最下位のLFSRワード中に記憶される。一時的な値を1ビットずつ左シフトした結果生じる損失ビットは、キャリーフラグに記憶される。次いで、下位から2番目のLFSRワードの最下位ビットにそのキャリーフラグを記憶して、その前の反復における一時的な値の左シフトによってゼロになった最下位ビットと入れ替える。この実施形態の一形態では、下位から2番目のLFSRワードの最下位ビット中にキャリーフラグを記憶することは、ADD WITH CARRY命令でそのワードにキャリーフラグを加えることによって行われる。
【0022】
本発明によるストリーム暗号の暗号システムの一形態は、キーを受け取り、キーストリームを提供するPRNGを含む。このPRNGは、ワード長MのLFSR出力ワードを提供するために、本発明によるワード単位でシフトするLFSRを含む。ストリーム暗号の暗号システムは、第1のバイナリ・データ・シーケンスとキーストリームを組み合わせて、第2のバイナリ・データ・シーケンスを提供する暗号コンバイナも含む。暗号化動作では、暗号コンバイナが暗号化コンバイナとなり、第1のバイナリ・データ・シーケンスが平文のバイナリ・データ・シーケンスとなり、第2のバイナリ・データ・シーケンスが暗号文のバイナリ・データ・シーケンスとなる。解読動作においては、暗号コンバイナが解読コンバイナとなり、第1のバイナリ・データ・シーケンスが暗号文のバイナリ・データ・シーケンスとなり、第2のバイナリ・データ・シーケンスが平文のバイナリ・データ・シーケンスとなる。
【0023】
本発明によるPRNGはワード単位でシフトするLFSRを含み、これは、擬似乱数を生成するLFSRに使用される従来の速度向上技術に比べてはるかに高速のソフトウェアに実装することができる。
【0024】
(好ましい実施形態の説明)
以下の好ましい実施形態の詳細な説明では、本明細書の一部をなす添付図面を参照するが、これらの図面には、本発明を実施することが可能な特定の実施形態を実例として示している。この他の実施形態を利用することができ、また、本発明の範囲から逸脱することなく構造的または論理的な変更を行ってよいことを理解されたい。したがって、以下の詳細な説明は制限的な意味に解釈すべきでなく、本発明の範囲は頭記の特許請求の範囲によって定義する。
【0025】
本発明による秘密鍵ストリーム暗号による暗号システムを、ブロック図の形で図1の20に概略的に示す。ストリーム暗号の暗号システム20は、コンピュータ・システムなどの送信側22、およびコンピュータ・システムなどの受信側42を含む。
【0026】
送信側22は、擬似乱数ジェネレータ(PRNG)24、および暗号化コンバイナ26を含む。PRNG24は秘密鍵32を受け取り、これがPRNG24を制御することにより、暗号化コンバイナ26に提供される暗号キーストリーム28が生成される。図1に示す実施形態では、初期化ベクトル34もPRNG24に提供され、複数のメッセージに対して同じ秘密鍵32を使用してPRNG24を制御した場合でも、暗号キーストリーム28が同じものにならないことが保証される。暗号化されたすべてのメッセージがわずかに異なることを保証するために、初期化ベクトル34は真の乱数として実施することができる。
【0027】
平文30も暗号化コンバイナ26に提供される。平文30は、バイナリ・データ・シーケンスである。暗号化コンバイナ26は、平文30と暗号キーストリーム28を組み合わせて暗号文36を形成するが、この暗号文もバイナリ・データ・シーケンスである。一実施形態では、暗号化コンバイナ26は、ビットワイズのモジュロ2加算を実行する排他的論理和(XOR)のビットワイズ論理関数を用いて実装される。
【0028】
受信側42は、PRNG44、および暗号化コンバイナ46を含む。PRNG44は秘密鍵32’を受け取るが、これは秘密鍵32と同じ秘密鍵である。PRNG44は秘密鍵32’によって制御されてキーストリーム48を生成し、これが暗号化コンバイナ46に提供される。図1に示す実施形態では、初期化ベクトル34と同じ初期化ベクトルである初期化ベクトル34’がPRNG44に提供され、所与の秘密鍵32/32’および初期化ベクトル34/34’について、暗号キーストリーム48が暗号キーストリーム28と同じものになることを保証する。
【0029】
解読コンバイナ46は暗号文36を受け取り、暗号文36と解読キーストリーム48を組み合わせて平文30’を生成するが、この平文は、平文30と実質的に一致するバイナリ・データ・シーケンスである。暗号キーストリーム28を使用して平文30を暗号化して暗号文36を形成し、暗号キーストリーム28と同じものである解読キーストリーム48を使用して、暗号文36を解読して平文30’を形成することができるように、解読コンバイナ46は、暗号化コンバイナ26のコンバイナ動作の逆のコンバイナ動作を有さなくてはならない。この理由により、最も一般的な暗号コンバイナの動作はビットワイズのXORになり、これは暗号化および解読どちらのコンバイナ動作にも使用することができる。
【0030】
本明細書の発明の背景の項で述べたように、PRNG24および44は、暗号的にセキュアなキーストリーム28および48を生成するために、以下のような一般的特性を備えるとよい。第1に、キーストリームの周期は、送信メッセージの長さに対応するのに十分な大きさでなければならない。第2に、キーストリームの出力ビットは生成が容易でなければならない。第3に、キーストリームの出力ビットは予測が難しいものでなければならない。
【0031】
図1の暗号システム20の送信側22または受信側42を、図2にブロック図の形で概略的に示し、この図ではPRNG24/44をより詳細に表している。本明細書では、本発明によるPRNGを利用する暗号システムとの関連で本発明を説明するが、本発明によるPRNGは、暗号システム、モンテ・カルロ・シミュレーション・システム、ゲーム、およびヒューリスティックな設計システム(例えばゲート・アレイの配置やルーティングのシステムなど)などの各種のシステムで使用することができる。PRNG24/44は、線形フィードバック・シフト・レジスタ(LFSR)100を含む。LFSR100は、N個の記憶要素102と、それまでに生成された要素a(t−N)、a(t−N+1)、...、a(t−1)との関係でシーケンスの新しい各要素a(t)を表す線形フィードバック関数104とを含む。LFSRの記憶要素102はステージと呼ばれ、バイナリ信号a(0)、a(1)、a(2)、...、a(N−1)が初期データとしてステージにロードされて、キーストリーム・シーケンスを生成する。
【0032】
LFSRの記憶要素102は、LFSR0、LFSR1、...、LFSR(w−1)として表される、ワード長Mのw個のLFSRワードに分割される。LFSR0は、その最下位ビット(LSB)に0ビットを含む。これは、LFSR100が、良好な統計を有する最大長のシーケンスを提供するために、線形フィードバック関数104として表す原始多項式のフィードバック多項式f(x)を有さなくてはならないからである。周知の数学によると、原始多項式にするには、記憶要素の数Nは8の倍数であってはならない。各ワード長Mが32ビットである場合、Nおよびwの適切なサイズの例は、N=127、w=4と、N=159、w=5である。
【0033】
LFSRを使用する暗号システムの大半は、特定の平文に対する攻撃を防ぐために、LFSRの出力を非線形にする手段を組み込んでいる。暗号解読者による平文攻撃は、特定の平文を知り、暗号テキストを観察してキーストリームに関する情報を取り出し、そこから逆をたどってLFSRの秘密内容(すなわち、LFSRの初期状態と、LFSRのフィードバック関数)の鍵を求めることによって行われる。LFSRは線形であるので、十分な平文が暗号解読者に知られた場合には、初期状態と線形フィードバック関数を突き止めることが可能である。非線形化技術には、「クロック制御」(LFSRを擬似ランダムに進める)、LFSR出力の非線形変換、および複数LFSRの非線形の組み合わせなどがある。これらの手段のいずれか、またはすべてを本発明に使用することができる。図2で、任意選択の後処理プロセッサ110を用いて、非線形フィルタリングなどLFSR100の出力の後処理を行うことによりLFSRの出力を非線形化し、特定の平文攻撃を防止する。図2に示す実施形態では、LFSR100からの出力は、最上位ワードLFSR(w−1)から提供される。他の実施形態では、LFSR100の出力は、特定のLFSR100の特性に応じて、他のLFSRワード(すなわちLFSR0、LFSR1、...、LFSR(w−2))の選択されたものから得られる。
【0034】
従来のビット単位のLFSRを、図3の200に概略的に示す。従来のLFSR200は、N個の記憶要素202を含み、これはLFSR0、LFSR1、...、LFSR(w−1)として表す、ワード長Mのw個のワードに分割される。図3に示すLFSR200の実施形態では、XOR論理関数204によって線形フィードバック関数が実行される。XOR論理関数204は、使用されるビットが原始多項式を表すように、最上位ワードLFSR(w−1)の最上位ビット(MSB)と、1つまたは複数の他のワードの1つまたは複数の他のビットにXOR論理演算を行う。LFSRは左にシフトされ、XOR論理関数204からの出力は、LFSR0の2番目に上位のLSBに供給される。この場合も、最大の長さと良好な統計を提供するために、LFSR200のフィードバック多項式f(x)が原始多項式でなければならないので、LFSR0は、そのLSB位置にゼロ・ビットを含む。したがって、記憶要素202の数Nは8の倍数であってはならない。
【0035】
次の擬似CコードIは、127ビット、2タップの従来のビット単位の左シフトLFSR200を、32ビット・ワードのコンピュータ・システムに実装するものである。
Figure 0004828068
上記の擬似CコードIから分かるように、127ビット、2タップの従来型のビット単位のLFSR200を32ビット・ワードのコンピュータ・システムに実装する場合、新しい各1ビット要素a(t)を得て、その新しい要素a(t)を左シフトして127ビットの従来型ビット単位LFSR200に入れるには、およそ17個の命令が必要となる。さらに、新しい32ビット・ワードを得て、その全体を左シフトして従来のビット単位LFSR200に入れるには、1ワードにつき32ビット、1ビットにつき17個の命令、すなわち544個の命令(およびループ・オーバーヘッド)が必要となる。したがって、上記の擬似Cコードで表すような従来のビット単位のLFSR200のソフトウェア実装は、きわめて動作が遅い。
【0036】
本発明によるワード単位の左シフトLFSRを、図4の300に概略的に示す。以下の説明ではワード単位の左シフトLFSR300について説明するが、本発明は、ワード単位の右シフトLFSRにも等しく該当する。ワード単位でシフトするLFSR300は、LFSR0、LFSR1、...、LFSR(w−1)で表す、ワード長Mのw個のワードに分割されたN個の記憶要素302を含む。図4に示すLFSR300の実施形態では、ワード長Mのワード中のビット数Mに対応するXOR論理関数304a〜304mによって、線形フィードバック関数が実行される。本発明によるLFSRの代替実施形態は、否定排他的論理和(XNOR)の論理関数によって実行される線形フィードバック関数を含む。XOR論理関数304a〜304mは、LFSR(w−1)およびLFSR1の対応するビットにXOR論理演算を行って、一時的な値すなわち記憶ワード306を提供する。例えば、LFSR(w−1)のMSBとLFSR1のMSBを、XOR論理関数304aで排他的論理和演算して、一時的記憶ワード306のMSBを提供する。同様に、LFSR(w−1)のLSBを、XOR論理関数304mによりLFSR1のLSBで排他的論理和演算して、一時的記憶ワード306のLSBを提供する。その中間のビットにも同様に排他的論理和演算を行う。一時的記憶ワード306のMSBは、これに対応するビット単位の実装を1ビットずつ進めるのに使用される値とちょうど同じ値を有する。一時的記憶ワード306のこれに次ぐ上位ビットは、これに対応するビット単位の実装を2番目のビットで進めるのに使用される値とちょうど同じ値を有する。以下同様に続き、一時的記憶ワード306のLSBは、これに対応するビット単位の実装で生成されるM番目のビットと全く同じ値を有する。この場合も、良好な統計(すなわち、LFSR300を最大長のLFSRとする)を提供するために、LFSR300のフィードバック多項式f(x)を原始多項式にしなければならないので、LFSR0はそのLSBの位置にゼロ・ビットを含む。したがって、記憶要素302の数Nは、8の倍数であってはならない。一実施形態では、ワード単位のLFSR300の状態は次の要領で進める。LFSR2の内容をLFSR3に入れる。LFSR1の内容をLFSR2に入れる。一時的記憶ワード306を1ビット位置で左シフトして、一時的記憶ワード306のLSBにゼロをシフトする。一実施形態では、一時的記憶ワード306からMSBを左シフトして、キャリーフラグに入れる。LFSR0の内容をLFSR1のm−1のMSBに入れ、キャリーフラグをLFSR1のLSBに入れる。次いで、一時的記憶ワード306の内容をLFSR0に入れて、LFSR300のワードの前進を完了する。
【0037】
このように、ワード単位の左シフトLFSR300の状態は、一度にワード全体ずつ進む。XOR関数304a〜304mを通じたLFSRのフィードバックは、記憶要素302のT個のタップ・ソースから選択されるが、各タップ・ソースは、コンピュータ・システムのワード・サイズMの倍数である。8、16、32、または64ビットのワードにアクセスできるIntel Pentium(R) Processorなど、サイズMが異なるワードにアクセスし、それを操作することができるコンピュータ・システムでは、利用可能なワード・サイズMをいずれも使用することができる。ワード・サイズが大きいほど、LFSR300の前進ごとに生成されるビットが多くなる。
【0038】
LFSR300の好ましい長さNは、ワード・サイズMのちょうど倍数よりも1小さくなるように選択する。LFSR記憶要素302の数Nは、ワード・ワイズMのちょうど倍数にすることが望ましいが、上記のように、8の倍数であるサイズNを有する最大長のLFSRは存在しない。
【0039】
ワード・サイズよりも1少ないビットを使用するレジスタ(すなわちLFSR0)(すなわちLFSR0はM−1のステージ長を有する)に、一時的記憶ワード306に記憶された完全なワードを入れるには調整が必要である。この理由により、XOR線形フィードバック関数304によって得られる一時的なワードは、まず一時的記憶ワード306に記憶され、その後、一時的記憶ワード306を1ビット左シフトしてゼロ・ビットをシフト・インし、MSBをキャリーフラグに入れる。次いでキャリーフラグがLFSR1のLSBに入れられ、その前の反復における左シフトでゼロになったそのワード中のビットに取って代わる。
【0040】
次の擬似CコードIIは、32ビット・ワードのコンピュータ・システムに、本発明による127ビット、2タップ(すなわちT=2)、ワード単位の左シフトLFSR300を実装し、その前に説明した擬似CコードIと全く同じ出力シーケンスを生成する。
擬似CコードII
temp = (LFSR[3]^LFSR[1])<<1; /*損失ビットをキャリーフラグに入れる*/
LFSR[3] = LFSR[2];
LFSR[2] = LFSR[1];
LFSR[1] = LFSR[0]+carry; /*ADD WITH CARRY命令を使用する*/
LFSR[0] = temp;
上記の、擬似CコードIIによる、32ビット・ワードのコンピュータ・システムにおける、127ビット、ワード単位の左シフトLFSR300の実装から見てとれるように、本発明による、ワード単位のLFSR300中に左シフトされる新しい32ビット・ワード全体を得るのに必要な命令はわずか約8個である。これは、127ビットの従来のビット単位のLFSR200に左シフトされる新しい32ビット・ワード全体を得るのに必要とされる、上記の擬似CコードIで表した545個以上の命令と比較する。127ビット、ワード単位の左シフトLFSR300を実装する上記の擬似CコードII中に記すように、左シフトを行う「temp」による損失ビットは、キャリーフラグに記憶される。したがって、LFSR[1]の内容をLFSR[2]の内容に置き換える場合、現在のコンピュータの大半に存在するADD WITH CARRY命令によってキャリーフラグをLFSR[0]の他にLFSR[1]に加える。
【0041】
ワード単位のLFSR300を実装する上記の擬似CコードIIをソフトウェア・ループで実行する場合、ソフトウェア・ループを展開して、1回の反復ごとに4つのLFSRワードをシフトすることができる。一実施形態では、「LFSR[ ]=」演算ごとにワードを移動する代わりに、演算論理回路(ALU)レジスタのリネームなど、レジスタまたは位置のリネームを使用する。この実施形態では、127ビットのLFSRとして実装された、ワード単位のLFSR300に左シフトされる32ビット(あるいは任意の他のワード・サイズ)の新しいワード全体を得るのに必要な命令はわずか3つである。この3つの命令と、従来技術を使用して同じシーケンスを得るのに必要な544個以上の命令とを比較すると、この特定の127ビットLFSRの実装について、本発明のワード単位のLFSRは、従来技術によるビット単位のLFSRよりも180倍以上高速であることが理解できよう。64ビット・ワードを使用すると、3つの命令で、全く同じLFSRシーケンスの64の新しいビットを生成することができ、これはさらに2倍速くなる。
【0042】
本発明によるワード単位のLFSR300はハードウェアにもソフトウェアにも実装することができるが、このワード単位のLFSR300は、他タイプの従来のソフトウェア実装のLFSRの代替とするのに特に有用である。
【0043】
行列乗算演算(テーブル・ルックアップとして実装される)を用いてLFSRを複数ビット単位で進める従来の行列乗算速度向上技術は、32ビットのワードを進めるのに16ギガバイトのテーブルを必要とする。このテーブルは、周知のどのプロセッサの第1または第2レベルのキャッシュにも適合せず、アクセスが基本的にランダムになり、ほぼ大半のテーブル・フェッチでダブルのキャッシュ・ミスが発生する。さらに、16ギガバイトのテーブルの初期化には長い時間がかかる。したがって、32×32行列乗算は、非常に多量のメモリを必要とし、上記の本発明によるワード単位のLFSR300よりもはるかに動作が遅くなる。
【0044】
パラレルのLFSRを実行する従来の技術では、ワードの配列を初期化することになるので、本発明によるワード単位のLFSR300よりも初期化の動作がはるかに遅い。配列中のワードの数は、ステージの数と同じでなければならない。例えばステージが127個のLFSRは、127の記憶ワードを必要とする。さらに、127個のワードすべてをシフトしなければならないか、あるいは127のワードのアドレスに対してモジュラ計算(mod127)を行って、タップがあり、新しく生成されるワードが記憶されるアドレスを計算しなければならないので、新しい各出力ワードを生成する際、パラレルのLFSRは、ワード単位のLFSR300よりも遅くなる。
【0045】
上記の理由により、本発明による、ソフトウェア実装のワード単位LFSR300は、周知の従来型LFSRのソフトウェア実装のいずれよりも大幅に動作が速い。したがって、本発明によるワード単位のLFSR300は、非常に高い周波数でビットを生成する必要がある、実時間の暗号システムで利用することができる。例えば、500MHzのPentium(R) Intel Processorで展開される上記の擬似CコードIIを実装する場合、このLFSRは、1秒につき10ギガビット(Gbps)を超える速度で進めることができる。
【0046】
本明細書では、好ましい実施形態の説明のために、特定の実施形態を例示し、説明したが、本発明の範囲から逸脱することなく、これと同じ目的を達成すると予測される幅広い代替および/または同等の実装を、ここに示し記載した特定実施形態の代わりとすることができることは当業者には理解されよう。機械技術、電気機械技術、電気技術、およびコンピュータ技術の技術者は、本発明は各種の幅広い実施形態に実施してよいことを用意に認識されよう。本願は、本明細書で論じた好ましい実施形態の改変形態または変形形態を包含するものとする。したがって、本発明は、特許請求の範囲およびその同等物のみによって制限されるものと明白に企図する。
【図面の簡単な説明】
【図1】 本発明による、秘密鍵ストリーム暗号の暗号システムのブロック図である。
【図2】 擬似乱数ジェネレータをより詳細に表した、図1の暗号システムの送信側または受信側のブロック図である。
【図3】 従来技術による線形フィードバック・シフト・レジスタのブロック図である。
【図4】 本発明による線形フィードバック・シフト・レジスタのブロック図である。

Claims (3)

  1. 擬似乱数ジェネレータであって、
    状態を有する線形フィードバック・シフト・レジスタ(LFSR)であって、
    ワード長Mを有するw個のワードに分割されたNビットのバイナリ・データをともに記憶し、かつT個のタップ・ソースを含むN個の記憶要素であって、各タップ・ソースは、記憶要素からバイナリ・データを提供し、Mの倍数である複数のビットを有する記憶要素と、
    該T個のタップ・ソースに結合され、Mの倍数である複数のビットを有する一時的な値を提供する線形フィードバック関数であって、一時的な値が、T個のタップ・ソースから提供されるバイナリ・データの線形関数である線形フィードバック関数と、
    を含む線形フィードバック・シフト・レジスタを含み、
    LFSRの状態が、記憶要素中のバイナリ・データをMの倍数ビット単位でシフトすることと、シフトの結果そのままでは空になる記憶要素を埋める一時的な値を提供することとによって進められ、一時的な値が1ビット左にシフトされ、ゼロが最下位ビット中にシフトされ、ついで最下位LFSRワードに記憶される擬似乱数ジェネレータ。
  2. ストリーム暗号の暗号システムであって、
    鍵を受け取り、キーストリームを提供する擬似ランダム・ビット・ジェネレータであって、
    状態を有する線形フィードバック・シフト・レジスタ(LFSR)であって
    ワード長Mを有するw個のワードに分割されたNビットのバイナリ・データをともに記憶し、かつT個のタップ・ソースを含むN個の記憶要素であって、各タップ・ソースが、Mの倍数である複数ビットを有するバイナリ・データを提供する記憶要素、および
    T個のタップ・ソースに結合され、T個のタップ・ソースから提供されるバイナリ・データの線形関数である一時的記憶ワードを提供する線形フィードバック関数、
    とを含み、
    LFSRの状態が、記憶要素中のバイナリ・データをMの倍数ビット単位でシフトすることと、シフトの結果そのままでは空になる記憶要素を埋める一時的記憶ワードを提供することとによって進められ、一時的な値が1ビット左にシフトされ、ゼロが最下位ビット中にシフトされ、ついで最下位LFSRワードに記憶される線形フィードバック・シフト・レジスタを含む擬似ランダム・ビット・ジェネレータと、 第1のバイナリ・データ・シーケンスとキーストリームを組み合わせて、第2のバイナリ・データ・シーケンスを提供する暗号コンバイナと、
    を含むストリーム暗号の暗号システム。
  3. 擬似乱数を生成する方法であって、
    線形フィードバック・シフト・レジスタ(LFSR)の記憶位置にNビットのバイナリ・データを記憶するステップであって、該Nビットのバイナリ・データが、ワード長Mを有するw個のワードに分割されるステップと、
    該Nビットのバイナリ・データからバイナリ・データのT個のタップ・ソースを提供するステップであって、各タップ・ソースは、Mの倍数である複数ビットを有するバイナリ・データを提供するステップと、
    Mの倍数である複数ビットを有し、T個のタップ・ソースから提供されるバイナリ・データの線形関数である一時的な値を提供するステップと、
    記憶されたバイナリ・データを、Mの倍数ビット単位でシフトするステップと、
    該シフト・ステップの結果そのままでは空になる記憶位置を埋める一時的な値を提供するステップであって、一時的な値が1ビット左にシフトされ、ゼロが最下位ビット中にシフトされ、ついで最下位LFSRワードに記憶されるステップを含むステップと を含む方法。
JP2001549180A 1999-12-02 2000-12-01 コンピュータで効率的な線形フィードバック・シフト・レジスタ Expired - Fee Related JP4828068B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/453,008 1999-12-02
US09/453,008 US6763363B1 (en) 1999-12-02 1999-12-02 Computer efficient linear feedback shift register
PCT/US2000/032633 WO2001048594A2 (en) 1999-12-02 2000-12-01 Computer efficient linear feedback shift register

Publications (3)

Publication Number Publication Date
JP2004505289A JP2004505289A (ja) 2004-02-19
JP2004505289A5 JP2004505289A5 (ja) 2007-09-13
JP4828068B2 true JP4828068B2 (ja) 2011-11-30

Family

ID=23798867

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001549180A Expired - Fee Related JP4828068B2 (ja) 1999-12-02 2000-12-01 コンピュータで効率的な線形フィードバック・シフト・レジスタ

Country Status (6)

Country Link
US (1) US6763363B1 (ja)
EP (1) EP1234227A2 (ja)
JP (1) JP4828068B2 (ja)
AU (1) AU4900401A (ja)
CA (1) CA2392706A1 (ja)
WO (1) WO2001048594A2 (ja)

Families Citing this family (52)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6252958B1 (en) * 1997-09-22 2001-06-26 Qualcomm Incorporated Method and apparatus for generating encryption stream ciphers
DE19921852A1 (de) * 1999-05-11 2000-11-16 Bosch Gmbh Robert Pseudozufallszahlgenerator
US6961427B1 (en) * 1999-11-23 2005-11-01 General Instrument Corporation Methods and apparatus for keystream generation
US7277543B1 (en) * 2000-11-14 2007-10-02 Honeywell International Inc. Cryptographic combiner using two sequential non-associative operations
US20020159588A1 (en) * 2001-04-27 2002-10-31 Kauffman Jason R. Cryptography with unconditional security for the internet, commercial intranets, and data storage
US20030002677A1 (en) * 2001-06-28 2003-01-02 Amit Dagan Software implementations of input independent LFSR-based algorithms
GB0116016D0 (en) * 2001-06-29 2001-08-22 Simoco Digital Systems Ltd Communications systems
JP2003023421A (ja) * 2001-07-09 2003-01-24 C4 Technology Inc 暗号方法、そのプログラム、そのプログラムを記録した記録媒体および暗号装置並びに復号方法および復号装置
US7046803B2 (en) * 2001-10-06 2006-05-16 Samsung Electronics Co., Ltd. Random keystream generation apparatus and method for use in an encryption system
ES2300307T3 (es) * 2001-12-06 2008-06-16 Telefonaktiebolaget Lm Ericsson (Publ) Sistema y metodo de criptografia simetrica.
GB2386444B (en) * 2002-03-12 2004-05-26 Toshiba Res Europ Ltd Digital correlators
US7860251B1 (en) * 2002-03-26 2010-12-28 National Semiconductor Corporation Encryption-decryption circuit and method of operation
US7571200B2 (en) * 2002-04-24 2009-08-04 Hewlett-Packard Development Company, L.P. Seedable pseudo-random number generator
AU2003285742A1 (en) * 2002-08-14 2004-03-03 Institute For Advanced Studies Co., Ltd. Random number generator and random number generation method
JP2006520578A (ja) * 2003-03-03 2006-09-07 松下電器産業株式会社 広帯域通信システムにおいて伝送される信号の離散電力スペクトル密度成分を低減する方法および装置
US7376232B2 (en) * 2003-03-13 2008-05-20 New Mexico Technical Research Foundation Computer system security via dynamic encryption
US7194496B2 (en) * 2003-05-02 2007-03-20 Spirent Communications Of Rockville, Inc. System and method for producing functions for generating pseudo-random bit sequences
CN100359494C (zh) * 2003-05-04 2008-01-02 江南机器(集团)有限公司 电子文件字符内码变换加密方法
US7925013B1 (en) * 2003-06-30 2011-04-12 Conexant Systems, Inc. System for data encryption and decryption of digital data entering and leaving memory
FR2857172B1 (fr) * 2003-07-04 2006-04-28 Thales Sa Procede et dispositif de generation de nombres aleatoires fondes sur des oscillateurs chaotiques
EP1513285A1 (en) * 2003-09-05 2005-03-09 Mediacrypt AG Method for generating pseudo-random sequence
US8577026B2 (en) 2010-12-29 2013-11-05 Ternarylogic Llc Methods and apparatus in alternate finite field based coders and decoders
US20070110229A1 (en) * 2004-02-25 2007-05-17 Ternarylogic, Llc Ternary and Multi-Value Digital Signal Scramblers, Descramblers and Sequence of Generators
US20070098160A1 (en) * 2005-11-03 2007-05-03 Peter Lablans SCRAMBLING AND SELF-SYNCHRONIZING DESCRAMBLING METHODS FOR BINARY AND NON-BINARY DIGITAL SIGNALS NOT USING LFSRs
US20110064214A1 (en) * 2003-09-09 2011-03-17 Ternarylogic Llc Methods and Apparatus in Alternate Finite Field Based Coders and Decoders
US7505589B2 (en) * 2003-09-09 2009-03-17 Temarylogic, Llc Ternary and higher multi-value digital scramblers/descramblers
DE10357782B3 (de) * 2003-12-10 2005-05-04 Infineon Technologies Ag Vorrichtung und Verfahren zum Erzeugen von Zufallszahlen mit einem Pseudozufallsgenerator
FR2865870B1 (fr) * 2004-01-30 2006-05-26 Centre Nat Rech Scient Generation d'un flux de bits aleatoire a haut debit
DE102004013480B4 (de) * 2004-03-18 2013-01-24 Infineon Technologies Ag Zufallszahlengenerator und Verfahren zum Erzeugen von Zufallszahlen
DE102004013481B4 (de) * 2004-03-18 2013-01-24 Infineon Technologies Ag Zufallszahlengenerator und Verfahren zum Erzeugen von Zufallszahlen mit externer Auffrischung
WO2005114386A1 (ja) * 2004-05-24 2005-12-01 Leisure Electronics Technology Co., Ltd. 乱数取出し方法及びこれを用いた乱数生成装置
DE102004037814B4 (de) * 2004-08-04 2010-12-16 Infineon Technologies Ag Vorrichtung und Verfahren zum Erzeugen einer Folge von Zahlen
US7725779B2 (en) * 2005-01-25 2010-05-25 Ternarylogic Llc Multi-valued scrambling and descrambling of digital data on optical disks and other storage media
US7526707B2 (en) * 2005-02-01 2009-04-28 Agere Systems Inc. Method and apparatus for encoding and decoding data using a pseudo-random interleaver
US7668893B2 (en) * 2005-08-30 2010-02-23 Micron Technology, Inc. Data generator having linear feedback shift registers for generating data pattern in forward and reverse orders
US20070088997A1 (en) * 2005-09-26 2007-04-19 Peter Lablans Generation and self-synchronizing detection of sequences using addressable memories
US20070168406A1 (en) * 2005-10-18 2007-07-19 Meyer David R Complementary linear feedback shift registers for generating advance timing masks
EP1801701A1 (en) 2005-12-22 2007-06-27 Deutsche Thomson-Brandt Gmbh Serial data transfer in a numerically controlled control system to update an output value of the control system
EP1801702B1 (en) * 2005-12-22 2009-08-19 Thomson Licensing Serial data transfer in a numerically controlled control system to update an output value of the control system
US8549296B2 (en) 2007-11-28 2013-10-01 Honeywell International Inc. Simple authentication of messages
US8330122B2 (en) 2007-11-30 2012-12-11 Honeywell International Inc Authenticatable mark, systems for preparing and authenticating the mark
US8184034B2 (en) * 2008-07-21 2012-05-22 Cambridge Silicon Radio Limited Code sequence generator
WO2012123969A2 (en) * 2011-03-14 2012-09-20 Indian Institute Of Technology Bombay Methods for generating multi-level pseudo-random sequences
US10708043B2 (en) 2013-03-07 2020-07-07 David Mayer Hutchinson One pad communications
US9026791B2 (en) 2013-03-11 2015-05-05 Qualcomm Incorporated Linear feedback shift register (LFSR)
JP5786144B2 (ja) 2013-06-18 2015-09-30 パナソニックIpマネジメント株式会社 乱数発生装置
KR20150122494A (ko) * 2014-04-23 2015-11-02 삼성전자주식회사 암호화 장치, 암호화 방법, 복호화 방법 및 컴퓨터 판독가능 기록매체
US9450925B2 (en) 2014-08-29 2016-09-20 Honeywell Inernational Inc. Methods and systems for auto-commissioning of devices in a communication network
US9696965B2 (en) 2014-12-16 2017-07-04 Nuvoton Technology Corporation Input-dependent random number generation using memory arrays
US11552781B2 (en) 2019-04-05 2023-01-10 Honeywell International Inc. Using error detection bits for cryptographic integrity and authentication
US11601120B2 (en) 2021-02-03 2023-03-07 Nuvoton Technology Corporation Attack-resistant ring oscillators and random-number generators
US20230244821A1 (en) 2022-01-28 2023-08-03 Honeywell International Inc. Processor core unique encryption

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6146523A (ja) * 1984-08-13 1986-03-06 Nec Corp 擬似乱数発生装置
JPS6146524A (ja) * 1984-08-13 1986-03-06 Nec Corp 擬似乱数発生装置
JPH09171454A (ja) * 1995-10-09 1997-06-30 Hitachi Ltd データ処理装置
JPH11224183A (ja) * 1998-02-05 1999-08-17 Toyo Commun Equip Co Ltd 擬似乱数発生装置

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2519828B2 (fr) 1982-01-11 1986-01-31 Telediffusion Fse Systeme de videotex muni des moyens de controle d'acces a l'information
US5257282A (en) * 1984-06-28 1993-10-26 Unisys Corporation High speed code sequence generator
FR2671647A1 (fr) 1991-01-16 1992-07-17 France Etat Generateur pseudo-aleatoire.
US5307409A (en) 1992-12-22 1994-04-26 Honeywell Inc Apparatus and method for fault detection on redundant signal lines via encryption
ATE252796T1 (de) * 1993-07-20 2003-11-15 Canon Kk Verfahren und kommunikationssystem unter verwendung einer verschlüsselungseinrichtung
US5365585A (en) * 1993-08-30 1994-11-15 Motorola, Inc. Method and apparatus for encryption having a feedback register with selectable taps
US6181729B1 (en) * 1997-12-19 2001-01-30 Supergold Communication Limited Spread spectrum communication
US6188714B1 (en) * 1998-12-29 2001-02-13 Texas Instruments Incorporated Parallel M-sequence generator circuit
DE19921852A1 (de) 1999-05-11 2000-11-16 Bosch Gmbh Robert Pseudozufallszahlgenerator

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6146523A (ja) * 1984-08-13 1986-03-06 Nec Corp 擬似乱数発生装置
JPS6146524A (ja) * 1984-08-13 1986-03-06 Nec Corp 擬似乱数発生装置
JPH09171454A (ja) * 1995-10-09 1997-06-30 Hitachi Ltd データ処理装置
JPH11224183A (ja) * 1998-02-05 1999-08-17 Toyo Commun Equip Co Ltd 擬似乱数発生装置

Also Published As

Publication number Publication date
WO2001048594A3 (en) 2002-05-02
US6763363B1 (en) 2004-07-13
AU4900401A (en) 2001-07-09
JP2004505289A (ja) 2004-02-19
EP1234227A2 (en) 2002-08-28
CA2392706A1 (en) 2001-07-05
WO2001048594A2 (en) 2001-07-05

Similar Documents

Publication Publication Date Title
JP4828068B2 (ja) コンピュータで効率的な線形フィードバック・シフト・レジスタ
US6804354B1 (en) Cryptographic isolator using multiplication
JP5139578B2 (ja) 有限体アルゴリズムを使用したランダム数発生器を含む暗号化システム
US7945049B2 (en) Stream cipher using multiplication over a finite field of even characteristic
US5870470A (en) Method and apparatus for encrypting long blocks using a short-block encryption procedure
JP3901909B2 (ja) 暗号化装置およびプログラムを記録した記録媒体
US10320554B1 (en) Differential power analysis resistant encryption and decryption functions
US7613297B2 (en) Method and apparatus for data encryption
US6961426B2 (en) Cascaded stream cipher
US20210021405A1 (en) Key sequence generation for cryptographic operations
US6189095B1 (en) Symmetric block cipher using multiple stages with modified type-1 and type-3 feistel networks
JPH08505275A (ja) 暗号ストリームを発生させるための装置及び方法
KR20100069610A (ko) 연쇄화된 암호화 모드를 위한 방법 및 디바이스
JP2005527853A (ja) 高度暗号化規格(aes)のハードウェア暗号法エンジン
US7277543B1 (en) Cryptographic combiner using two sequential non-associative operations
JPWO2017203992A1 (ja) 暗号化装置、暗号化方法、復号化装置、及び復号化方法
US8122075B2 (en) Pseudorandom number generator and encryption device using the same
JPH10240500A (ja) 乱数生成装置及び方法、暗号化装置及び方法、復号装置及び方法、並びにストリーム暗号システム
JP2003516659A (ja) 1の補数暗号コンバイナ
US6961427B1 (en) Methods and apparatus for keystream generation
Ledda et al. Enhancing IDEA algorithm using circular shift and middle square method
JPH1117673A (ja) 共通鍵暗号通信方法及びその通信ネットワーク
JP3358953B2 (ja) 擬似ランダムビット列生成器及びそれを使用する暗号通信方法
JP4857230B2 (ja) 疑似乱数生成装置及びそれを用いた暗号化処理装置
JP2017527225A (ja) 暗号システムの再現可能なランダムシーケンス

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070718

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070718

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100913

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20101213

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20101220

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110113

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110120

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110207

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110304

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110606

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110613

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20110704

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110914

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

Free format text: PAYMENT UNTIL: 20140922

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

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

LAPS Cancellation because of no payment of annual fees