JPH10320181A - 非線形フィードバック・シフトレジスタ回路 - Google Patents

非線形フィードバック・シフトレジスタ回路

Info

Publication number
JPH10320181A
JPH10320181A JP9146072A JP14607297A JPH10320181A JP H10320181 A JPH10320181 A JP H10320181A JP 9146072 A JP9146072 A JP 9146072A JP 14607297 A JP14607297 A JP 14607297A JP H10320181 A JPH10320181 A JP H10320181A
Authority
JP
Japan
Prior art keywords
output
function generator
shift register
bit
input
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
JP9146072A
Other languages
English (en)
Other versions
JP2940517B2 (ja
Inventor
Michio Shimada
道雄 島田
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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP9146072A priority Critical patent/JP2940517B2/ja
Priority to CA002238294A priority patent/CA2238294C/en
Priority to EP98304055A priority patent/EP0887728A3/en
Priority to US09/082,029 priority patent/US6067359A/en
Publication of JPH10320181A publication Critical patent/JPH10320181A/ja
Application granted granted Critical
Publication of JP2940517B2 publication Critical patent/JP2940517B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

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/581Generating an LFSR sequence, e.g. an m-sequence; sequence may be generated without LFSR, e.g. using Galois Field arithmetic

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Error Detection And Correction (AREA)
  • Synchronisation In Digital Transmission Systems (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Communication Control (AREA)

Abstract

(57)【要約】 【課題】 回路規模の小型化が可能であり、かつ設計の
容易な非線形フィードバック・シフトレジスタ回路を実
現する。 【解決手段】 双方向フリップフロップ101は、関数
発生器106の出力ビットDIRの値が0又は1に応じ
てmビットの内部状態を右又は左にシフトするととも
に、右端又は左端のビットをシリアル出力SOとして出
力する。関数発生器106は、双方向シフトレジスタ1
01のパラレル出力POと双方向シフトレジスタ101
の直前のシリアル出力SOと関数発生器106の直前の
出力ビットDIRを入力して、出力ビットSIと出力ビ
ットDIRを出力する。出力ビットSIは疑似乱数とし
て出力端子110から出力される。本発明の非線形フィ
ードバック・シフトレジスタ回路の設計は、オイラー閉
路を探索することと等価であり、主関数として選べる関
数の種類が多様となり、かつ回路規模の小型化が可能で
ある。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、通信装置や情報処
理装置において採用され、許可されていないものが通信
データや記録媒体の内容を読みとることを困難にするた
めに、送信データ系列に疑似乱数を排他的論理和で足し
込む、ストリーム暗号を作成するための非線形フィード
バック・シフトレジスタ回路に関するものである。
【0002】
【従来の技術】ストリーム暗号とは、送信データ系列に
疑似乱数を排他的論理和で足し込むことによって、疑似
乱数の値を知らない第三者によって送信データが読みと
られることを防止するものである。
【0003】このストリーム暗号における疑似乱数を生
成する方法として、非線形フィードバック・シフトレジ
スタ回路を用いる方法が古くから使われている。図9
は、従来の非線形フィードバック・シフトレジスタ回路
の基本構成を示す機能ブロック図である。
【0004】図9において、シフトレジスタ901は、
入力端子908から供給される制御信号Lが0の時に入
力端子909からクロック信号CLKが供給されると、
入力端子907から供給されるmビットのビット列PI
を内部状態として保持し、入力端子908から供給され
る制御信号Lが1の時に入力端子909からクロック信
号CLKが供給されると、保持されている内部状態を右
に1ビットシフトするとともに内部状態の左端には関数
発生器902から供給されるシリアル入力SIが保持さ
れる。
【0005】シフトレジスタ901の内部状態は、パラ
レル出力POとして関数発生器902に供給される。ま
た、関数発生器902の出力は、疑似乱数として出力端
子910から出力される。関数発生器902は、リード
・オンリ・メモリ(ROM)あるいは論理回路によって
構成される。
【0006】図10は、シフトレジスタ901の基本構
成を示す機能ブロック図である。図10において、セレ
クタ10011〜1001mは、入力端子1005を介し
て供給される制御信号Lの値に応じてその左側から供給
される2つの入力(上から順にA入力、B入力とする)
の一方を選択して右側へ出力する。即ち、セレクタ10
011〜1001mは、制御信号Lが0であればA入力を
選択して出力し、制御信号Lが1であればB入力を選択
して出力する。
【0007】入力端子1007にはmビットのパラレル
入力PIが供給され、PIのそれぞれのビットがセレク
タ10011〜1001mのA入力に供給される。また、
入力端子1008から供給されるシリアル入力SIが、
セレクタ10011のB入力に供給される。フリップフ
ロップ10021〜1002m-1の出力は、セレクタ10
012〜1001mのB入力に供給される。フリップフロ
ップ10021〜1002mは、入力端子1006からク
ロック信号CLKが供給される毎に、それぞれ図の左側
のセレクタ10011〜1001mの出力を保持して、保
持した値を図の右側へ出力する。フリップフロップ10
021〜1002mの出力は、mビットのパラレル出力P
Oとして出力端子1010から出力される。したがっ
て、シフトレジスタの内部状態はフリップフロップ10
021〜1002mに保持されたビット系列によって表さ
れる。
【0008】シフトレジスタの内部状態を設定するに
は、まず内部状態として設定するmビットのデータをパ
ラレル入力PIとして入力端子1007に供給し、入力
端子1005に供給される制御信号Lを0とし、入力端
子1006からクロック信号CLKを1個供給する。す
ると、パラレル入力PIの各ビットが対応するフリップ
フロップ10021〜1002mに保持される。
【0009】シフトレジスタに保持されたmビットを図
の右方向に1ビットだけシフトするには、入力端子10
05に供給される制御信号Lを1とする。そして、入力
端子1006からクロック信号CLKを1個供給する。
すると、シフトレジスタに保持されたmビットが図の右
方向に1ビットだけシフトする。なお、その際には、入
力端子1008から供給されたシリアル入力SIが左端
のフリップフロップ10021に保持される。
【0010】図10のシフトレジスタの内部状態の可能
な変化の仕方は、図11のような状態グラフによって表
現することができる。図11は、m=3の場合のシフト
レジスタの状態グラフである。図11において、丸印の
中に書かれている3文字は、図9又は図10のシフトレ
ジスタの内部状態を表している。丸印と丸印の間の矢印
の付いた実線は状態の変化の方向を表しており、各実線
に添えられている数字0又は1は、シフトレジスタの左
端に供給されるシリアル入力SIの値を示している。ま
た、矢印の付いた点線は状態が変化しないことを示して
いる。
【0011】例えば、000が記入された丸印の右側に
1があり、その数字の添えられている矢印の付いた実線
の端に100が記入された丸印があるが、これはシフト
レジスタのシリアル入力としてSI=1を供給してシフ
トレジスタを右にシフトさせると、シフトレジスタの内
部状態が000から100に変化することを意味してい
る。
【0012】これをグラフ理論における用語と対比させ
ると、図の丸印がノードに対応し、実線が枝に対応して
いる。したがって、従来の非線形フィードバック・シフ
トレジスタ回路を設計することは、図11の状態グラフ
においてハミルトン閉路を求めることに他ならない。ハ
ミルトン閉路とは、全てのノードを1度だけ通過して元
のノードに戻るような経路のことである。
【0013】関数発生器902の入力は、シフトレジス
タ901の内部状態すなわち図11の丸印の内部の値で
あり、関数発生器902の出力はシフトレジスタ901
に供給するシリアル入力SIすなわち図11の矢印の付
いた実線に添えられた数字であるから、ハミルトン閉路
が決まれば関数発生器902の入出力関係も決まる。
【0014】図12は、図11の状態グラフに存在する
ハミルトン閉路の一例である。図12において、小さな
丸印で囲まれた数字の示す順序で、内部状態000から
実線を矢印の方向にたどって行くと、全ての内部状態を
1度だけ通過して、再び内部状態000に戻ることが分
かる。
【0015】図13は、図12のハミルトン閉路に対応
する関数発生器902の入出力対応を示した表である。
図12の閉路の場合、関数発生器902から出力される
疑似乱数の1周期の出力は、11101000となる。
【0016】なお、従来の非線形フィードバック・シフ
トレジスタ回路については、例えば、1986年にスプ
リンガー・ヴァーラグから刊行されたルェペル著「アナ
リシス・アンド・デザイン・オブ・ストリーム・サイフ
ァー」(R.A.Rueppel,Analysis and Design of Stream C
iphers, Springer-Verlag,1986)などに詳しい解説があ
る。また、グラフ理論やハミルトン閉路については、例
えば、高橋、藤重著「離散数学」(岩波書店1981
年)などに詳しい解説がある。
【0017】
【発明が解決しようとする課題】しかしながら、従来の
非線形フィードバック・シフトレジスタ回路は、その設
計が難しいという問題があった。すなわち、前記のよう
に、疑似乱数の周期を最大にするような関数を設計する
ことは、ハミルトン経路を探索することに他ならない
が、ハミルトン閉路を探索することは難しい問題である
ことが知られている(例えば、前記「離散数学」参
照)。図11の例のように、ノードが8個しか存在しな
い場合には、試行錯誤で簡単に経路を発見することがで
きるが、シフトレジスタの段数が大きくなってノードの
数が多くなると、設計することは事実上不可能になる。
【0018】また、仮にハミルトン閉路を発見できたと
しても、そのようなハミルトン閉路に対応する関数は、
0と1とを等頻度で出力するから、論理圧縮して回路規
模を小さくすることは、関数が線形な関数である場合な
ど一部の例外を除けば一般に困難である。
【0019】本発明は、以上の問題点に鑑み、設計が容
易で、かつ回路規模を小さくすることができる非線形フ
ィードバック・シフトレジスタ回路を提供することを目
的とするものである。
【0020】
【課題を解決するための手段】本発明は、双方向にシフ
トできるシフトレジスタ(以下、双方向シフトレジスタ
という)を用いて非線形フィードバック・シフトレジス
タ回路を構成したことを特徴とするものである。
【0021】グラフの全ての枝をそれぞれ1度だけ通る
ような経路は、オイラー経路と呼ばれ、探索することが
容易であることが知られている。より厳密に言うと、も
し、グラフのノードから出ている枝の数が、どのノード
についても2あるいは4であれば、グラフの全ての枝を
それぞれ1度だけ通るような経路が存在し、しかも、そ
のような経路は簡単に求められることが知られている。
これらのことについては、グラフ理論関係の参考書(例
えば前記の文献等参照)に詳しい解説がある。
【0022】後述するように、双方向シフトレジスタを
利用して非線形フィードバック・シフトレジスタ回路を
設計することは、前記オイラー閉路を探索することに帰
着され、よって、非線形フィードバック・シフトレジス
タ回路の設計が容易となる。
【0023】
【発明の実施の形態】図1は、本発明の非線形フィード
バック・シフトレジスタの第1の実施の形態を示す機能
ブロック図であり、図2は、本発明において用いられる
双方向シフトレジスタの基本構成を示す機能ブロック図
である。
【0024】説明の便宜上、最初に双方向シフトレジス
タについて説明する。図2において、セレクタ2011
〜201mは、入力端子204から供給される制御信号
DIR及び入力端子205から供給される制御信号Lの
各値に応じて、図の左側から供給される3つの入力(図
の上から順にA入力、B入力、C入力とする)を選択
し、選択された入力を図の右側へ出力する。セレクタ2
03は、入力端子204から供給される制御信号DIR
の値に応じて、図の左側から供給される2つの入力(図
の上から順にB入力、C入力とする)を選択し、選択さ
れた入力をシリアル出力SOとして出力端子209から
出力する。
【0025】セレクタ2011〜201mは、制御信号L
が0であればA入力を選択して出力し、制御信号Lが1
で制御信号DIRが0であればC入力を選択して出力
し、制御信号Lが1で制御信号DIRが1であればB入
力を選択して出力する。セレクタ203は、制御信号D
IRが0であればC入力を選択して出力し、制御信号D
IRが1であればB入力を選択して出力する。
【0026】入力端子207にはmビットのパラレル入
力PIが供給され、PIのそれぞれのビットがセレクタ
2011〜201mのA入力に供給される。また、入力端
子208から供給されるシリアル入力SIが、セレクタ
2011のB入力とセレクタ201mのC入力に供給され
る。
【0027】フリップフロップ2021〜201mは、入
力端子206からクロック信号CLKが供給される毎
に、それぞれ図の左側のセレクタ2011〜201mの出
力を保持して、保持した値を図の右側へ出力する。フリ
ップフロップ2021〜201mから出力される合計mビ
ットの出力は、パラレル出力POとして、出力端子21
0から出力される。
【0028】m−1個のフリップフロップ2021〜2
02m-1の出力は、それぞれ図の右側のセレクタ2012
〜201mのB入力にも供給されている。フリップフロ
ップ202mの出力は、セレクタ203のB入力にも供
給されている。m−1個のフリップフロップ2022
202mの出力は、それぞれ図の左側のセレクタ2011
〜201m-1のC入力にも供給されている。フリップフ
ロップ2021の出力は、セレクタ203のC入力にも
供給されている。双方向シフトレジスタの内部状態は、
フリップフロップ2021〜202mに保持されたビット
系列によって表される。
【0029】双方向シフトレジスタの内部状態を設定す
るには、内部状態として設定するmビットのデータをパ
ラレル入力PIとして入力端子207に供給するととも
に入力端子205に供給される制御信号Lを0とし、入
力端子206からクロック信号CLKを1個供給する。
すると、パラレル入力PIのビットが、それぞれフリッ
プフロップ2021〜202mに保持される。
【0030】双方向シフトレジスタに保持されたmビッ
トを図の右方向に1ビットだけシフトするには、まず、
入力端子205に供給される制御信号Lを1とし、入力
端子204に供給される制御信号DIRを1とする。そ
の際には、セレクタ203はB入力を選択するので右端
のフリップフロップ202mに保持されていたビットが
シリアル出力SOとして出力端子209から出力され
る。そして、入力端子206からクロック信号CLKを
1個供給すると、双方向シフトレジスタに保持されたm
ビットが図の右方向に1ビットだけシフトするとともに
入力端子208から供給されたシリアル入力SIが左端
のフリップフロップ2021に保持される。
【0031】双方向シフトレジスタに保持されたmビッ
トを図の左方向に1ビットだけシフトするには、まず、
入力端子205に供給される制御信号Lを1とし、入力
端子204に供給される制御信号DIRを0とする。そ
の際には、セレクタ203はC入力を選択するので左端
のフリップフロップ2021に保持されていたビットが
シリアル出力SOとして出力端子209から出力され
る。そして、入力端子206からクロック信号CLKを
1個供給すると、双方向シフトレジスタに保持されたm
ビットが図の左方向に1ビットだけシフトするとともに
入力端子208から供給されたシリアル入力SIが右端
のフリップフロップ202mに保持される。
【0032】図5は、図2の双方向シフトレジスタの状
態グラフをm=3の場合について表したものである。図
5において、丸印の中に書かれている3ビットは、図2
の双方向シフトレジスタのフリップフロップに保持され
ているビットを表している。そして、丸印と丸印が、両
端に矢印の付いた実線で結ばれている。また、どの実線
の両端にも、1R,1L,0R,0Lの4通りの記号の
何れかが添えられている。
【0033】この状態グラフの見方は、例えば、000
が記入された丸印の右側に、1Rと言う記号があり、そ
の記号が添えられている実線のもう一方の端に100が
記入された丸印があるが、1Rの1はシリアル入力SI
の値を示し、1RのRは右シフトを示しており、これ
は、SI=1として双方向シフトレジスタを右にシフト
させると、双方向シフトレジスタの内部状態が000か
ら100に変化することを意味している。
【0034】図5の状態グラフは、内部状態000,1
11に対応するノードからは2本の枝が出ており(同じ
ノードに戻る枝を無視すれば)、それ以外のノードから
は4本の枝が出ているので、オイラー閉路が存在する。
図6は、図5の状態グラフに存在するオイラー閉路の1
例である。図において、小さな丸印で囲まれた数字の示
す順序で、内部状態000から実線を辿って行くと、全
ての実線を辿って、再び内部状態000に戻ることが分
かる。
【0035】図1において、双方向シフトレジスタ10
1は、前記のように、入力端子108から供給される制
御信号Lが0の時に入力端子109からクロック信号C
LKが供給されると、入力端子107から供給されるm
ビットのパラレル入力PIを内部状態として保持し、入
力端子108から供給される制御信号Lが1で関数発生
器106が出力する制御信号DIRが1の時には、内部
状態の右端のビットをシリアル出力SOとしてセレクタ
102に供給し、その時に、入力端子109からクロッ
ク信号CLKが供給されると、内部状態を右に1ビット
だけシフトして、内部状態の左端にシリアル入力SIを
保持し、入力端子108から供給される制御信号が1で
関数発生器106の出力する制御信号DIRが0の時に
は、内部状態の左端のビットをシリアル出力SOとして
セレクタ102に供給し、その時に、入力端子109か
らクロック信号CLKが供給されると、内部状態を左に
1ビットだけシフトして、内部状態の右端にシリアル入
力SIを保持する。
【0036】また、双方向シフトレジスタ101の内部
状態はパラレル出力POとして関数発生器106に供給
される。セレクタ102は、入力端子108から供給さ
れる制御信号Lが0の時には0を選択して出力し、制御
信号Lが1の時には、双方向シフトレジスタ101から
供給されるシリアル出力SOを選択して出力し、その出
力をフリップフロップ103に供給する。フリップフロ
ップ103は、入力端子109からクロック信号CLK
が供給されると、セレクタ102の出力を保持して、保
持したビットを関数発生器106に供給する。
【0037】セレクタ104は、入力端子108から供
給される制御信号Lが0の時には0を選択して出力し、
制御信号Lが1の時には、関数発生器106が出力する
制御信号DIRを選択して出力し、その出力をフリップ
フロップ105に供給する。フリップフロップ105
は、入力端子109からクロック信号CLKが供給され
ると、セレクタ104の出力を保持して、保持したビッ
トを関数発生器106に供給する。
【0038】関数発生器106は、双方向シフトレジス
タ101から出力されるパラレル出力POと、フリップ
フロップ103及び105の出力に依存して、制御信号
SIと制御信号DIRを出力する。また、関数発生器1
06の出力する制御信号SIは、疑似乱数として、出力
端子110から出力される。
【0039】なお、フリップフロップ103の出力は、
1時刻前、すなわち、入力端子109からクロック信号
CLKが入力される前に、双方向シフトレジスタ101
が出力していたシリアルデータSOであり、フリップフ
ロップ105の出力は、1時刻前に、関数発生器105
が出力していた制御信号DIRである。双方向シフトレ
ジスタ101は、1時刻に1ビットだけしかシフトされ
ないから、それらのデータだけで、双方向シフトレジス
タ101の1時刻前の状態が特定できる。このため、双
方向シフトレジスタのパラレル出力POと、1時刻前の
SO及びDIRだけに依存して、関数発生器106の出
力SIとDIRが決定される。
【0040】次に、本発明の非線形フィードバック・シ
フトレジスタの動作について説明する。最初に、双方向
シフトレジスタ101の内部状態の初期状態として設定
するmビットのデータをパラレル入力PIとして入力端
子107に供給し、入力端子108に供給される制御信
号Lを0とし、入力端子109からクロック信号を1個
供給する。次に入力端子108に供給される制御信号L
を1とする。するとそれ以降は、入力端子109からク
ロック信号CLKが1個供給される毎に、出力端子11
0から疑似乱数のビットが出力される。
【0041】ただし、双方向シフトレジスタ101の内
部状態の初期状態を000あるいは111にすると、関
数によっては、それ以降の内部状態がずっと000ある
いは111になって、内部状態がオイラー閉路に沿って
遷移しなくなる。例えば図6の例では、内部状態の初期
状態を000にしてしまうと、それ以降の内部状態はず
っと000のままである。このため、図1の実施の形態
においては、双方向シフトレジスタ101の内部状態の
初期状態をオール0やオール1にすることは避ける必要
がある。
【0042】関数発生器106は、リード・オンリ・メ
モリ(ROM)あるいは論理回路によって構成すること
ができる。例えば、図6のオイラー閉路に対応する状態
遷移を実現するには、関数発生器106の入力と出力の
関係を図7の表のように設定すればよい。双方向シフト
レジスタ101の内部状態の初期状態によっては図6の
実線に添えられて番号と逆順に進むこともあるが、いず
れの場合も、初期状態を000あるいは111にしない
限り、オイラー閉路に沿って移動する。
【0043】図3は、本発明の非線形フィードバック・
シフトレジスタの第2の実施の形態を示す機能ブロック
図である。この実施の形態においては、関数発生器10
6の構成方法が前記第1の実施の形態と異なっているだ
けで、他の部分は第1の実施の形態と同様である。すな
わち、図3においては、フリップフロップ103と10
5の出力が、関数発生器106ではなく、それぞれ排他
的論理和回路303と304に供給されている。
【0044】排他的論理和回路303においては、フリ
ップフロップ103の出力と関数発生器301の出力f
との排他的論理和が計算され、その計算結果は制御信号
SIおよび疑似乱数出力として出力される。また、排他
的論理和回路304においては、フリップフロップ10
5の出力と関数発生器302の出力dとの排他的論理和
が計算され、その計算結果は制御信号DIRとして出力
される。双方向シフトレジスタ101から出力されるパ
ラレルデータPOは、関数発生器301と302にそれ
ぞれ供給される。
【0045】関数発生器301と302は、それぞれリ
ード・オンリ・メモリ(ROM)あるいは論理回路によ
って構成される。そして、例えば図6のオイラー閉路に
対応する状態遷移を実現する場合には、各関数発生器の
出力fとdを、図8の入出力対応表のように設定すれば
よい。このようにすれば、図3の双方向シフトレジスタ
の内部状態は、図6のオイラー閉路に沿って移動する。
双方向シフトレジスタ101の内部状態の初期状態によ
っては図6に実線に添えられた番号とは逆順に進むこと
もあるが、いずれの場合もオイラー閉路に沿って移動す
る。
【0046】これは、どのようなオイラー閉路について
も、内部状態Sに対して2つのビットSI(S),DI
R(S)が存在して、SI=「直前のSO」+SI
(S),DIR=「直前のDIR」+DIR(S)とい
う関係が成り立っていることに依るものである。ここ
で、+は排他的論理和を意味する。この関係は図7の入
出力対応表においても成り立っているこの第2の実施の
形態においては、図8に示すように、その入出力対応表
は、図7に示す第1の実施の形態における入出力対応表
よりも簡単化することができるので、関数発生器をRO
Mで構成した場合には、メモリ容量を小さくすることが
できる。また、論理回路で構成した場合には、関数の入
力ビット数が少なくなり、回路規模を小さくすることが
できるとともに、動作に伴う遅延時間も小さくなる。
【0047】図4は、第2の実施の形態における関数発
生器301の一例を示すブロック図である。図4におい
て、入力端子404から入力されたパラレルデータPO
は、主関数発生器401と補助関数発生器402に入力
される。主関数発生器401は論理回路によって構成さ
れ、その入力に依存して1ビットを出力する。補助関数
発生器402は、ROMあるいは論理回路によって構成
され、その入力に依存して1ビットを出力する。そし
て、主関数発生器401の出力と補助関数発生器402
の出力との排他的論理和が排他的論理和回路403で計
算され、計算結果が出力端子405から関数の出力とし
て出力される。
【0048】図4の関数発生器を構成するにあたって
は、まず、オイラー閉路を選択する前に、主関数発生器
401を構成する論理回路を適当に決めておく。その際
に、論理回路として回路規模の小さな論理回路を選択す
る。そして、補助関数発生器402と関数発生器302
の出力ができるだけ0となるようなオイラー閉路を選択
する。出力の大部分が0であるような論理回路であれ
ば、論理圧縮することで回路規模あるいはメモリ容量を
小さくすることができる。一般に、m段の双方向シフト
レジスタの状態グラフには、3の2m−2乗通りのオイ
ラー閉路が存在することが知られており、上記のような
条件を満たすオイラー閉路は高い確率で発見できる。
【0049】
【発明の効果】本発明は、双方向シフトレジスタを用
い、非線形フィードバック・シフトレジスタの設計を、
オイラー閉路によって実現しており、かつオール0とオ
ール1以外の任意のバイナリ系列を初期状態として設定
できるので、回路設計が容易である。
【0050】また、双方向シフトレジスタを用いている
にもかかわらず、関数発生器の構成を工夫することによ
り、回路規模を小さくすることができる。
【0051】さらに、関数として選べる種類が非常に多
いので、ストリーム暗号の解読が困難な疑似乱数を多く
生成することができ、主関数を秘密にすることによる暗
号強度の増加を図ることができる。
【0052】
【図面の簡単な説明】
【図1】本発明の第1の実施の形態を示す機能ブロック
図である。
【図2】双方向シフトレジスタの基本構成を示す機能ブ
ロック図である。
【図3】本発明の第2の実施の形態を示す機能ブロック
図である。
【図4】本発明の第2の実施の形態において用いられる
複数の関数発生器のうちの一つを示す機能ブロック図で
ある。
【図5】m=3の場合の双方向シフトレジスタの状態グ
ラフである。
【図6】図5の状態グラフに存在するオイラー閉路の一
例を示す図である。
【図7】第1の実施の形態における関数発生器に対する
図6のオイラー閉路の場合の入出力対応表である。
【図8】第2の実施の形態における関数発生器に対する
図6のオイラー閉路の場合の入出力対応表である。
【図9】従来の非線形フィードバック・シフトレジスタ
回路を示す機能ブロック図である。
【図10】シフトレジスタに基本構成を示す機能ブロッ
ク図である。
【図11】m=3の場合のシフトレジスタの状態グラフ
である。
【図12】図11の状態グラフに存在するハミルトン閉
路の一例を示す図である。
【図13】従来例における関数発生器に対する図12の
ハミルトン閉路の場合の入出力対応表である。
【符号の説明】
101 双方向シフトレジスタ 102,104,201,203,1001 セレク
タ 103,105,202,1002 フリップフロッ
プ 106 関数発生器 301 第1の関数発生器 302 第2の関数発生器 401 主関数発生器 402 補助関数発生器 303,304,403 排他的論理和回路 901 シフトレジスタ 902 関数発生器

Claims (5)

    【特許請求の範囲】
  1. 【請求項1】 少なくとも、後述の関数発生器の第2の
    出力ビットの値が0あるいは1であるかに応じて、クロ
    ック信号が入力される毎に、保持されたmビットのビッ
    ト系列を右あるいは左にシフトするとともに、ビット系
    列を右にシフトする際には、ビット系列の右端のビット
    をシリアル出力信号として出力して、前記関数発生器の
    第1の出力ビットをビット系列の左端に保持し、ビット
    系列を左にシフトする際には、ビット系列の左端のビッ
    トをシリアル出力として、前記関数発生器の第1の出力
    ビットをビット系列の右端に保持し、かつ、保持されて
    いるmビットのビット系列をパラレル出力信号として出
    力する双方向シフトレジスタと、 前記クロック信号が入力される毎に前記双方向シフトレ
    ジスタの前記シリアル出力信号を保持して保持された値
    を出力する第1のフリップフロップと、 前記クロック信号が入力される毎に前記関数発生器の第
    2の出力ビットを保持して保持された値を出力する第2
    のフリップフロップと、 前記双方向シフトレジスタのパラレル出力信号と前記第
    1のフリップフロップの出力信号と前記第2のフリップ
    フロップの出力信号に依存して第1の出力ビットと第2
    の出力ビットを出力する前記関数発生器と、から構成さ
    れ、前記クロック信号が入力される毎に前記関数発生器
    の第1の出力ビットを疑似乱数として出力することを特
    徴とする非線形フィードバック・シフトレジスタ回路。
  2. 【請求項2】 前記関数発生器は、前記双方向シフトレ
    ジスタのパラレル出力信号に依存してそれぞれ1ビット
    を出力する第1の関数発生器および第2の関数発生器
    と、前記第1の関数発生器の出力と前記第1のフリップ
    フロップの出力との排他的論理和を計算して計算結果を
    前記第1の出力ビットとして出力する第1の排他的論理
    和回路と、前記第2の関数発生器の出力と前記第2のフ
    リップフロップの出力との排他的論理和を計算して計算
    結果を前記第2の出力ビットとして出力する第2の排他
    的論理和回路とから構成されていることを特徴とする請
    求項1記載の非線形フィードバック・シフトレジスタ。
  3. 【請求項3】 前記第1の関数発生器は、前記双方向シ
    フトレジスタのパラレル出力信号に依存してそれぞれ1
    ビットを出力する主関数発生器及び補助関数発生器と、
    この主関数発生器の出力と補助関数発生器の出力の排他
    的論理和を計算して計算結果を出力する排他的論理和回
    路とから構成されていることを特徴とする請求項2記載
    の非線形フィードバック・シフトレジスタ回路。
  4. 【請求項4】 前記主関数発生器は論理回路によって構
    成され、前記補助関数発生器は論理回路又はリード・オ
    ンリ・メモリ(ROM)によって構成されていることを
    特徴とする請求項3記載の非線形フィードバック・シフ
    トレジスタ回路。
  5. 【請求項5】 前記各関数発生器の入力である前記双方
    向シフトレジスタのパラレル出力データとそれに対応す
    る前記各関数発生器の出力データを記録した請求項1、
    2、3又は4記載の非線形フィードバック・シフトレジ
    スタに用いる記憶媒体。
JP9146072A 1997-05-21 1997-05-21 非線形フィードバック・シフトレジスタ回路 Expired - Lifetime JP2940517B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP9146072A JP2940517B2 (ja) 1997-05-21 1997-05-21 非線形フィードバック・シフトレジスタ回路
CA002238294A CA2238294C (en) 1997-05-21 1998-05-20 Pn sequence generator with bidirectional shift register and eulerian-graph feedback circuit
EP98304055A EP0887728A3 (en) 1997-05-21 1998-05-21 Pseudorandom number sequence generator
US09/082,029 US6067359A (en) 1997-05-21 1998-05-21 PN sequence generator with bidirectional shift register and Eulerian-graph feedback circuit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP9146072A JP2940517B2 (ja) 1997-05-21 1997-05-21 非線形フィードバック・シフトレジスタ回路

Publications (2)

Publication Number Publication Date
JPH10320181A true JPH10320181A (ja) 1998-12-04
JP2940517B2 JP2940517B2 (ja) 1999-08-25

Family

ID=15399471

Family Applications (1)

Application Number Title Priority Date Filing Date
JP9146072A Expired - Lifetime JP2940517B2 (ja) 1997-05-21 1997-05-21 非線形フィードバック・シフトレジスタ回路

Country Status (4)

Country Link
US (1) US6067359A (ja)
EP (1) EP0887728A3 (ja)
JP (1) JP2940517B2 (ja)
CA (1) CA2238294C (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7526088B2 (en) 2002-03-05 2009-04-28 Cordes Rene-Michael Code generator and device for the synchronous or asynchronous and permanent identification or encoding and decoding of data of any particular length
JP2016220256A (ja) * 2011-11-09 2016-12-22 Kddi株式会社 ストリーム暗号の暗号化装置、ストリーム暗号の復号化装置、ストリーム暗号の暗号化方法、ストリーム暗号の復号化方法およびプログラム

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4027520B2 (ja) * 1998-12-24 2007-12-26 富士通株式会社 コード位相設定方法及び装置
US6765506B1 (en) * 2003-01-06 2004-07-20 Via Technologies Inc. Scrambler, de-scrambler, and related method
US7502468B2 (en) * 2003-09-02 2009-03-10 Ncipher Corporation Ltd. Method and system for generating a cryptographically random number stream
CN100353703C (zh) * 2004-01-29 2007-12-05 海信集团有限公司 可重构线性反馈移位寄存器
RU2446444C1 (ru) * 2010-11-12 2012-03-27 Государственное образовательное учреждение высшего профессионального образования Казанский государственный технический университет им. А.Н. Туполева Генератор псевдослучайных последовательностей
CN104681091A (zh) * 2013-11-27 2015-06-03 中国人民解放军信息工程大学 一种可重构线性反馈移位寄存器
AT516290B1 (de) * 2014-09-19 2019-09-15 Metadat It Beratungs Und Entw Gmbh Codegenerator
WO2017177243A1 (de) * 2016-04-14 2017-10-19 Metadat It-Beratungs- Und Entwicklungs-Gmbh Code-generator

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4596898A (en) * 1984-03-14 1986-06-24 Computer Security Systems, Inc. Method and apparatus for protecting stored and transmitted data from compromise or interception
US5105376A (en) * 1990-08-08 1992-04-14 Vlsi Technology, Inc. Linear feedback shift registers
US5170431A (en) * 1991-09-20 1992-12-08 Mas-Hamilton Group Electronic bolt lock with enhanced security features
US5570307A (en) * 1995-01-06 1996-10-29 Vlsi Technology, Inc. Digital randomizer for on-chip generation and storage of random self-programming data block
US5864665A (en) * 1996-08-20 1999-01-26 International Business Machines Corporation Auditing login activity in a distributed computing environment

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7526088B2 (en) 2002-03-05 2009-04-28 Cordes Rene-Michael Code generator and device for the synchronous or asynchronous and permanent identification or encoding and decoding of data of any particular length
JP2016220256A (ja) * 2011-11-09 2016-12-22 Kddi株式会社 ストリーム暗号の暗号化装置、ストリーム暗号の復号化装置、ストリーム暗号の暗号化方法、ストリーム暗号の復号化方法およびプログラム

Also Published As

Publication number Publication date
US6067359A (en) 2000-05-23
EP0887728A2 (en) 1998-12-30
CA2238294A1 (en) 1998-11-21
EP0887728A3 (en) 1999-03-03
CA2238294C (en) 2000-12-26
JP2940517B2 (ja) 1999-08-25

Similar Documents

Publication Publication Date Title
KR100297154B1 (ko) 의사난수발생회로및이를채용한데이터통신시스템
JP2541480B2 (ja) 擬似乱数発生装置
EP2144134B1 (en) Method for synthesizing linear finite state machines
KR100333255B1 (ko) N-비트입력값을변환된n-비트출력값으로변환하는장치및방법
US6999984B2 (en) Modification to reconfigurable functional unit in a reconfigurable chip to perform linear feedback shift register function
US11716076B2 (en) Circuits and methods for performing hash algorithm
JP2940517B2 (ja) 非線形フィードバック・シフトレジスタ回路
WO2012016588A1 (en) Bit sequence generator
JPH08171576A (ja) Vlsi回路の構成方法および設計方法
JP3512939B2 (ja) 疑似乱数発生回路及び双方向シフトレジスタ
JP4195195B2 (ja) シーケンス発生器
US5574673A (en) Parallel architecture for generating pseudo-random sequences
JP5171420B2 (ja) 擬似乱数生成装置
US4325129A (en) Non-linear logic module for increasing complexity of bit sequences
Deb et al. Design and analysis of LFSR-based stream cipher
US4813043A (en) Semiconductor test device
WO1991010182A1 (en) Generator of multiple uncorrelated noise sources
JP5119417B2 (ja) 擬似乱数生成装置
US20160211971A1 (en) Apparatus for Unconventional Non-Linear Feedback Shift Registers (NLFSRs)
JP2008140104A (ja) メモリシステム及びメモリアクセス方法
US10977003B2 (en) Linear feedback shift register with near-maximal length sequences
Fisher et al. Generation of finite inductive, pseudo random, binary sequences
JP2679820B2 (ja) ビット反転装置
WO2024226059A1 (en) Hybrid ring generators
JP2536135B2 (ja) シリアル/パラレル変換回路