JPS61193183A - 乱数発生回路 - Google Patents

乱数発生回路

Info

Publication number
JPS61193183A
JPS61193183A JP60032620A JP3262085A JPS61193183A JP S61193183 A JPS61193183 A JP S61193183A JP 60032620 A JP60032620 A JP 60032620A JP 3262085 A JP3262085 A JP 3262085A JP S61193183 A JPS61193183 A JP S61193183A
Authority
JP
Japan
Prior art keywords
circuit
output
value
bit
random number
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.)
Pending
Application number
JP60032620A
Other languages
English (en)
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP60032620A priority Critical patent/JPS61193183A/ja
Publication of JPS61193183A publication Critical patent/JPS61193183A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 〔発明の利用分野〕 本発明は、乱数発生回路に関し、特に暗号機およびモン
テカルロ・シミュレータ等で使用される疑似乱数発生回
路に関するものである。
〔発明の背景〕
暗号機には、疑似乱数を使用するが、従来より乱数とし
て、2値M系列乱数が使用されている。これは、米国特
許第3816764号、米国特許第3911216号各
明細書に記載されているように、ガロア体0F(2n)
上に作られるものである。このため、長周期の乱数を発
生させるには。
高次の2の拡張ガロア体を得る必要があった。
〔発明の目的〕
本発明の目的は、長周期の疑似乱数を比較的低次の多値
既約多項式で発生し、2値演算回路で実現して、これを
暗号装置およびモンテカルロ・シミュレーションの乱数
として使用できるような乱数発生回路を提供することに
ある。
〔発明の構成〕
上記目的を達成するため、本発明の乱数発生回路は、M
 r = 2 r−1ガロア体GF(Mrn)上り乱数
を発生させるため、Mr個のビット加算器を用い、最上
位ビットの桁上げ出力を、最下位ビットの桁上げ入力に
接続し、And回路の出力が総て′1″のとき、結果出
力ビットを0′″とするようなMr値加算回路と、該M
r値加算回路の加算出力にその出力が接続され、r×r
Xノビ乗算器を用いたMr値乗算回路と、各段r個のシ
フトレジスタ複数段とで構成されることに特徴がある。
〔発明の実施例〕
以下、本発明の実施例を、図面により詳細に説明する。
第2図は1本発明に使用される2ビツトの加算器の説明
図である。
一般に、ガロア体は、素数pを素体として、ガロア体G
F(pn)に拡張できる。一方、電子計算機等で使用さ
れている演算回路は、2値演算である。従って、素数p
の演算を、2値演算を基にして行うことを提案する。先
ず、素数pには、P=2”−1・・・・・ (1) のメルセンヌ数を選ぶ。この数は、2値数からの変換が
容易である。また、基本的に、2進演算が使用できる。
例えば、M2=22−1=3   の3値演算では、2
個の2進演算器を利用して演算を行う、また、i (1
1)2 (= (3)3=O)を有効に利用することを
考えた。
以下、3値の例について説明する。
第2図の1は、1ビツトの加算器である。すなわち、j
、kを各1ビツト入力、μを下位からの桁上げビット入
力とすると、これらの2進計算結果は1桁上げ出力ビッ
トCと、出力ビットeとである。
第3図は、第2図の加算器と論理回路とを組合せた3値
加算回路の構成図であり、第4図は第3図の演算結果を
示す図である。
第3図において、1は2ビット加算器、2は排他的論理
和回路(mod2演算回路)またはナンド回路、3はア
ンド回路である。また、第4図の横をai1ate縦を
す、bl、内部(7)a、b交点をe2e□とする。
いは、Caxeax)を(10)とし、(b8゜bs)
を(10)とすれば、第3図より。
a 2+b 2によりc2=1が出力し、これがμmに
入力することにより、el:=1が出力する。
その結果として、(eaet)= (01)である。
なお、このとき、(dt−dt)は(01)であるため
、排他的論理和回路2の出力はlとなり、アンド回路3
の出力はCax−ex)= (01)となる、また、別
の例では、(az+ ai)=(01)=  (b2.
bよ)=(10)のとき、加算器1の出力は(d2.c
tt)= (it)であるため、排他的論理和回路2の
出力は0となり、従って、アンド回路3の出力は(eg
o at)=(00)である。
なお、ここで、(00)=O,(OX)=1゜(10)
=2.とすれば、第4図は、3値演算表となっている。
この3値演算回路を用いて、3値最大周期疑似乱数発生
回路を構成する。
3値最大周期疑似乱数は1次数nの原始既約多項式f 
n(x)=a nxn+a n−□x”−”+ ・・・
・拳a 1x十a O・・・ (2)(aiは、0,1
.2である)により求められる。
その周期Pnは、P=3n−1である。
n=3の場合、f 3 (x)=x”+2x+1 ・・
・・・ (3) 周期P3は、P、=33−1=26 そこで、f、を3進表示し、上式(3)を(10%式% 初期値を(001)aとして、 (010)s (1000)s= (012)3  (mod (10
(1200)3= (212)3 (mod  f3)
(2120)3:: (111)3 (nod  fa
)(1110)3= (122)3 (1220)3=  (202)3  (nod   
f3)(2020)  、=  (011)3  (n
od   f3)以下、同じようにして、 (1100)3= (112)3 (1120)s= (102) 3 (1020)3= (002)s (200)z (2000)3= (021)3 (2100)a” (121)s (1210)3= (222)3 (2220) 3= (211)z (2110)3= (101)s (1010)3= (022)s (2200) 3= (221)3 (2210) 3” (201)3 (2010)s” (001)3 これで1周期とする。
第5図は1本発明の一実施例を示す3値乱数発生回路の
ブロック図であって、シフトレジスタおよび3値加算回
路を使用している。
第5図において、S、1.S□2*S21+522tS
31+S3gはシフトレジスタ4.Ao。
A1は第3図の3値加算器イである。この回路は、シフ
トクロツタにより駆動される。
先ず、81□〜S3□のシフトレジスタがすべて′O”
にリセットされ、初期値として、P 2 +P1=(0
1)が入力されたとすると、第1クロツクに811=1
がセットされる。このシフトレジスタの状態を、(00
,00,Of)で示す。
すなわち、(S3□S 31 + S 22 * S 
1□511)である。
次のシフトクロックでは、(P2Pl)= (00)で
あれば、シフトレジスタの状態(S2の状態)は、(0
0,01,00)である。
その次のシフトクロックでも、(PgPx)=(00)
とする、S3状態は、(01,00,00)である。
第4シフトクロツクでは、(Q*Q1)= (01)で
あって、Aoの入力b!=1.A工の入力b1=1が発
生し、S4状態は、(00,01゜10)となる。
次のSIsの状態は、(01,10,00) であり 
Slの状態は、(10,01,10)である。
第7シフトクロツクでは、(QgQ□)=(10)が発
生し、A工人力は、(a2at)=(10)−(bgb
x)= (10) 、出力は、(eze 1)= (0
1)、Ao大入力、(bzbx)=(01)、出力は、
(egex)= (01)となって、S7の状態は、(
OX、OX、01)となる。
第8シフトクロツクでは、(QgQx)= (。
1)、A、入力(agat)= (01)−(b2bL
)= (01)、出力(east)= (10)−Ao
大入力agaz)= (00)−(bzbz)= (1
0)、出力(e * e t) = (10)となる。
第9シフトクロツクでは、(Q2Q□)=(01)、A
、入力(82at)= (10)−(bzb t)= 
(01)、出力(e 2 e t) = (00) −
A、入力(a2at)= (00)、(b2bx)= 
(10)、S”の状態は、(10,00,10)である
第10シフトクロツクでは、(Q2Q1)=(10)=
Ax入力(a x a t) = (10) −(bz
bx)= (1o) 、出力(e2et)=(01)、
Ao大入力bzbx)= (ox)。
S10の状態は、(00,01,01)である。
また、S11の状態は、(01,01,00)である、
以下、同じようにして、 S” 2= (01,01,10) Sl 3= (01,00,10) S14= (00,00,10) S15= (00,10,00) SIB= (10,00,00) S1フ= (00,10,01) S’ ”= (10,01,00) SI B= (01,10,01) S 2 ’= (1,0,10,10)S”= (10
,01,01) 522=  (01,00,0f) S23=  (00,10,10) S2’=  (10,10,00) S2S=  (10,10,01) 82B=  (10,00,01) S27= (00,00,01) でS’(7)状態に戻っている。すなわち、第5図では
、  f 3 (x)=x3+2x+1を満足している
。一般に、3値n次については。
fn=(x)=xn+an−4xn−1+・・・+c 
1 x+a O の既約多項式について、2個1組のシフトレジスタをn
組用意し、al=Oの位置に3値加算器イを設置する。
配線は、最終シフトレジスタの出力Q2.Q1を接続す
るが。
a1=1のとき、Q2→b2端子eQl→b2端子、a
1=2のとき、Q2→b2端子p Q1+b1端子に接
続する。
乱数は、出力Q 2 Q tを3値の乱数列として使用
する場合と、各組のレジスタの内容を乱数として使用す
る場合のいずれでも可能である。
このように1本実施例では、3値乱数が容易に発生でき
るため、GF(2n)上の乱数に0F(3n)上の乱数
が使用でき、従って、シミュレーション暗号への乱数の
応用範囲が拡張される。
すなわち、GF (2n)上の乱数周期C2がC2=2
n−1 に対して、GF (3n)上の乱数周期C3は、C,=
3n−1 であり、低次数で長周期の03が得られる。
次に、他の実施例について、説明する。
この場合にも、素数pの演算を2値で行うために、能率
のよいメンセンヌ数M1=2r−1に着目し、メンセン
ヌ数の拡張体による演算回路を提案する。
例えば、M3=23−1=7の7値演算では、3個の2
値演算回路を利用して演算を行う、7値数は、2進数3
ビツトにより表現できる。
(1)?= (001)2 (2)?= (010)、z (3)?= (011)z (4)?= (100)2 (5)  ?=  (101)  t (6)  ?=  (110)2 ここで、(a)7は7値、(XXり2は2進数を示す。
以下1本発明の一実施例として、7値の例について説明
する。
第6図(a)、(b)は、それぞれ1+1ビツト加算器
11および3×3ビット乗算器12の構成図である。a
、bは入力、Uは桁上げ入力、Cは桁上げ出力、eは加
算出力である。また、a2yal+ ao+ bl、b
l、I)Oは、乗算入力、C2+C11COは桁上げ出
力、C2,eよ。
eoは乗算結果出力である。
第7図は、1+1ビツト加算器11を利用した7値加算
回路15を示す図である。
入力a2+ C1+ aQおよびbl、bl、bOは、
各々2進表示による7値数である。また、13はNAN
DAND回路はAND回路である。
第7図の7値加算回路15の演算を、第9図(a)に示
す。
例えば、(6) 7+ (5)7の場合、a 、)+b
 (、=1で+c o=Q、e (、=1゜al+bl
=1で−01=Oe e t=1ya 2+b 2= 
(10)2で、c 、=l=ut3゜C2=oにより、 a o+b o+u 6= (10)29 Q o=1
=u 1*6o=Q。
a 1+ b 1+ u 1= (10)  t e 
01= 1 = u 21e□=0゜ a 2+b 2+u 2= (11)  2t C2=
’=uOpe 2 = 1 。
で、C2+ Bit eoが一時(001)2となるが
、定状として(100)2どなる。この時点にクロック
信号c ’Qを出して、計算結果d2sdi+d o 
 (100)2を得る。
第8図は1本発明の一実施例を示す7値乗算回路のブロ
ック図であり、第9図(b)は第8図の演算結果を示す
説明図である。
例えば、(6)7X (5)tの場合、乗算器12のC
21Qly QO出力と、e2p131* eo比出力
(110)  gX  (101)  z=(0111
10)  2であるから、 c、=Q、 c1=l、 
co=l。
(011)! fB 2 =1 g  13 1” 1 @  e o
 =Oe(110)gとなり、   ′ 従って、第9図(a)により、 (011)*+ (110)2= (010) 2が定
状状態としてg2* gi+ goが得られる。
すなわち。
5×6=2(mod7)・・・・・・・ (5)である
これらの7値演算回路15.16を用いて、7値最長周
期疑似乱数発生回路を構成することができる。7値最長
周期疑似乱数は1次数nの原始既約多項式f、(x)=
a nxn+an−x x”−”+・・・・・+a 1
x+a 、により、求められる。
その周期Pnは、P、=7”−1である。
n=1の場合、f x (X)=x+2等が原始既約多
項式で、周期は、P1=7−1=6である。
n=2の場合、F2(x)=x”+x+3等で周期は、
P2=72−1=48である。
n =3の場合、 f 3 (x) =x 3+3 x
+2等で、周期は、P3=73−1=342である。
F3を7進で示し、(1032)、と表す。
初期値を(001)?として。
(001)? (010)? (100)? (1000)?= (045)? (nod (103
すなわち、(1000)−(1032)= (0一3=
7−3=4.(mod7) −2= 7−2 = 5 、  (m o d 7 )
従って、(0−3−2)= (045)である。
(450)? (4500)?= (526)y   mod (10
32)             すなわち。
(4500)?=4X (1032)?= (55−1
)?= (526)? 12=5  (mod7)、8=1  (mod7)以
下、同じようにして。
(5260)?= (254)? (2540)y=(553)? (5530)?= (524)? (5240)?= (234)? (2340)?= (353)y (3530)?= (511)t (5110)  フ= (104)  フ(1040)
?= (015)t (150)? 第1図は、本発明の一実施例を示す7値最長周期疑似乱
数発生回路の構成図である。
Ftz〜F33の3個3段のシフトレジスタ17.18
を使用している。前述のF3の7値最長周期疑似乱数発
生回路である。なお、シフトレジスタ17,1Bのうち
、終段のシフトレジスタ18の出力は逆論理出理を使用
している。F3(x ) = x 3+ 3 x + 
2であるため、乗算回路16のMPl、MP、は(3)
?=  (2)qをシフトレジスタ18の出力f、、f
1.f0に対して乗算するように設定する。この回路は
、シフトクロックにより駆動される。
初めに−a2e ale aQに、(0,0,1)2=
 (1)?を1回のみ入力した後は、(0,0゜0)2
= (0)?とする(なお、シフトレジスタ17.18
は、すべて110”にリセットされている)、第1クロ
ツクで、出力aにより(1)7がセットされ、この時の
シフトレジスタ17.18の状態を(001)、と示す
、すなわち。
F 33= F 32 = F 3t = OF 23
 ” F 2□=F21=O F 1s = F l 2= Oe    F□1=1
次の第2クロック時には、F21が“1”にセットされ
、Fllは“0″にリセットされる。これを(010)
7と示す。
同じように、第3クロック時には(100)?どなる。
$−4クロック時には、h2.hl、ho倍信号。
hz=1.ht=1.ho=O−(110)2”(6)
7が出力される。
MPoの出力は(6)?X (2)7= (5)sMP
lの出力は(6)フ×(3)?= (4)4F13〜F
1□が(O)7であるから、F13=1.F1□=O,
F11=1 F23=1.F2□=O,F 2t =0が設定され、
(045)、の状態となる。
次の第5クロック時には、h2〜h、が0”であるため
、(450)?の状態となる。
第6クロツクは、h 2=O,h 1=1.h o=1
、(oli)z= (3)  ?が出力され、MPO=
 (3)7X (2)?= (6)  7MP 1 =
 (3)  ? X (3)  ?= (2)  ?F
1=(0)?   (F□3=O−F□2=O9F 1
 t = o) テあるから、(526)?(7)状態
となる。
第7クロック時には、h=2.   (h 2=Q。
h 1=1− h o=o)が出力される。
MPo” (2)?X (2)?= (4)tMP1=
 (2)?X (3)?= (6)?Fl=(6)? であるから、F2へのセットは、   (6)?+(6
)?= (5)  フとなり、(254)?の状態とな
る。
以下、同じような手順で進行し、第343クロツク時に
、(001)の状態が戻ってくる。
一般に、Mr=2r−1の素数に対して、1+1ビツト
加算器をr個用い、最上位ビットの桁上げ出力を、最下
位ビットの桁上げ入力に接続し、結果ビットが総て“1
”となっている時を除く、すなわちオール“1”のAn
d回路を設け。
その出力が1”のとき、結果出力ビットをII OII
とする。これを、Mr値加算回路と呼ぶ。
次に、I’×rビット乗算器を用い、この出力を第8図
と同じように、Mr値加算回路の加算入力に接続する。
これを、Mr値乗算回路と呼ぶ。
Mr値における最長周期疑似乱数を得るために。
GF(Mr)上の原始既約多項式fM”nを与える。
fMrn=anxn+an−1xn−1+・ ・ ・+
alx+a(。
乱数発生回路は、第1図で明らかなように、各段、r個
のシフトレジスタを設け、Mr値加算回路、Mr値乗算
回路を定数81に対応して設置する。このとき、Mr値
乗算回路の乗数設定はalの値である。乱数0次に対し
、上記の回路をn段設ける。最終段のシフト出力は、逆
論理値として各段Mr値乗算回路の被乗数入力に接続す
る。
なお、第4図のN a n d回路13、And回路1
4は1乗算回路16において7の乗数で“0′″になる
ことから(第9図(b)参照)、特に必要というわけで
はない。
本実施例では、最大周期疑似乱数が、最終段シフトレジ
スタの正論理値を、Mr値列として使用することができ
る。また、各段からの正論理値を、OF(Mrn)の値
として使用できる。
〔発明の効果〕
以上、説明したように、本発明によれば、多値乱数が簡
単に発生できるため、シミュレーション暗号への乱数の
応用範囲が拡張される。
【図面の簡単な説明】
第1図は本発明の一実施例を示す7値最長疑似乱数発生
回路の構成図、第2図は2ビツト加算器の構成図、第3
図は第2図の2ビツト加算器と論理回路を用いた3値加
算回路の構成図、第4図は第3図の加算結果を示す図、
第5図はシフトレジスタと3値加算回路を用いた3値乱
数発生回路の構成図、第6図は1+1ビツト加算器と3
×3ビット乗算器のブロック図、第7図は本発明に用い
る7値加算回路の構成図、第゛8図は本発明に用いる7
値乗算回路の構成図、第9図は第7図および第8図の加
算回路と乗算回路の演算結果を示す図である。 11:1+1ビット加算器、12:3X3ビット乗算器
、13:Nand回路、14 : A n d回路、1
5ニア値加算回路、16:7値乗算回路、17.18:
シフトレジスタ、1:2ビット加算器、2:排他的論理
和回路(mod2演算回路)またはN a n d回路
、3:And回路、4:シフトレジスタ。 職 穎 Q        (婦 @zlfJ         f、y日射2図    
  第7図 8j/■

Claims (1)

  1. 【特許請求の範囲】 1、Mr=2^r−1ガロア体GF(Mr^n)上の乱
    数を発生させるため、Mr個のビット加算器を用い、最
    上位ビットの桁上げ出力を、最下位ビットの桁上げ入力
    に接続し、And回路の出力が総て“1”のとき、結果
    出力ビットを“0”とするようなMr値加算回路と、該
    Mr値加算回路の加算入力にその出力が接続され、かつ
    r×rビット乗算器を用いたMr値乗算回路と、各段r
    個のシフトレジスタ複数段とで構成されることを特徴と
    する乱数発生回路。 2、ガロア体3^n(GF(3^n))上の乱数を発生
    させる場合、2個のビット加算器を用いた3値加算回路
    と、2列のシフトレジスタとを設けることを特徴とする
    特許請求の範囲第1項記載の乱数発生回路。
JP60032620A 1985-02-22 1985-02-22 乱数発生回路 Pending JPS61193183A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP60032620A JPS61193183A (ja) 1985-02-22 1985-02-22 乱数発生回路

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP60032620A JPS61193183A (ja) 1985-02-22 1985-02-22 乱数発生回路

Publications (1)

Publication Number Publication Date
JPS61193183A true JPS61193183A (ja) 1986-08-27

Family

ID=12363892

Family Applications (1)

Application Number Title Priority Date Filing Date
JP60032620A Pending JPS61193183A (ja) 1985-02-22 1985-02-22 乱数発生回路

Country Status (1)

Country Link
JP (1) JPS61193183A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008304914A (ja) * 2007-06-07 2008-12-18 Harris Corp 選択された統計的アーティファクトを有する混合基数数生成器
JP2008304916A (ja) * 2007-06-07 2008-12-18 Harris Corp 先験的に定義された統計的アーティファクトを有する混合基数変換
WO2020121451A1 (ja) * 2018-12-12 2020-06-18 日本電気株式会社 乱数供給方法および装置

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008304914A (ja) * 2007-06-07 2008-12-18 Harris Corp 選択された統計的アーティファクトを有する混合基数数生成器
JP2008304916A (ja) * 2007-06-07 2008-12-18 Harris Corp 先験的に定義された統計的アーティファクトを有する混合基数変換
WO2020121451A1 (ja) * 2018-12-12 2020-06-18 日本電気株式会社 乱数供給方法および装置
JPWO2020121451A1 (ja) * 2018-12-12 2021-10-21 日本電気株式会社 乱数供給方法および装置
US12254286B2 (en) 2018-12-12 2025-03-18 Nec Corporation Random number supply method and device

Similar Documents

Publication Publication Date Title
CA2631924C (en) Extending a repetition period of a random sequence
US4667301A (en) Generator for pseudo-random numbers
KR20050088506A (ko) 다중 세정도를 지원하는 확장형 몽고메리 모듈러 곱셈기
CA2225899A1 (en) A method and apparatus for finite field multiplication
KR100377172B1 (ko) 데이터 암호화 표준 알고리즘을 이용한 암호화 장치의 키스케쥴러
JPS6197746A (ja) 乱数発生装置
CN101304312B (zh) 一种适用于精简指令集处理器的加密单元
US7480691B2 (en) Arithmetic device for multiple precision arithmetic for Montgomery multiplication residue arithmetic
JPS61193183A (ja) 乱数発生回路
CN102105860A (zh) 用于实施特征2乘法的方法和处理器设备
Surendran et al. Implementation of fast multiplier using modified Radix-4 booth algorithm with redundant binary adder for low energy applications
JP4282193B2 (ja) 乗算装置
Reji et al. Three-Operand Binary Addition Using Parallel Prefix Adders
CN101335741B (zh) 认证加密的迦罗瓦计数模式中赫序运算的加速方法与装置
JP4709685B2 (ja) 擬似乱数生成装置、擬似乱数生成方法および擬似乱数生成プログラム並びに暗号化装置および復号化装置
Xie et al. Low-complexity systolic multiplier for GF (2 m) using Toeplitz matrix-vector product method
CN110046875B (zh) 一种siacoin挖矿算法的硬件实现方法及装置
Choi et al. Characteristic Polynomial of 90 UCA and Synthesis of CA using Transition Rule Blocks
Ramapragada et al. Design and FPGA implementation of high-speed area and power efficient 64-bit modified dual CLCG based pseudo random bit generator
EP4689875A1 (en) Hybrid ring generators
JPH0916379A (ja) 通信方法とその装置
KR100316025B1 (ko) 데이터 암호 표준 알고리즘을 이용한 암호 및 복호 장치
JP3806762B2 (ja) 乱数発生装置、乱数発生方法およびプログラム
JP3618554B2 (ja) 符号発生方法および符号発生装置
Mishra et al. Pseudorandom bit generation using a modified Dual-CLCG method: a systematic review