JP3119735B2 - ビット攪拌装置 - Google Patents

ビット攪拌装置

Info

Publication number
JP3119735B2
JP3119735B2 JP04263914A JP26391492A JP3119735B2 JP 3119735 B2 JP3119735 B2 JP 3119735B2 JP 04263914 A JP04263914 A JP 04263914A JP 26391492 A JP26391492 A JP 26391492A JP 3119735 B2 JP3119735 B2 JP 3119735B2
Authority
JP
Japan
Prior art keywords
bit
bits
data
calculating
logical
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
JP04263914A
Other languages
English (en)
Other versions
JPH06120942A (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.)
Panasonic Corp
Panasonic Holdings Corp
Original Assignee
Panasonic Corp
Matsushita Electric Industrial Co 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 Panasonic Corp, Matsushita Electric Industrial Co Ltd filed Critical Panasonic Corp
Priority to JP04263914A priority Critical patent/JP3119735B2/ja
Publication of JPH06120942A publication Critical patent/JPH06120942A/ja
Application granted granted Critical
Publication of JP3119735B2 publication Critical patent/JP3119735B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は秘密通信技術に関し、特
にビット攪拌装置に関する。
【0002】
【従来の技術】0及び1からなるビット情報化されたデ
ィジタル化情報を公開通信網や放送網を使用して送信す
るに際しては、第三者の盗聴、詐称を完全に防止するの
は困難なため、近年の計算機及び情報処理技術の発達の
もと、送信側は送信情報を攪拌して送信し、一方受取側
はこの攪拌された情報を逆の手順で元に戻すことが行わ
れている。そして、この技術に用いられるのがビット攪
拌である。このビット攪拌は秘密鍵通信方式に係る技術
の一つでもあり、高速で攪拌率が高く、またLSIで実
行する場合には回路規模が小さいことが要求される。以
下、このビット攪拌をおこなうために従来なされてきた
方法について記す。
【0003】なお、実際の送受信に際しては、計算機や
各種送受信設備での処理や取り合いの便宜等をも考慮の
上、少なくも64ビットを一区切りとしてビット攪拌を
行うことが多いが、本明細書においては発明内容(要
旨)の理解性を考慮の上、原則として4ビットを一区切
りとしてビット攪拌を行う場合を説明する。また、ディ
ジタル信号の公開通信網を使用しての秘密鍵通信方法に
ついては例えば、別途本願出願人が、特願平3−199
148号、同3−227125号、同3−318816
号、同4−168007号等 にて出願し、また池野信
一、小山謙二共著 「現代暗号理論」 電子通信学会発
行 等にも説明されている技術であるため、その一般的
な内容の説明は省略する。更に、連続して発生する送信
情報を所定数ずつのビット情報に区分けする技術、これ
らのビット情報や固定値としてのビット情報に対しての
行列の演壇や排他的論理和を求めるための具体的回路構
成等は、例えば、オーム社刊 渡辺 茂 他著「マイク
ロコンピュータハンドブック」、オーム社刊 情報処理
学会編「情報処理ハンドブック」等に記載されている周
知の技術であるため、同じく説明は省略する。 第一の従来例 第一の従来例として、ディジタル化した情報を、置換に
より攪拌するビット攪拌器について説明する。図3に、
このビット攪拌器の攪拌ビット数n=4の場合の回路の
構成を示す。
【0004】以下、この置換による4ビット攪拌につい
て説明する。 [ビット攪拌器の構成] 4ビットの入力〔a0 ,a1 ,a2 ,a3 〕に対して同
じく4ビットの出力〔b0 ,b1 ,b2 ,b3 〕を a0 → b21 → b32 → b13 → b0 となるように電線(ここにいう電線とは、ビット情報と
しての電流、電圧、光等が伝わる通信線若しくは回路と
いう意味である。)を交差させたものである。 [ビット攪拌器の回路規模] 電線の引き回しであるため、回路構成は非常に簡単にな
る。 [ビット攪拌器を用いた送信信号の攪拌] ディジタル化された4ビットの情報を、このビット攪拌
器に入力し、その出力をそのまま送信する。 [受信回路] 上記送信回路で送られてきた情報の復元は、受信情報を
同じビット攪拌器の入出力部を逆にして通すことにより
なされる。 [ビット攪拌器の安全性] このビット攪拌器は、以下の行に示す4ビットの、すな
わち4個の、数学でいう置換(数1)をハード的になす
ものである。
【0005】
【数1】
【0006】本置換においては、上の行の列が入力ビッ
トで、下の行の列が出力ビットである。つまり、例えば
最初の第0ビットは最後の第3ビットに移ることを示
す。(なお、本明細書においては、置換や行列における
順番は原則として「1」からでなく「0」から数えるも
のとする。)さて、このような置換の総数は4!通りで
あるが、どの置換を用いても入力1ビットが出力1ビッ
トにしか影響を与えない。このため、送信中の情報を盗
聴した悪意ある第三者によって1ビットの変更が行われ
ても、その影響は出力1ビットにしか影響を与えない。
このため、それに気づかずに、変更された情報がそのま
ま復元される危険性がある。一例を示すなら、9(10
01)の最上位の桁が「1」から「0」に変更されたた
め1となり、ひいては2月9日が2月1日に、あるいは
1億900万円が1億100万円に変更の上復元され、
しかもこの種の変更は、意味のある「日本国」が無意味
な「日本小」や「日本見」等に変更の上復元されるのと
異なり、気付き難い。
【0007】また、通信網における何等かの異常、例え
ば、落雷等で回路の一部に不都合が生じても同様なこと
が生じる。更にまた、有料放送においては、放送料金を
納入した者にあらかじめ復号装置を貸与した上で映像情
報をディジタル信号化した上で秘密化して放送をなす
が、その際無断(無料)盗聴防止の面から復号手段の一
部でも不明であるならば、送信情報が全く復元できない
ようにしたいという要望があるが、この面からも難があ
る。
【0008】このため、かかるビット攪拌器について
は、その性能の良し悪しの尺度としてビット攪拌率とい
う概念導入せられている。そして入力ビットの変化が出
力のビットに小さな影響しか与えないことをビット攪拌
率が小さいという。逆に最適なビット攪拌とは、入力1
ビットが出力の平均半分のビットに影響を与えることで
ある。なお、実際にはいつも完全に半分であると復号の
ヒントとなること、他の事情等もあり、半分前後も採用
される。
【0009】そして、行列化とビット情報の演算では、
行列の各行に1の立つビット数が半分にあるとき、入力
に行列をかけると1の立つビットに対応するビットが出
力に影響する。なお、ディジタル信号の暗号化では、
“ビットなだれ効果”が重要であるといわれるがこれは
“出力1ビットに入力ビットの半分が関係している”と
いう意味であり、行列の半分が1であるとこれが充たさ
れる。
【0010】
【数2】 0 に関与する入力ビット a0 ,a1 ,a21 〃 a12 〃 a2 行列の各行に立つ1が半分くらいになると、半分の入力
が出力に関与する。なお、全ビットが影響すると、通常
その補数(コンプリメント)をとると、全く影響しない
こととなるため、全ビットが影響するのは好ましくな
い。
【0012】また、出力の各ビットに影響を与える入力
ビットが、対応する入力ビットを除くと相関があること
をビット攪拌に偏りがあるという。 第二の従来例 第二の従来例として、ディジタル化された情報をある特
定値との排他的論理和により攪拌するビット攪拌器につ
いて説明する。図4に、この従来例の攪拌ビット数n=
4の場合の回路構成を示す。以下、ある特定値との排他
的論理和による4ビット攪拌について説明する。 [ビット攪拌器の構成] 4ビットの入力〔a0 ,a1 ,a2 ,a3 〕と、秘密鍵
若しくは共有鍵といわれる秘密の数値情報に相応する4
ビットの特定値k=〔0,1,1,1〕とのビット毎の
排他的論理和を出力〔b0 ,b1 ,b2 ,b3 〕とす
る。 [ビット攪拌器の回路規模] 回路はビット毎の排他的論理和のみにより実現されるの
で、一般にnビットの攪拌に対してnのオーダのゲート
(ここにゲートとは、入力のための接続、切断を行う電
子回路をいい、排他的論理和は3ゲート、論理積は1ゲ
ートである。)、nビットのメモリという小さい回路と
なる。 [ビット攪拌器を用いた送信回路の一例] ディジタル化された4ビットの情報を、このビット攪拌
器に入力し、出力を取り出すことにより攪拌して送信す
る。 [受信回路] 上記送信回路で攪乱された上送られてきた情報の復元
は、受信信号をそのまま同じ回路のビット攪拌器に通す
ことによりなされる。 [ビット攪拌器の安全性] このビット攪拌器は、4ビットの特定値との排他的論理
和にすぎないので、この総数は24 通りあるが、そのい
ずれを用いても入力1ビットが出力1ビットにしか影響
を与えない。このため従来例1と同様、最適なビット攪
拌でないことがわかる。 第三の従来例 第三の従来例として、ディジタル化された情報を、各行
の1の数がその列の平均半分程度ある行列との積により
攪拌するビット攪拌器がある。図5に、この従来例の攪
拌ビット数n=4の場合の回路構成を示す。
【0013】以下、この攪拌器について説明する。 [ビット攪拌器の構成] に対して、それぞれ4ビットの入力〔a0 ,a1
2 ,a3 〕とのビット毎の論理積を取り、その各結果
に対して、それぞれ全ビットの排他的論理和を取ったも
の(これをトーナメント排他的論理和と呼ぶ)を出力と
するように構成する。なお、ここに、上記4つの特定値
i (i=1,…,4)は秘密鍵、共有鍵に相応するも
のである。 [ビット攪拌器の回路規模] 4ビットの攪拌に16個の論理積と12個の排他的論理
和が必要になり、一般にnビットの攪拌に対してn2
オーダ(ここに、n2 のオーダとは(n2 /定数)以上
(n2 *定数)以下という意味である。定数が2、3程
度である一方、nが64、128、…と大きくなると回
路規模等は実用上n2 により支配される。)のゲート数
が必要であり、きわめて大きい回路になる。また、4ビ
ットの攪拌に16ビットのメモリが必要になり、一般に
nビットの攪拌に対してn2 ビットのメモリが必要であ
る。 [ビット攪拌器を用いた送信回路の一例] 4ビットのディジタル情報を、図5に示すビット攪拌器
に入力し、攪拌した上でその出力を送信する。 [受信回路] 送信情報を復元するには、同じ回路のビット攪拌器を受
信回路として用いるが、上記4つの固定値の代わりに以
下の固定値を用いる。
【0014】 k1 ’= 〔1,1,0,1〕 k2 ’= 〔0,1,1,0〕 k3 ’= 〔1,1,0,1〕 k4 ’= 〔0,1,0,1〕 [ビット攪拌器の安全性] 上記で構成したビット攪拌器は、実際には、4ビットの
入力をA=〔a0 ,a1 ,a2 ,a3 〕、出力をB=
〔b0 ,b1 ,b2 ,b3 〕とするとき、4つの固定値
1 ,k2 ,k3 ,k4 を第零行から順に第三行(既述
のごとく、最初の行を第1行でなく第零行として数え
る。)として求められる4×4行列M2(数3)
【0015】
【数3】
【0016】に対して、出力Bの転値Bt を、(数4)
のように入力Aの転値At と行列M2との積として求め
るものである。
【0017】
【数4】
【0018】また、受信回路で使われるk1 ’,
2 ’,k3 ’,k4 ’により同様に構成した行列は丁
度M2の逆行列M2-1になっている。このとき、行列M
2の1の数が各行に対して平均半分ぐらいあるので、入
力1ビットが出力の平均半分のビットに影響を与える最
適なビット攪拌になり、ビット攪拌の偏りが緩和され
る。
【0019】
【発明が解決しようとする課題】以上説明したように、
従来のディジタル化された情報をビット攪拌して送信す
る技術には、以下のような問題がある。まず回路規模を
小さくするために、置換もしくは特定値の排他的論理和
でビット攪拌を行う第一及び第二従来例では、ビット攪
拌に偏りが存在する。また、ビット攪拌率が低いため、
第三者の悪意の操作や回路の不具合等によるビットの変
更が行われても、それに気づかないまま情報が復元され
る危険性が起こる。更に、有料秘密放送等では結果的に
事実上の解読がなされ易くなる。そしてこれらの問題は
入力に冗長性がある場合には特に顕著である。
【0020】第三従来例では、nビットの攪拌にn×n
個の論理積と(n−1)×n個の排他的論理和、n2
ットのメモリが必要になる。つまりnビットの攪拌に対
してn2 のオーダのゲート数及びメモリが必要なので、
nが大きくなると回路規模が非常に大きくなる。そして
特に、従来の技術欄で説明したごとく、通常は64ビッ
ト以上の情報を一区切りとしてビット攪乱がなされるた
め、第1及び第2従来例においては事実上の解読の容易
性はともかく、極く少数のビット変更に気づき難くな
り、第3従来例においては必要な回路規模等が急速に増
大するため、その不都合が増加する。
【0021】本発明は以上の問題点に鑑みてなされたも
のであり、攪拌率が高く、ビット攪拌に偏りがなく、か
つ回路規模の小さいビット攪拌器を提供することを目的
とする。
【0022】
【課題を解決するための手段】上記目的を達成するた
め、請求項1の発明においては、nビットの入力データ
をnビットの出力データに変換するビット攪拌装置であ
って、nビットの鍵データを記憶する記憶手段と、前記
記憶手段に記憶された鍵データと前記入力データについ
て対応するビット毎に論理積をとり、得られたn個の論
理積について有限体GF(2)上の和を算出する積和演
算手段と、前記記憶手段に記憶された鍵データの各ビッ
トを反転して得られる反転値のビットそれぞれと前記積
和演算手段によって得られた値との論理積をとる論理積
手段と、前記論理積手段により得られたnビットデータ
と前記入力データについて対応するビット毎に排他的論
理和をとることにより前記出力データを算出する論理和
手段とを備えることを特徴とする。
【0023】請求項2の発明は、請求項1の発明におい
て、前記記憶手段に記憶された鍵データは1のビット数
と0のビット数とが略等しいことを特徴とする。
【0024】請求項3の発明は、nビットの入力データ
をnビットの出力データに変換するビット攪拌装置であ
って、nビットの鍵データを記憶する記憶手段と、前記
記憶手段に記憶された鍵データを予め定められた第1の
関数に従って変換し、得られたnビットデータと前記入
力データについて対応するビット毎に論理積をとり、得
られたn個の論理積について有限体GF(2)上の和
算出する第1の積和演算手段と、前記記憶手段に記憶さ
れた鍵データを予め定められた関数に従って変換し、得
られたnビットデータと前記入力データについて対応す
るビット毎に論理積をとり、得られたn個の論理積につ
いて有限体GF(2)上の和を算出する第2の積和演算
手段と、前記記憶手段に記憶された鍵データの各ビット
を反転して得られる反転値のビットのうちk個のビット
それぞれと前記第1の積和演算手段によって得られた値
との論理積をとる第1の論理積手段と、前記反転値のk
個のビットを除く(n−k)個のビットそれぞれと前記
第2の積和演算手段によって得られた値との論理積をと
る第2の論理積手段と、前記第1の論理積手段により得
られたkビットのデータと第2の論理積手段により得ら
れた(n−k)ビットのデータとを連結して得られるn
ビットデータと前記入力データについて、対応するビッ
ト毎に排他的論理和をとることにより前記出力データを
算出する論理和手段とを備えることを特徴とする。
【0025】請求項4の発明は、請求項3の発明におい
て、前記記憶手段に記憶された鍵データは1のビット数
と0のビット数とが略等しいことを特徴とする。
【0026】請求項5の発明は、請求項4の発明におい
て、前記第1の関数は恒等置換であり、前記第2の関数
はビットの巡回シフトであることを特徴とする。
【0027】
【0028】
【0029】
【0030】
【0031】
【0032】
【作用】上記構成により、請求項1の発明においては、入力データをA=〔a 0 ,a 1 ,・・・,a n-1 〕、 出力データをB=〔b 0 ,b 1 ,・・・,b n-1 〕、 鍵データをR=〔r 0 ,r 1 ,・・・,r n-1 〕としたと
きに、出力データBは、 0 =a 0 +r 0 ^*(r 0 *a 0 +r 1 *a 1 +・・・+r 3 *a n-1 1 =a 1 +r 1 ^*(r 0 *a 0 +r 1 *a 1 +・・・+r 3 *a n-1 n-1 =a n-1 +r n-1 ^*(r 0 *a 0 +r 1 *a 1 +・・・+r n-1 *a n-1 となる。但し、^はビット反転で、乗法及び加法は共に
有限体GF(2)上の演算である。つまり、入力データ
Aの各ビットそれぞれに対して、異なる積和演算が行わ
れるのではなく、共通の積和演算(r 0 *a 0 +r 1 *a 1
+・・・+r n-1 *a n-1 )の結果を用いた演算によるビ
ット攪拌が行われる。
【0033】請求項2の発明においては、鍵データRは
1のビット数と0のビット数とが略等しいという性質を
有するので、このビット攪拌装置全体をn×nの変換行
列と考えた場合に、その変換行列の各行における1の数
が略半数となり、入力データにおける1ビットが出力デ
ータの略半数のビットに影響を与えるビット攪拌が行わ
れる。
【0034】請求項3の発明においては、例えば、nを
4、kを2、 入力データをA=〔a 0 ,a 1 ,a 2 ,a 3 〕、 出力データをB=〔b 0 ,b 1 ,b 2 ,b 3 〕、 鍵データをR=〔r 0 ,r 1 ,r 2 ,r 3 〕、 鍵データRが第1の関数f 1 によって変換された場合に
得られるデータQを Q=〔q 0 ,q 1 ,q 2 ,q 3 〕、 鍵データRが第2の関数f 2 によって変換された場合に
得られるデータSを S=〔s 0 ,s 1 ,s 2 ,s 3 〕としたときに、 出力データBは、 0 =a 0 +r 0 ^*(q 0 *a 0 +q 1 *a 1 +q 2 *a 2 +q 3 *a 3 1 =a 1 +r 1 ^*(q 0 *a 0 +q 1 *a 1 +q 2 *a 2 +q 3 *a 3 2 =a 2 +r 2 ^*(s 0 *a 0 +s 1 *a 1 +s 2 *a 2 +s 3 *a 3 3 =a 3 +r 3 ^*(s 0 *a 0 +s 1 *a 1 +s 2 *a 2 +s 3 *a 3 となる。つまり、入力データAの各ビットそれぞれに対
して、異なる積和演算が行われるのではなく、2種類の
積和演算(q 0 *a 0 +q 1 *a 1 +q 2 *a 2 +q 3 *a 3
及び(s 0 *a 0 +s 1 *a 1 +s 2 *a 2 +s 3 *a 3 )の結
果を用いた演算によるビット攪拌が行われる。
【0035】請求項4の発明においては、鍵データRは
1のビット数と0のビット数とが略等しいという性質を
有するので、このビット攪拌装置全体をn×nの変換行
列と考えた場合に、上記kの値や関数の内容によっては
その変換行列の各行における1の数が略半数となる確立
が高くなるので、入力データにおける1ビットが出力デ
ータの略半数のビットに影響を与えるビット攪拌が行わ
れ得る。
【0036】請求項5の発明においては、上記データ
Q、Rは、例えば、 Q=〔r 0 ,r 1 ,r 2 ,r 3 〕、 S=〔r 1 ,r 2 ,r 3 ,r 0 〕、 となるので、出力データBは、 0 =a 0 +r 0 ^*(r 0 *a 0 +r 1 *a 1 +r 2 *a 2 +r 3 *a 3 1 =a 1 +r 1 ^*(r 0 *a 0 +r 1 *a 1 +r 2 *a 2 +r 3 *a 3 2 =a 2 +r 2 ^*(r 1 *a 0 +r 2 *a 1 +r 3 *a 2 +r 0 *a 3 3 =a 3 +r 3 ^*(r 1 *a 0 +r 2 *a 1 +r 3 *a 2 +r 0 *a 3 となる。これら2種類の積和演算(r 0 *a 0 +r 1 *a 1
+r 2 *a 2 +r 3 *a 3 及び(r 1 *a 0 +r 2 *a 1 +r
3 *a 2 +r 0 *a 3 )は鍵データRと入力データAとのビ
ット毎の論理積となっているので、鍵データの1のビッ
ト数と0のビット数とが略等しいという性質より、この
ビット攪拌装置全体をn×nの変換行列と考えた場合
に、その変換行列の各行における1の数が略半数とな
り、入力データにおける1ビットが出力データの略半数
のビットに影響を与えるビット攪拌が行われる。
【0037】
【0038】
【0039】
【0040】
【0041】
【0042】
【実施例】以下、本発明を実施例に基づき説明する。 (第1実施例) 本実施例の基本は請求項の発明に係る。1は本発明
の攪拌ビット数n=4、分割数t=1の実施例における
ビット攪拌器の回路図を示すものである。以下本図を参
照しながら実施例の手順を説明する。 [ビット攪拌器の構成] 固定値R=〔r0 ,r1 ,r2 ,r3 〕=〔1,0,
0,1〕に対して、4ビットの入力A=〔a0 ,a1
2 ,a3 〕とのビット毎の論理積を取り、その結果に
対して、全ビットの排他的論理和を取ったもの(トーナ
メント排他的論理和)と、固定値Rの反転の各ビットと
の論理積をとり、その各出力と入力とのビット毎の排他
的論理和を取ったものを出力B=〔b0 ,b1 ,b2
3 〕とするように構成する ビット攪拌器の回路規模] 4ビットの攪拌が、排他的論理和7個、論理積8個で実
現できることになる。一般に、nビットの攪拌に排他的
論理和が2*n−1個、論理積が2*n個必要になり、
nのオーダのゲート数で実現できることになり、回路は
非常に簡単になる。また、4ビットの攪拌に必要なメモ
リが4ビットになる。一般に、nビットの攪拌に必要な
メモリはnビットになる。 [ビット攪拌器を用いた送信回路の一例] デジタル化された4ビットの情報〔a0 ,a1 ,a2
3 〕を、図1に示すビット攪拌器にそのまま入力する
ことにより攪拌して送信する。 [受信回路] 上記送信回路で送られてきた情報を復元するには、(図
1)と同じ回路を有するビット攪拌器を受信回路として
用いる。 [ビット攪拌器の安全性] 上記で構成したビット攪拌器は、実際には、4ビットの
入力をA=〔a0 ,a1 ,a2 ,a3 〕、4ビットの出
力をB=〔b0 ,b1 ,b2 ,b3 〕、1×4行列ei
を最初の列を第零列とし、第i列目のみが1で他は0で
ある行列とするとき、固定値Rに対して、第零行を前記
固定値Rの第零ビット目r0 が1であることより、e0
になるので、〔1,0,0,0〕とし、第一行を前記固
定値Rの第一ビット目r1 が0であることより、e1
前記固定値Rとの排他的論理和になるので、〔1,1,
0,1〕とし、第二行を前記固定値Rの第二ビット目r
2 が0であることより、e2 と前記固定値Rとの排他的
論理和になるので、〔1,0,1,1〕とし、第三行を
前記固定値Rの第三ビット目r3 が1であることより、
3 になるので、〔0,0,0,1〕とし、即ち(数
5)で示される行列
【0043】
【数5】
【0044】として求められるGF(2)上の4×4行
列Mを用いて、出力Bの転値Bt を、(数6)のように
入力Aの転値At と行列Mとの積として求めるものであ
る。
【0045】
【数6】
【0046】上記のように、行列Mとの乗法としてビッ
ト攪拌を行うとき、入力ビットA=〔a0 ,a1
2 ,a3 〕に対して、出力ビットB=〔b0 ,b1
2 ,b3〕は次のように計算される。 b0 =a0 +r0 ^*(r0 *a0 +r1 *a1 +r2 *a2 +r3 *a3 ) b1 =a1 +r1 ^*(r0 *a0 +r1 *a1 +r2 *a2 +r3 *a3 ) b2 =a2 +r2 ^*(r0 *a0 +r1 *a1 +r2 *a2 +r3 *a3 ) b3 =a3 +r3^*(r0 *a0 +r1 *a1 +r2 *a2 +r3 *a3 ) 但し、^はビット反転で、乗法及び加法は共に有限体G
F(2)上の演算である。そこで、上記四つの(r0
0 +r1 *a1 +r2 *a2 +r3 *a3 )の計算を
一つの回路で求めて、回路の削減を図ることにより、ビ
ット攪拌器は(図1)の回路で実現される。
【0047】またこのビット攪拌器を用いて秘密通信を
行うとき、送信回路に上記の行列Mによるビット攪拌器
をそのまま用いると、受信回路は行列Mの逆行列M-1
の積により復元できることになるが、行列Mの構成か
ら、行列Mの逆行列M-1はMに等しい。よって受信側
は、送信側と同一の回路で構成できる。ここで、固定値
の取り方から、行列Mは1の数が各行に対して平均半分
ぐらいある行列になり、入力1ビットが出力の平均半分
のビットに影響を与える最適なビット攪拌になる。
【0048】第2実施例) 本実施例は、n個毎に区切れかつ次ぎ次ぎに発生する0
若しくは1からなるビット情報を攪拌するビット攪拌器
において、各桁が0若しくは1からなるn桁の固定した
ビット情報R(r 0 ,r 1 ,…,r n - 1 )を有する固定値
部と、eiを有限体GF(2)上の第i列のみが1で他
は0である1×n行列とし、この1×n行列がn個より
なるn×n行列をMとしたとき、更に、tをn以下の正
整数、k 1 、k 2 、…、ktをk 1 +k 2 +…+kt=nなる
正整数、f 1 、f 2 、…、ftをnビットからnビットへ
のt個の関数としたときに、前記行列が上から順にk 1
個、k 2 個、…、kt個を一区切りとして合計t個に区分
けした上で、更に前記固定値から情報を得て上から第h
(ここに1≦h≦t)番の区分けされた各行において
は、行列全体の上から第i行目は前記固定値Rの第iビ
ット目riが1であればeiとし、前記固定値Rの第iビ
ット目riが0であればeiと前記固定値Rの前記関数f
hによる出力値fh(R)との排他的論理和となることに
より構成したn×n行列Mを有する行列部と、攪拌処理
が入力ビット情報をA〔a 0 ,…,a n - 1 〕、出力ビット
情報をB〔b 0 ,…,b n - 1 〕とし、更に前記行列Mにつ
いての情報を得て、その第i行第j列をmi,jと表した
ときに、bi=Σ mi,s*as(ここにi=0,…,n
−1,s=0,…,n−1,であり、Σはs=0からn
−1までの和)である攪拌部とを有することを特徴とす
るビット攪拌器に関し、これにおいて、n=4、t=
2、k1 =2、k2 =2とし、f1 は恒等置換、f2
左1ビットの巡回置換としたものである。
【0049】図2は本実施例におけるビット攪拌器の回
路図を示すものである。以下、本図を参照しながらその
手順を説明する。 [ビット攪拌器の構成] 固定値R =〔r0 ,r1 ,r2 ,r3 〕=〔1,0,
1,0〕,k1 =2,k2 =2とする。
【0050】4ビットの入力〔a0 ,a1 ,a2
3 〕と固定値Rとのビット毎の論理積を取り、その結
果に対して、全ビットの排他的論理和を取ったもの(ト
ーナメント排他的論理和)z1 と、固定値Rの左1巡回
シフトさせたものと入力ビットとのビット毎の論理積を
取り、その結果に対して、全ビットの排他的論理和を取
ったもの(トーナメント排他的論理和)z2 とを求め、
固定値Rの反転R^に対して、出力の第零ビット目は、
R^の第零ビット目とz1 との論理積をとったものと、
入力ビットの第零ビット目との排他的論理和を取ったも
のとし、出力の第一ビット目は、R^の第一ビット目と
1 との論理積をとったものと、入力ビットの第一ビッ
ト目との排他的論理和を取ったものとし、出力の第二ビ
ット目は、R^の第二ビット目とz2 との論理積をとっ
たものと、入力ビットの第二ビット目との排他的論理和
を取ったものとし、出力の第三ビット目は、R^の第三
ビット目とz2 との論理積をとったものと、入力ビット
の第三ビット目との排他的論理和を取ったものとするよ
うに構成する。 [ビット攪拌器の回路規模] 4ビットの攪拌が、排他的論理和10個、論理積12個
の規模で実現できることになる。一般に、nビットの攪
拌に、分割数t=2とすると、排他的論理和が3*n−
2個、論理積が3*n個必要になり、nのオーダのゲー
ト数で実現できることになり、回路は非常に簡単にな
る。また、4ビットの攪拌に必要なメモリが4ビットに
なる。一般に、nビットの攪拌に必要なメモリはnビッ
トになる。 [ビット攪拌器を用いた送信回路の一例] 8ビットの入力ビットを上記の4ビット攪拌器で、攪拌
して送信する回路を構成する。
【0051】入力ビットを〔a0 ,a1 ,a2 ,a3
4 ,a5 ,a6 ,a7 〕とし、入力ビットの下位4ビ
ット〔a4 ,a5 ,a6 ,a7 〕を上記で構成したビッ
ト攪拌器に入力し、その出力〔b0 ,b1 ,b2
3 〕と入力の上位4ビット〔a0 ,a1 ,a2
3 〕との排他的論理和を出力の下位4ビットとし、入
力の下位4ビット〔a4 ,a5 ,a6 ,a7 〕を出力の
上位4ビットとする操作を2回繰り返した結果を出力と
する。この回路は、同じ操作を2回繰り返すので、その
共通操作部のみの回路(図2)で実現される。 [受信回路] 上記送信回路で送られてきた情報を復元するには、上記
の送信回路の構成から、受信回路は同じ回路を逆に辿れ
ばよいことがわかる。よって、上記で求めた送信回路
(図2)と同じ回路を受信回路として用いる。 [ビット攪拌器の安全性] 上記で構成したビット攪拌器は、実際には、4ビットの
入力をA=〔a0 ,a1 ,a2 ,a3 〕、4ビットの出
力をB=〔b0 ,b1 ,b2 ,b3 〕、1×4行列ei
を最初の列を第零列とし、第i列目のみが1で他は0で
ある行列とするとき、固定値Rに対して、第零行目から
第一行目までは第一の実施例と同様に、第零行は前記固
定値Rの第零ビット目r0 が1であることより、e0
なるので、〔1,0,0,0〕とし、第一行は前記固定
値Rの第一ビット目r1 が0であることより、e1 と前
記固定値Rとの排他的論理和になるので、〔1,1,
1,0〕とし、第二行目から第三行目までは、固定値R
の1ビット左巡回置換〔0,1,0,1〕を用いて、第
二行は前記固定値Rの第二ビット目r2 が1であること
より、e2 になるので、〔0,0,1,0〕とし、第三
行目は前記固定値Rの第三ビット目r3 が0であること
より、e3 と前記固定値Rの左1ビット巡回置換との排
他的論理和になるので、〔0,1,0,0〕とし、即ち
(数7)に示す行列となる。
【0052】
【数7】
【0053】として求められるGF(2)上の4×4行
列Mを用いて、出力Bの転値Bt を、(数6)のように
入力Aの転値At と行列Mとの積として求めるものであ
る。上記のように、行列Mとの乗法として攪拌し送信さ
れるとき、入力ビット〔a0 ,a1 ,a2 ,a3 〕に対
して、出力ビット〔b0 ,b1 ,b2 ,b3 〕は次のよ
うに計算される。
【0054】 b0 =a0 +r0 ^*(r0 *a0 +r1 *a1 +r2 *a2 +r3 *a3 ) b1 =a1 +r1 ^*(r0 *a0 +r1 *a1 +r2 *a2 +r3 *a3 ) b2 =a2 +r2 ^*(r1 *a0 +r2 *a1 +r3 *a2 +r0 *a3 ) b3 =a3 +r3 ^*(r1 *a0 +r2 *a1 +r3 *a2 +r0 *a3 ) 但し、^はビット反転(r0 が1なら0、0なら1)で
あり、乗法及び加法は共に有限体GF(2)上の演算
(1+1=0+0=0、1+0=0+1=1)である。
【0055】そこで、上記二つの(r0 *a0 +r1
1 +r2 *a2 +r3 *a3 )と同じく二つの(r1
*a0 +r3 *a1 +r3 *a2 +r0 *a3 )の計算
を、それぞれ一つの回路で求めて回路の削減を図ること
により、4ビット攪拌器は(図2)の回路で実現され
る。またこのビット攪拌器を用いて秘密通信を行うと
き、送受信回路は上記で述べたように構成できる。
【0056】ここで、固定値の取り方から、行列Mは1
の数が各行に対して平均半分ぐらいある行列になり、入
力1ビットが出力の平均半分のビットに影響を与える最
適なビット攪拌になる
【0057】、第1及び第2実施例においては、固
定値Rのビット情報(4個)のうち、調度半数を1とし
たが、ビット情報の数nが、8なら3〜5個が1、16
なら7〜9個が1、32なら15〜17個が、64なら
30〜34個が、一般には{n/2±(log2n)/3}
の範囲内の整数個が1ならば、ビット攪拌率が良好、し
かも1の個数に多様性(変化)があるため復号され難
く、しかも回路構成も楽になる。
【0058】
【発明の効果】第1実施例においては、入力1ビットが
出力の平均半分のビットに影響を与える最適な4ビット
攪拌を論理積8個と排他的論理和が7個という小規模で
実現することができた。また、4ビットの攪拌に必要な
メモリが4ビットで抑えられる
【0059】実際にビット攪拌器を用いて秘密通信を行
うときには、ビット数nとして、少なくとも64以上の
大きな数が用いられる。ところが、従来の技術のnビッ
ト攪拌器は、入力1ビットが出力の平均半分のビットに
影響を与える最適なビット攪拌であるように構成する
と、回路規模がn2 のオーダのゲート数になったり、必
要なメモリがn2 ビットになったりする。また逆にnの
オーダのゲート数及びメモリという小さい回路規模で構
成すると、入力1ビットが出力1ビットにしか影響を与
えない。
【0060】しかし、本発明のように固定したビット情
報Rの1の数を全固定情報の半分程度に取って構成する
と、行列Mの1の数が各行に対して平均半分ぐらいある
ので、入力1ビットが出力の平均半分のビットに影響を
与える最適なビット攪拌になる。またビット攪拌器は、
排他的論理和が2*n−1個、論理積が2*n個、nビ
ットのメモリで実現される。このため、nのオーダのゲ
ート数という小さな回路規模で、入力1ビットが出力の
平均半分のビットに影響を与える最適なビット攪拌器を
構成することが可能になる。
【0061】第2実施例においては、入力1ビットが出
力の平均半分のビットに影響を与える最適な4ビット攪
拌を排他的論理和10個、論理積12個、必要なメモリ
が4ビットという小規模で実現することができた。第一
の実施例に比較してゲート数が増えるが、ビット攪拌の
偏りがより緩和されるという利点がある。
【0062】実際にビット攪拌器を用いて秘密通信を行
うときには、ビット数nとして、少なくとも64以上の
大きな数が用いられる。ところが、従来の技術のnビッ
ト攪拌器は、入力1ビットが出力の平均半分のビットに
影響を与える最適なビット攪拌であるように構成する
と、回路規模がn2 のオーダのゲート数になったり、必
要なメモリがn2 ビットになったりする。また逆にnの
オーダのゲート数とメモリという小さい回路規模で構成
すると、入力1ビットが出力1ビットにしか影響を与え
ない。
【0063】しかし、nビット攪拌器を本発明のように
固定したビット情報Rの1の数を全固定情報の半分ぐら
いに取って構成すると、行列Mの1の数が各行に対して
平均半分ぐらいあるので、入力1ビットが出力の平均半
分のビットに影響を与える最適なビット攪拌になる。ま
たビット攪拌器は、排他的論理和が3*n−2個、論理
積が3*n個、nビットのメモリで実現される。このた
め、nのオーダのゲート数とメモリという小さな回路規
模で、入力1ビットが出力の平均半分のビットに影響を
与える最適なビット攪拌器を構成することが可能にな
る。
【0064】更に、従来の方法は、ビット攪拌率を上げ
るために行列演算を用いると、nビットの攪拌に排他的
論理和がn2 −n個、論理積がn2 個必要になり、n2
のオーダのゲート数、またn2 のメモリが必要になると
いう問題があった。しかし本発明により、nのオーダの
ゲート数とメモリという小さい回路規模で最適なビット
攪拌率を持つビット攪拌器を構成することができる。
【0065】また、固定値を変換する関数としてビット
の巡回シフトを採用しているので回路構成が簡単とな
る。なお、固定値を変換する関数として入力値に依存
せるように構成した場合には、さらに攪拌の効果、非解
読性を向上させることができる。
【0066】上説明したように本出願に係る発明は、
従来の技術であれば不可能であったビット攪拌の偏りが
緩和され最適なビット攪拌率をもちながら回路規模が小
さいビット攪拌器を構成することができる。
【0067】なお、本願発明によってビット攪拌器を得
る構成は上記の実施例に限定されないのは勿論である。
すなわち、。任意のビット数n、固定値R、nの分割数
tについて構成可能であり、また従来ある攪拌器に付加
することも可能である。また、ハード的にでなく、大型
計算機を使用してソフト的になしてもよいのは勿論であ
る。
【図面の簡単な説明】
【図1】ビット数n=4、分割数t=1の場合のビット
攪拌器の回路図
【図2】ビット数n=4、分割数t=2の場合のビット
攪拌器の回路図
【図3】第一の従来例のビット数n=4の場合のビット
攪拌器の回路図
【図4】第二の従来例のビット数n=4の場合のビット
攪拌器の回路図
【図5】第三の従来例のビット数n=4の場合のビット
攪拌器の回路図
───────────────────────────────────────────────────── フロントページの続き (58)調査した分野(Int.Cl.7,DB名) G09C 1/00 - 5/00 H04K 1/00 - 3/00 H04L 9/00 INSPEC(DIALOG) JICSTファイル(JOIS)

Claims (5)

    (57)【特許請求の範囲】
  1. 【請求項1】 nビットの入力データをnビットの出力
    データに変換するビット攪拌装置であって、 nビットの鍵データを記憶する記憶手段と、 前記記憶手段に記憶された鍵データと前記入力データに
    ついて対応するビット毎に論理積をとり、得られたn個
    の論理積について有限体GF(2)上の和を算出する積
    和演算手段と、 前記記憶手段に記憶された鍵データの各ビットを反転し
    て得られる反転値のビットそれぞれと前記積和演算手段
    によって得られた値との論理積をとる論理積手段と、 前記論理積手段により得られたnビットデータと前記入
    力データについて対応するビット毎に排他的論理和をと
    ることにより前記出力データを算出する論理和手段とを
    備えることを特徴とするビット攪拌装置。
  2. 【請求項2】 前記記憶手段に記憶された鍵データは1
    のビット数と0のビット数とが略等しいことを特徴とす
    る請求項1記載のビット攪拌装置。
  3. 【請求項3】 nビットの入力データをnビットの出力
    データに変換するビット攪拌装置であって、 nビットの鍵データを記憶する記憶手段と、 前記記憶手段に記憶された鍵データを予め定められた第
    1の関数に従って変換し、得られたnビットデータと前
    記入力データについて対応するビット毎に論理積をと
    り、得られたn個の論理積について有限体GF(2)上
    の和を算出する第1の積和演算手段と、 前記記憶手段に記憶された鍵データを予め定められた第
    2の関数に従って変換し、得られたnビットデータと前
    記入力データについて対応するビット毎に論理積をと
    り、得られたn個の論理積について有限体GF(2)上
    の和を算出する第2の積和演算手段と、 前記記憶手段に記憶された鍵データの各ビットを反転し
    て得られる反転値のビットのうちk個のビットそれぞれ
    と前記第1の積和演算手段によって得られた値との論理
    積をとる第1の論理積手段と、 前記反転値のk個のビットを除く(n−k)個のビット
    それぞれと前記第2の積和演算手段によって得られた値
    との論理積をとる第2の論理積手段と、 前記第1の論理積手段により得られたkビットのデータ
    と第2の論理積手段により得られた(n−k)ビットの
    データとを連結して得られるnビットデータと前記入力
    データについて、対応するビット毎に排他的論理和をと
    ることにより前記出力データを算出する論理和手段とを
    備えることを特徴とするビット攪拌装置。
  4. 【請求項4】 前記記憶手段に記憶された鍵データは1
    のビット数と0のビット数とが略等しいことを特徴とす
    る請求項3記載のビット攪拌装置
  5. 【請求項5】 前記第1の関数は恒等置換であり、前記
    第2の関数はビットの巡回シフトであることを特徴とす
    る請求項4記載のビット攪拌装置。
JP04263914A 1992-10-01 1992-10-01 ビット攪拌装置 Expired - Fee Related JP3119735B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP04263914A JP3119735B2 (ja) 1992-10-01 1992-10-01 ビット攪拌装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP04263914A JP3119735B2 (ja) 1992-10-01 1992-10-01 ビット攪拌装置

Publications (2)

Publication Number Publication Date
JPH06120942A JPH06120942A (ja) 1994-04-28
JP3119735B2 true JP3119735B2 (ja) 2000-12-25

Family

ID=17396022

Family Applications (1)

Application Number Title Priority Date Filing Date
JP04263914A Expired - Fee Related JP3119735B2 (ja) 1992-10-01 1992-10-01 ビット攪拌装置

Country Status (1)

Country Link
JP (1) JP3119735B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101629612B1 (ko) * 2015-09-21 2016-06-10 (주)금강칠판교구산업 칠판 시트 구조

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3371981B2 (ja) * 1993-06-02 2003-01-27 松下電器産業株式会社 ブロック暗号作成装置
US10142103B2 (en) * 2015-12-07 2018-11-27 The Boeing Company Hardware assisted fast pseudorandom number generation
US10944568B2 (en) * 2017-10-06 2021-03-09 The Boeing Company Methods for constructing secure hash functions from bit-mixers

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101629612B1 (ko) * 2015-09-21 2016-06-10 (주)금강칠판교구산업 칠판 시트 구조

Also Published As

Publication number Publication date
JPH06120942A (ja) 1994-04-28

Similar Documents

Publication Publication Date Title
US5553012A (en) Exponentiation circuit utilizing shift means and method of using same
EP0801345B1 (en) Circuit for modulo multiplication and exponentiation arithmetic
KR100267009B1 (ko) 고속 암호화 처리를 위한 어레이 구조를 가지는 모듈러 곱셈장치
EP0328063A2 (en) Absolute value calculating circuit having a single adder
US6606385B1 (en) Data encrypting/decrypting conversion methods and apparatuses and data communication system adopting the same
US5957996A (en) Digital data comparator and microprocessor
DE10141460A1 (de) Potenzrestberechnungseinheit unter Verwendung eines Montgomery-Algorithmus
JP3119735B2 (ja) ビット攪拌装置
US20040078401A1 (en) Bias-free rounding in digital signal processing
US6816877B2 (en) Apparatus for digital multiplication using redundant binary arithmetic
US20040184609A1 (en) Random sequence generating apparatus, encryption/decryption apparatus, random sequence generating method, encryption/decryption method and program
US6434588B1 (en) Binary counter with low power consumption
US7171437B2 (en) Residue calculating unit immune to power analysis
KR0146656B1 (ko) 다치 논리합 연산장치
EP0470793B1 (en) Digital signal orthogonal transformer apparatus
JP3371981B2 (ja) ブロック暗号作成装置
JPH10153954A (ja) 暗号装置
US20050165875A1 (en) Arithmetic device
JP4472808B2 (ja) 積和演算装置及びこれを用いた暗号・復号装置
JP2907276B2 (ja) 演算処理装置
JPH10153955A (ja) 暗号装置
JP4042215B2 (ja) 演算処理装置およびその方法
JPH05344118A (ja) データ攪乱装置
US5253194A (en) Digital multiplier
JP3136709B2 (ja) べき積演算装置

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees