JP2010128083A - シンボル線形変換装置、共有鍵生成装置、シンボル線形変換方法、共有鍵生成方法、シンボル線形変換プログラム及び共有鍵生成プログラム - Google Patents

シンボル線形変換装置、共有鍵生成装置、シンボル線形変換方法、共有鍵生成方法、シンボル線形変換プログラム及び共有鍵生成プログラム Download PDF

Info

Publication number
JP2010128083A
JP2010128083A JP2008301046A JP2008301046A JP2010128083A JP 2010128083 A JP2010128083 A JP 2010128083A JP 2008301046 A JP2008301046 A JP 2008301046A JP 2008301046 A JP2008301046 A JP 2008301046A JP 2010128083 A JP2010128083 A JP 2010128083A
Authority
JP
Japan
Prior art keywords
unit
symbol
linear conversion
vector
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.)
Pending
Application number
JP2008301046A
Other languages
English (en)
Inventor
Jun Nakajima
純 中嶋
Kenji Yao
健嗣 八百
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.)
Oki Electric Industry Co Ltd
Original Assignee
Oki Electric Industry 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 Oki Electric Industry Co Ltd filed Critical Oki Electric Industry Co Ltd
Priority to JP2008301046A priority Critical patent/JP2010128083A/ja
Publication of JP2010128083A publication Critical patent/JP2010128083A/ja
Pending legal-status Critical Current

Links

Images

Abstract

【課題】現実的なプログラムサイズで入力における誤りと出力における誤りとを統計的に無相関にすることのできるシンボル変換手法を得る。
【解決手段】入力シンボル列を線形変換して入力シンボル列よりも要素数の少ない出力シンボル列を出力する装置であって、入力シンボル列と変換行列の積を出力する線形変換部と、変換行列を線形変換部に提供するフィルタ生成部120と、を備え、フィルタ生成部120は、変換行列の少なくとも1つ以上の列ベクトルが、少なくとも2つ以上の0でない要素をもつ行列を提供する。
【選択図】図1

Description

本発明は、現実的なプログラムサイズで入力における誤りと出力における誤りとを統計的に無相関にすることのできるシンボル変換手法に関する。更に詳述すると、本発明は、入力シンボル列を通信路を介して受信した後に、縮小変換して出力シンボル列を出力する手法に関し、特に出力シンボル列における誤りの箇所および個数を特定困難にする技術に関する。
PKIが利用できない環境での鍵共有では、予め何らの共有情報も持たない機器同士が、第3者に盗聴を難しくしつつ通信をおこなう必要がある。通常、鍵情報は、平文もしくはそれを符号化等のスクランブルしたものとして送られる。
一般的な例として、管理者がはがきにパスワードを書いてユーザに送付する等して、ユーザは紙に書かれたパスワードをキーパッド等を用いて機器を設定する。キーバッドで入力された情報はハードウェア回路の電気回路を流れるから、盗聴するためには機器に直接アクセスするか、キーロガー等のいわゆるスパイウェアを機器に感染させるなどしなければならず、一般には困難である。
これに比べて無線通信路を流れる鍵情報は電波を拾うことができれば盗聴できてしまう。ここでは、送信端末が、無線通信路を用いて秘密情報を平文で送信する場合を想定する。この時、盗聴端末は、任意のビット誤り率でもって秘密情報を受信できるとする。
また、盗聴端末は、正しい秘密情報を総当り的に探索する手段を持っているとする。例えば、盗聴端末は、正しい秘密情報を鍵として用いたときの、平文と暗号文との組を入手できるとする。
いま、送信端末はNビットの鍵情報を送信しようとしているものとする。
盗聴端末は、無線通信路を盗聴して送信端末が送信した鍵情報を受信し、受信したNビットの鍵情報の中に、A個のビット誤りがあると想定して、総当たり的に正しい鍵情報の特定を試みるとする。
この場合、盗聴端末が総当たり探索をしなければならない空間の大きさは、下記(式1)となる。
A=N!/A!(N−A)! ・・・(式1)
この値が十分に大きいとき、盗聴端末による鍵情報の特定が計算量的に困難となり、結果として、無線平文での秘密情報の配送が安全なものとなると考えられる。
盗聴端末による総当たり探索の空間の大きさを増やすための方法のーつとして、配送するビット列の長さを増やす方法がある。
例えば、送信端末と受信端末がNビットの鍵情報を共有しようとしている場合を想定する。共有手順は以下の通りであるとする。
(1)送信端末は、Mビット(M>N)のビット列を受信端末に送信する。
(2)送信端末と受信端末は、そのビット列に所定の演算規則を適用してNビットの鍵情報を生成する。
(3)送信端末と受信端末が同じ演算規則を同じMビットのビット列に適用することにより、送信端末と受信端末の双方で、Nビットの鍵情報が共有される。
この場合、盗聴端末による総当たり探索の空間の大きさは、MA通りとなる。
盗聴端末が特定すべきビット列はNビットの鍵情報であるのに対し、実際に無線通信路を流れるのはMビット(M>N)であるため、盗聴端末はより大きな探索空間を探索しなければならず、盗聴を困難にすることができる。
ただし、上記手順において、Mビットのビット列をNビット列に変換する演算規則によっては、送信ビット列(Mビット)を実際に共有したいビット列(Nビット)よりも大きくする効果が十分に出ないことがある。
例えば、簡単な演算規則(変換規則)としては、NがMを割り切れることを仮定し、Mビットのビット列をNビットずつ、M/N個のブロックに分割し、全ブロックを排他的論理和で足し合わせる方法がある。
この変換方法だと、変換後に継承されるビット誤りの数は、最大でA個となる。
このとき、盗聴端末が正しい鍵情報を総当り的に求めるための探索空間は、NAとなってNに依拠するので、配送するビット列の長さをMビットに増やすことのメリットを十分に出せない。
変換後の探索空間を最大にするためには、入力ビット列中の誤り数と、出力ビット列中の誤り数およびパターンが、統計的に見て無相関にするとよい。このとき総当りによる探索空聞の大きさは、下記(式2)で与えられる。
Figure 2010128083
上述のような性質を満たす変換関数として、一方向性関数がある。
一方向性関数は、出力のビット列から入力ビット列を予測するのが困難となるようにするために、入力ビット列と出力ビット列が無相関であるように設計されている。
したがって、入力ビット列の変化(誤りビット)が出力ビット列の変化(誤りビット)に及ぼす影響も無相関となる。
一方向関数の一例として、下記非特許文献1に記載されているハッシュ関数がある。
"Secure Hash Standard",United States of America,National Institute of Science and Technology,Federal Information Processing Standard(FIPS)180−1,1993年4月
上述の一方向性関数の例として、暗号ハッシュ関数が挙げられる。
しかし、これらハッシュ関数は、衝突耐性等の条件を満たすために非線形演算を利用している。その結果、低リソースの計算機に実装したときのプログラムサイズが、計算機からみて非実用的なサイズのプログラム量となる。
そのため、現実的なプログラムサイズで入力における誤りと出力における誤りとを統計的に無相関にすることのできるシンボル変換手法が望まれていた。
本発明に係るシンボル線形変換装置は、入力シンボル列を線形変換して前記入力シンボル列よりも要素数の少ない出力シンボル列を出力する装置であって、入力シンボル列と変換行列の積を出力する線形変換部と、前記変換行列を前記線形変換部に提供するフィルタ生成部と、を備え、前記フィルタ生成部は、前記変換行列の少なくとも1つ以上の列ベクトルが、少なくとも2つ以上の0でない要素をもつ行列を提供するものである。
本発明に係るシンボル線形変換装置によれば、現実的なプログラムサイズで入力における誤りと出力における誤りとを統計的に無相関にすることができる。
特に変換行列そのものを記憶するのではなく、シードとなる1つ又は少数の初期ベクトルから他の(列)ベクトルを生成するので、プログラムサイズを小さく抑えることができる。
また、変換行列の列ベクトルの重みを2つ以上としてあるため、入力シンボル列に誤りが含まれている場合には、この性質により出力シンボル列において誤りが増幅されるケースが存在する。
即ち、受信先との間で共有しようとしている真のシンボル列よりも送信するシンボル列を長くすることの効果を十分に発揮することができる。
実施の形態1.
図1は、本発明の実施の形態1に係るシンボル線形変換装置100の機能ブロック図である。シンボル線形変換装置100は、入力シンボル列を線形変換して出力シンボル列を出力する装置である。以下では、0または1のビットを「シンボル」として用いる例を説明するが、シンボルの例はこれに限られるものではない。
以下、いずれの場合も、数字の大小は、M>N>1、m>n>1を意味するものとする。
シンボル線形変換装置100は、例えば送信端末と受信端末が鍵を共有する際に、以下のように用いることができる。
(1)送信端末は、受信端末との間でNビットの鍵を共有したいものとする。このNビットのビット列は任意のビット列でよい。
(2)送信端末は、Mビットのランダムな入力ビット列mを生成し、図1のシンボル線形変換装置100に入力する。
(3)送信端末は、シンボル線形変換装置100が出力するNビットの出力ビット列nを、受信端末との間で共有するNビットの鍵として用いる。
(4)上記Mビットのランダムな入力ビット列mを、受信端末に送信する。
(5)受信端末は、送信端末が送信した入力ビット列mを受信する。
(6)受信端末は、入力ビット列mを、図1のシンボル線形変換装置100と同様の構成を備える装置に入力する。
(7)受信端末は、シンボル線形変換装置100が出力する出力ビット列nを、送信端末との間で共有するNビットの鍵として用いる。
(8)以上の手順により、送信端末と受信端末の間でNビットの鍵(出力ビット列n)が共有されることになる。
上記手順を無線通信路上で行う場合、送信端末と受信端末は互いに入出力信号が届く比較的近い距離内に存在していると思われるため、入力ビット列mを送受信する過程でビット誤りが発生する可能性は少ない。
一方、盗聴端末が入力ビット列mを盗聴しようとする場合、一般には比較的遠い距離からこれを盗聴しようとするものと考えられる。したがって、盗聴端末が受信する入力ビット列mには、ビット誤りが含まれる可能性が高まる。
仮に、盗聴端末が図1と同様のシンボル線形変換装置を備え、盗聴したE個ビット誤りを含む入力ビット列mをこのシンボル線形変換装置に入力するものと仮定する。
攻撃者の目的は正しいビット列n(=鍵情報)であり、このために正しい入力ビット列mを総当り的に探す攻撃するケースが多い。たとえばエラービットがE=3個までならビット列mのビット長が長くても、現実的な時間内で総当り攻撃ができると期待できる。しかし今ビット列mは十分に長く、したがってEの数も十分大きいと仮定する。すなわち、最大総当り数MEは十分大きい数値である。しかしながら、盗聴端末側のシンボル線形変換装置が出力する出力ビット列nにE個のビット誤りがそのまま受け継がれたとすると、最大総当り数はNEとなり、探索対象の空間が小さくなる。
上記に鑑み、本発明に係るシンボル線形変換装置100は、入力ビット列mにビット誤りが含まれている場合に、そのビット誤り以上のビット誤りが出力ビット列n内に含まれるようなケースが存在するように構成されている。
以下、図1に示すシンボル線形変換装置100の構成について説明する。
シンボル線形変換装置100は、入力拡張部110、拡張フィルタ生成部120、論理積演算部130、排他的論理和演算部140、一時記憶部150を備える。
入力拡張部110は、入力ビット列mの任意のi番目のビット値aiをN個複製して作る、下記(式3)のべクトルαiを生成する。
Figure 2010128083
拡散フィルタ生成部120は、動作回数またはインデックスiに依存したN次元のフィルタべクトルti∈{0,1}Nを生成する機能部である。拡散フィルタ生成部120は、後述の図2で説明する構成を備える。
論理積演算部130は、拡張フィルタベクトルtiと入力拡張部110の出力との論理積を求めて排他的論理和演算部140に出力する。
排他的論理和演算部140は、一時記憶部150が記億しているNビットのビット列と論理積演算部130が出力したビット列との排他的論理和を求め、一時記憶部150に出力する。
一時記憶部150は、排他的論理和演算部140の演算結果を一時的に(例えば、1回分)記憶して次回演算時にこれを排他的論理和演算部140へ戻す。排他的論理和演算部140は、一時記憶部150が記億している演算結果と、論理積演算部130から出力されてきた次の演算結果との排他的論理和を求める。この繰り返しにより、出力ビット列nが連鎖暗号的に生成される。
なお、一時記憶部150の初期値は、全ビット0とする。
図2は、拡散フィルタ生成部120の機能ブロック図である。
拡散フィルタ生成部120は、初期ベクトル保持部121、巡回シフト演算部122、シフト量指定部123を備える。
初期べクトル保持部121は、Nビットの記憶領域からなる記憶手段であり、重みkの初期べクトルVを保持する。
ここでの重みkのべクトルとは、0と1からなるN次元べクトルのうち、1の数がk個であるようなべクトルのことである。
本実施例では、初期べクトルVと、その初期べクトルを1ビットずつ巡回シフトして作ったN−1個のべクトルを併せたべクトルの集合が、N/k個の互いに排他的べクトルを含むように決定する。ここで、排他的ベクトルとは、例えばある2つの2値ベクトルの1となるビットの位置を比較して互いに1の位置が重ならない場合、この2つのベクトルは互いに排他的なベクトルであると定義する。
初期ベクトルVの決定方法は任意でよいが、入力ビット列mと出力ビット列nの間に統計的に見て相関関係が少なくなるようなべクトルを選ぶことが望ましい。
巡回シフト演算部122は、初期ベクトル保持部121が保持している初期ベクトルの巡回シフトを行い、フィルタベクトルtiを生成して出力する。
シフト量指定部123は、巡回シフト演算部122がビット列をシフトする量を決定する。
初期べクトル保持部121が保持している初期ベクトルに対して直接巡回シフト演算を実行してもよいが、ここでは巡回シフト演算部122が一旦そのコピーを受け取ってからシフト演算を行う構成を用いる。
なお、シフト量指定部123が指定するシフト量がN以上である場合、実質のシフト量は、シフト量指定部123が指定したシフト量をNで割った余りとなる。
図1〜図2で説明した各構成部は、これらの機能を実現する回路デバイスなどのハードウェアを用いて構成してもよいし、マイコンやCPU(Central Processing Unit)のような演算装置とその動作を規定するソフトウェアで構成してもよい。
入力拡張部110と一時記憶部150は、適当な入出力インターフェースを備える。
ビット列などを保持する各機能部は、必要なメモリなどの記憶装置を備えていてもよいし、これらが共通に使用する単一の記憶装置を備えていてもよい。
本実施の形態1における「線形変換部」は、入力拡張部110、論理積演算部130、排他的論理和演算部140、一時記憶部150がこれに相当する。
また、「変換行列」は、入力拡張部110、論理積演算部130、排他的論理和演算部140、一時記憶部150が行う線形変換を行列で表したものがこれに相当する。
以上、本実施の形態1に係るシンボル線形変換装置100の構成について説明した。
次に、本実施の形態1に係るシンボル線形変換装置100の動作について、以下のステップ(1)〜(7)で説明する。
(1)入力拡張部110は、入力ビット列mを1ビットずつ受け取り、上記(式3)で説明したベクトルaiを出力する。インデックスiは、ここではi=1,2,・・・,Mの順番とするが、必ずしもこの順番でなくともよい。
(2)シフト量指定部123は、初期状態から見たシフト量としてi−1を指定する。
(3)拡散フィルタ生成部120の巡回シフト演算部122は、指定されたシフト量だけ初期ベクトルVを巡回シフトさせて、ベクトルtiを出力する。
ただし、初期ベクトルVはNビットであるのに対し、インデックスiの取りうる範囲は1〜M(M>N)なので、シフト量がN以上になる場合がある。この場合は、シフト量指定部123が指定したシフト量をNで除算した剰余を実際のシフト量とする。
したがって、ベクトルtiには、下記(式4)の関係が成立する。
Figure 2010128083
(4)論理積演算部130は、ベクトルαiとフィルタベクトルtiの、ビットごとの論理積diを求めて排他的論理和演算部140に出力する。
Figure 2010128083
(5)排他的論理和演算部140は、一時記憶部150が保存している、排他的論理和演算部140の前回の演算結果と、論理積演算部130から出力されてきた演算結果との排他的論理和を求め、一時記憶部150に出力する。
一時記憶部150は、排他的論理和演算部140の演算結果を出力ビット列nとして出力するとともに、その演算結果を一時的に(例えば、1回分)記憶する。
(6)即ち、インデックスiにおいて一時記憶部150が記憶しているビット列は、以下の(式6)で表される。
Figure 2010128083
(7)以上の手順を、入力ビット列mの全てのビットについて実行する。
以上、本実施の形態1に係るシンボル線形変換装置100の動作について説明した。
次に、本実施の形態1に係るシンボル線形変換装置100による効果を説明する。
入力ビット列mのうち、後述の排他的ベクトルの集合sに含まれる任意のべクトルtiと同じインデックスiを持つ入力ビットai(1≦i≦N)においてのみ誤りが発生したとき、その誤りビットは必ずk倍されるケースを例示する。
例えば、入力ビット列mに1個のビット誤りがあるとき、出力ビット列nにはk個のビット誤りが含まれる。このことについて、以下の(証明ステップ1)〜(証明ステップ5)で証明する。
(証明ステップ1)
拡散フィルタ生成部122が、N回動作して作るフィルタべクトルtiの集合F={ti|i=1,2,・・・,N}は、前述の通りその中にN/k個の互いに直交するべクトルを含む。この互いに直交するべクトルの集合を、特に集合sで表す。
Figure 2010128083
(証明ステップ2)
誤りのない入力ビット列mに対して、無線通信路上でビット誤り(ビットの反転)が起こる。これは、誤りが生じた位置のビットを1とし、そうでないビットを0としたビット列を排他的論理和演算したモデルとして表現することができる。
即ち、前述の誤りビット列をべクトルeとすると、誤りを含んだ入力ビット列m’は、下記(式8)で表される。
Figure 2010128083
(証明ステップ3)
シンボル線形変換装置100が行うシンボル変換処理は線形変換であるから、その変換を変換行列Hで表すことができる。その準同型性から、誤りを含んだ入力ビット列m’をシンボル線形変換装置100で変換した結果は、下記(式9)で表すことができる。
Figure 2010128083
(証明ステップ4)
上記(式9)により、出力ビット列nにおける誤りはHeで表されることが分かる。
(証明ステップ5)
このとき、排他的べクトルの集合sに含まれる任意のべクトルti(1≦i≦N)に対応する、べクトルeの要素のビット値が1となる場合、出力における誤りHeは、以下の通りとなる。
即ち、ビット拡散フィルタ集合sに含まれる重みkのべクトルtiの相互排他的性質と、集合sの要素数がN/kより、ベクトルeに含まれる1の数をy個とすると、出力に含まれる誤りの個数はk×y個となる。
以上のように、本実施の形態1によれば、1≦A≦N/kの範囲内で上記(証明ステップ5)記載の事項が成立するため、盗聴端末が誤りビットを含む入力ビット列mを盗聴しても、その誤りが最大でk倍され、得られた出力ビット列から真の出力ビット列を探すための総当り攻撃を困難にすることができる。
これにより、入力ビット列mの長さを真に共有したいビット列よりも長くした効果が十分に発揮される。
また、本実施の形態1に係るシンボル線形変換装置100が行う変換は、線形変換であるため、暗号用途のハッシュ関数のような非線形変換よりも大幅に小さなプログラムサイズで実装することができる。
実施の形態2.
実施の形態1において、拡散フィルタ生成部120は、フィルタベクトル集合Fを繰り返し生成する。繰り返しの過程で、インデックスiはフィルタベクトルtiの長さNよりも大きい値(N<i≦M)を取る。
したがって、フィルタベクトルtiについて下記(式10)の関係が成立する。
Figure 2010128083
例えば、上記(式7)で説明した集合sにt5が含まれていたとき、べクトルeの対応する要素のインデックスは、{5,5+N,5+2N,・・・}ということになる。
このとき、もしもべクトルeのインデックス5および5+Nの箇所にビット1が立っていた場合、図1の構成より、同じパターンの拡散フィルタ同士が打ち消しあい、その結果として出力にビット誤りは反映されないことになる。
このような事象を、ここでは競合と呼ぶことにする。一般化すると、偶数個の競合では出力ビット列nに反映されるビット数は0(出力にビット誤りが反映されない)であり、奇数個の競合ではk個(重みkと等しい)の誤りが出力ビット列nに反映される。
本発明では、入力ビット列mにおけるビット誤りが出力ビット列nに多く反映されることが望ましい。
そこで、本発明の実施の形態2では、競合の発生によって、出力ビット列nに反映されるビット誤り率が減少する問題への解決法を説明する。
図3は、本実施の形態2における拡散フィルタ生成部120の機能ブロック図である。
本実施の形態2において、拡散フィルタ生成部120は、実施の形態1の図2で説明した構成に加え、新たに周期記憶部124、初期ベクトル管理部125を備える。その他の構成は実施の形態1の図1〜図2と同様である。
周期記憶部124は、巡回シフト演算部122が生成する拡散フィルタtiの周期を記憶する手段である。
初期べクトル管理部125は、シフト量指定部123が指定するシフト量と周期記憶部124に記憶されている使用中の初期べクトルの周期情報から、巡回シフト演算部122が1周期分の巡回シフトを実行したことを判断するとともに、初期べクトルVを、初期べクトル保持部121が保持している他の初期ベクトルに切り替える。
図3の各構成部は、これらの機能を実現する回路デバイスなどのハードウェアを用いて構成してもよいし、マイコンやCPUのような演算装置とその動作を規定するソフトウェアで構成してもよい。
ビット列などを保持する各機能部は、必要なメモリなどの記憶装置を備えていてもよいし、これらが共通に使用する単一の記憶装置を備えていてもよい。
以上、本実施の形態2に係るシンボル線形変換装置100の構成について説明した。
次に、本実施の形態2に係るシンボル線形変換装置100の動作について説明する。
巡回シフト演算部122が初期ベクトルVを巡回シフトさせる処理を繰り返すと、巡回が初期ベクトルの先頭まで戻ってきて巡回が1巡する。
そのまま同一の初期ベクトルVについて巡回シフトを継続すると、上述の通り同一の拡散フィルタが生じて、互いに打ち消しあい、入力ビット列mの誤りが出力ビット列nに反映されない状態が発生する場合がある。
そこで、初期べクトル管理部125は、初期ベクトルVの巡回が1巡すると、初期べクトルVを、初期べクトル保持部121が保持している他の初期ベクトルに切り替える。
これにより、巡回シフト演算部122の巡回シフトが初期化され、拡散ビットフィルタが互いに打ち消しあうことがなくなる。
例えば、NはMを割り切れるとして、初期べクトルVをM/N個用意した場合を例に説明する。
各初期べクトルVが、他の初期べクトルVのシフトによって生成されるパターンのどれとも異なるならば、その初期べクトルVをシフトして作る拡散フィルタと同一のパターンのフィルタが生起されることはない。
即ち、同一のフィルタパターンが互いに打ち消しあって上述のような不都合が生じることがなくなり、入力ビット列mに含まれるビット誤りが出力ビット列nにおいて相殺される問題が回避される。
もっとも、初期ベクトルを切り替えたとしても、複数のフィルタの線形結合によっては偶然同一のフィルタパターンが生起されて打ち消しあいが生じてしまう、ということも考えられる。
あるフィルタと同じパターンが生起するフィルタの個数は、用意する複数の初期べクトルのパターンに依存するため、一概に特定することはできないので、これについての詳細は特段言及しない。
以上のように、本実施の形態2によれば、巡回シフト演算部122のシフト演算によって初期ベクトルVの巡回が1巡した時点で、初期ベクトル管理部125は、新たな初期ベクトルVを用いて、巡回シフト演算部122の巡回シフト演算を初期化する。
これにより、巡回シフト演算部122のシフト演算にともなって同じパターンの拡散フィルタ同士が打ち消しあい、出力に反映されるビット誤りの数が減少する可能性を低減できる。
実施の形態3.
以上説明した実施の形態1〜2に係るシンボル線形変換装置100は、端末間で鍵を共有する際に使用することができる。
例えば、無線送信端末と無線受信端末がともにシンボル線形変換装置100を備え、適当な入力ビット列mをシンボル線形変換装置100が変換して得られる出力ビット列nを秘密鍵として両者の間で共有することができる。
本発明の実施例では、M=20、n=10、A=2の場合において、出力の10ビットのビット列に2A=4ビット誤りが生じる場合について説明する。なお、以下の説明では実施の形態1で説明した構成を用いるが、実施の形態2の構成でも動作は同様である。
各ビット列を以下のように仮定する。
(1)真の入力ビット列:11000000000000000000(20ビット)
(2)対応する出力ビット列:1010000000(10ビット)
(3)誤りを含む入力ビット列:01100000000000000000
(4)対応する出力ビット列:0101000000
この例では、1ビット目と3ビット目に生じた誤りが、出力において2倍の4ビットの誤りになる。その理由については、実施の形態1で説明した通りである。
誤りを含む入力ビット列を入力したときのシンボル線形変換装置100の動作を、以下の図4〜図6で説明する。
図4は、誤りを含む入力ビット列m’の第1ビットを変換する処理を説明する図である。以下、ステップを追って説明する。
(1)一時記憶部150には、初期値としてn0=0000000000(10ビット)が記憶されている。また、初期べクトル保持部121には、初期べクトルとしてV=1100000000(10ビット)が記憶されている。
(2)入力拡張部110に、誤りを含む入力ビット列m’の1ビット目の値「0」が入力される。入力拡張部110は、ビット「0」をN倍し、10個の「0」からなるベクトルa1=0000000000を出力する。
(3)拡散フィルタ生成部120は、t1=1100000000(初回なので初期ベクトルVに等しい)を論理積演算部130に出力する。
(4)論理積演算部130は、a1とt1の論理積演算を行い、ビット列「0000000000」(10ビット)を排他的論理和演算部140に出力する。
(5)排他的論理和演算部140は、論理積演算部130からの出力と、一時記憶部150が記憶しているn0=0000000000とのビットごとの排他的論理和演算を行い、その結果得られるビット列「0000000000」を一時記憶部150に出力する。
(6)一時記憶部150は、その出力をn1として記憶する。
図5は、誤りを含む入力ビット列m’の第2ビットを変換する処理を説明する図である。以下、ステップを追って説明する。
(7)入力拡張部110に、誤りを含む入力ビット列m’の2ビット目の値「1」が入力される。入力拡張部110は、ビット「1」をN倍し、10個の「1」からなるベクトルa2=1111111111を出力する。
(8)拡散フィルタ生成部120は、t2=0110000000(t1を1ビットシフトしたもの)を論理積演算部130に出力する。
(9)論理積演算部130は、a2とt2の論理積演算を行い、ビット列「0110000000」(10ビット)を排他的論理和演算部140に出力する。
(10)排他的論理和演算部140は、論理積演算部130からの出力と、一時記憶部150が記憶しているn1=0000000000とのビットごとの排他的論理和演算を行い、その結果得られるビット列「0110000000」を一時記憶部150に出力する。
(11)一時記憶部150は、その出力をn2として記憶する。
図6は、誤りを含む入力ビット列m’の第3ビットを変換する処理を説明する図である。以下、ステップを追って説明する。
(12)入力拡張部110に、誤りを含む入力ビット列m’の3ビット目の値「1」が入力される。入力拡張部110は、ビット「1」をN倍し、10個の「1」からなるベクトルa2=1111111111を出力する。
(13)拡散フィルタ生成部120は、t3=0011000000(t2を1ビットシフトしたもの)を論理積演算部130に出力する。
(14)論理積演算部130は、a3とt3の論理積演算を行い、ビット列「0011000000」(10ビット)を排他的論理和演算部140に出力する。
(15)排他的論理和演算部140は、論理積演算部130からの出力と、一時記憶部150が記憶しているn2=0110000000とのビットごとの排他的論理和演算を行い、その結果得られるビット列「0101000000」を一時記憶部150に出力する。
(16)一時記憶部150は、その出力をn3として記憶する。
(17)以降、入力ビット値は全て0であり、このとき明らかに、論理積演算部130から0000000000(10ビット)のビット列が出力され、一時記憶部150の保持する値は変わらない。
(18)よって最終的な出力ビット列は、0101000000となる。
(19)以上の処理を行列で表すと、下記(式14)のようになる。以下では(式14)を導出する過程を(式11)〜(式13)を用いて説明する。
本線形変換装置においては、変換行列を最初の列ベクトルt1を巡回シフトさせて他の列ベクトルt2〜t20を生成する。入力ビット列をベクトルm、最終的な出力ビット列をベクトルn20で表す。
Figure 2010128083
ただしベクトルti (i=1,2,・・・,20)はそれぞれ次元数10のベクトルであり、ベクトルm=(a1,a2,・・・,a20)は次元数20のベクトルである。最終的な出力ベクトルn20は次元数10のベクトルである。
Figure 2010128083
上記(式12)を記号で置き換えると下記(式13)のようになる。
Figure 2010128083
ベクトルm、ベクトルn、およびフィルタベクトルtiの各要素は、0または1のビット値で構成されている。したがって、上記(式13)は、ビットごとのand演算と排他的論理和演算を用いて、下記(式14)のように表せる。
Figure 2010128083
上記(式14)は、下記(式15)のように表すこともできる。
Figure 2010128083
なお、本演算装置でr回の反復処理後の出力レジスタの状態を行列で表現すると、下記(式16)のようになる。
Figure 2010128083
(20)誤りのないビット列を入力した場合の出力ビット列は1010000000であったので、出力ビット列nでは、第1ビット目から第4ビット目までの4ビットに誤りが生じたことになる。
以上、本発明に係るシンボル線形変換装置100の動作例を説明した。
実施の形態1に係るシンボル線形変換装置100の機能ブロック図である。 拡散フィルタ生成部120の機能ブロック図である。 実施の形態2における拡散フィルタ生成部120の機能ブロック図である。 誤りを含む入力ビット列m’の第1ビットを変換する処理を説明する図である。 誤りを含む入力ビット列m’の第2ビットを変換する処理を説明する図である。 誤りを含む入力ビット列m’の第3ビットを変換する処理を説明する図である。
符号の説明
100 シンボル線形変換装置、110 入力拡張部、120 拡張フィルタ生成部、121 初期ベクトル保持部、122 巡回シフト演算部、123 シフト量指定部、124 周期記憶部、125 初期ベクトル管理部、130 論理積演算部、140 排他的論理和演算部、150 一時記憶部。

Claims (14)

  1. 入力シンボル列を線形変換して前記入力シンボル列よりも要素数の少ない出力シンボル列を出力する装置であって、
    入力シンボル列と変換行列の積を出力する線形変換部と、
    前記変換行列を前記線形変換部に提供するフィルタ生成部と、
    を備え、
    前記フィルタ生成部は、
    前記変換行列の少なくとも1つ以上の列ベクトルが、少なくとも2つ以上の0でない要素をもつ行列を提供する
    ことを特徴とするシンボル線形変換装置。
  2. 前記フィルタ生成部は、前記変換行列の第1列の要素を巡回シフトして他列を生成する
    ことを特徴とする請求項1記載のシンボル線形変換装置。
  3. 前記線形変換部は、
    前記入力シンボル列のうち1つのシンボルを前記出力シンボル列の要素数と同数複製して第1ベクトルを生成する入力拡張部と、
    前記第1ベクトルと前記変換行列の1つの列の論理積を求める論理積演算部と、
    前記論理積演算部が求めた論理積とその直前に前記論理積演算部が求めた論理積との排他的論理和を求める排他的論理和演算部と、
    前記排他的論理和演算部の演算結果を少なくとも1回分記憶する一時記憶部と、
    を備え、
    前記入力拡張部、前記論理積演算部、および前記排他的論理和演算部の処理を、
    前記入力シンボル列の全てのシンボルについて実行する
    ことを特徴とする請求項1または請求項2記載のシンボル線形変換装置。
  4. 前記フィルタ生成部は、
    前記変換行列の列ベクトルの初期値を保持する初期ベクトル保持部と、
    前記初期値の要素を巡回シフトさせて他列を生成するシフト部と、
    を備えることを特徴とする請求項1ないし請求項3のいずれかに記載のシンボル線形変換装置。
  5. 前記初期ベクトル保持部は、前記初期値の候補を複数保持しており、
    前記フィルタ生成部は、
    前記初期ベクトル保持部が保持している複数の前記候補のうち1つを前記変換行列の第1列として選択する初期ベクトル管理部と、
    を備え、
    前記初期ベクトル管理部は、
    前記シフト部が前記初期値の要素を1巡分シフトさせると、
    前記初期ベクトル保持部が保持している他の前記候補を用いて前記シフト部の巡回シフトを初期化する初期化部を有する
    ことを特徴とする請求項4記載のシンボル線形変換装置。
  6. 請求項1ないし請求項5のいずれかに記載のシンボル線形変換装置を用いて共有鍵を生成することを特徴とする共有鍵生成装置。
  7. 入力シンボル列を線形変換して前記入力シンボル列よりも要素数の少ない出力シンボル列を出力する方法であって、
    入力シンボル列と変換行列の積を出力する線形変換ステップと、
    前記変換行列を前記線形変換ステップに提供するフィルタ生成ステップと、
    を有し、
    前記フィルタ生成ステップは、
    前記変換行列の少なくとも1つ以上の列ベクトルを、少なくとも2つ以上の0でない要素をもつベクトルから生成する
    ことを特徴とするシンボル線形変換方法。
  8. 前記フィルタ生成ステップでは、
    前記変換行列の第1列の要素を巡回シフトして他列を生成する
    ことを特徴とする請求項7記載のシンボル線形変換方法。
  9. 前記線形変換ステップは、
    前記入力シンボル列のうち1つのシンボルを前記出力シンボル列の要素数と同数複製して第1ベクトルを生成する入力拡張ステップと、
    前記第1ベクトルと前記変換行列の1つの列の論理積を求める論理積演算ステップと、
    前記論理積演算ステップで求めた論理積とその直前に前記論理積演算ステップで求めた論理積との排他的論理和を求める排他的論理和演算ステップと、
    前記排他的論理和演算ステップの演算結果を少なくとも1回分記憶する一時記憶ステップと、
    を有し、
    前記入力拡張ステップ、前記論理積演算ステップ、および前記排他的論理和演算ステップの処理を、
    前記入力シンボル列の全てのシンボルについて実行する
    ことを特徴とする請求項7または請求項8記載のシンボル線形変換方法。
  10. 前記フィルタ生成ステップは、
    前記変換行列の列ベクトルの初期値を保持する初期ベクトル保持ステップと、
    前記初期値の要素を巡回シフトさせて他列を生成するシフトステップとを有する
    ことを特徴とする請求項7ないし請求項9のいずれかに記載のシンボル線形変換方法。
  11. 前記初期ベクトル保持手段ステップでは、前記初期値の候補を複数保持しており、
    前記フィルタ生成ステップは、
    前記初期ベクトル保持手段が保持している複数の前記候補のうち1つを前記変換行列の第1列として選択する初期ベクトル管理ステップを有し、
    前記初期ベクトル管理ステップは、
    前記シフトステップにおいて前記初期値の要素が1巡分シフトさせられると、
    前記初期ベクトル保持ステップで保持した他の前記候補を用いて前記シフトステップの巡回シフトを初期化する
    ことを特徴とする請求項10記載のシンボル線形変換方法。
  12. 請求項7ないし請求項11のいずれかに記載のシンボル線形変換方法を用いて共有鍵を生成することを特徴とする共有鍵生成方法。
  13. 請求項7ないし請求項11のいずれかに記載のシンボル線形変換方法をコンピュータに実行させることを特徴とするシンボル線形変換プログラム。
  14. 請求項12記載の共有鍵生成方法をコンピュータに実行させることを特徴とする共有鍵生成プログラム。
JP2008301046A 2008-11-26 2008-11-26 シンボル線形変換装置、共有鍵生成装置、シンボル線形変換方法、共有鍵生成方法、シンボル線形変換プログラム及び共有鍵生成プログラム Pending JP2010128083A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008301046A JP2010128083A (ja) 2008-11-26 2008-11-26 シンボル線形変換装置、共有鍵生成装置、シンボル線形変換方法、共有鍵生成方法、シンボル線形変換プログラム及び共有鍵生成プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008301046A JP2010128083A (ja) 2008-11-26 2008-11-26 シンボル線形変換装置、共有鍵生成装置、シンボル線形変換方法、共有鍵生成方法、シンボル線形変換プログラム及び共有鍵生成プログラム

Publications (1)

Publication Number Publication Date
JP2010128083A true JP2010128083A (ja) 2010-06-10

Family

ID=42328533

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008301046A Pending JP2010128083A (ja) 2008-11-26 2008-11-26 シンボル線形変換装置、共有鍵生成装置、シンボル線形変換方法、共有鍵生成方法、シンボル線形変換プログラム及び共有鍵生成プログラム

Country Status (1)

Country Link
JP (1) JP2010128083A (ja)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63126040A (ja) * 1986-11-14 1988-05-30 Fujitsu Ltd 誤り訂正・検出の符号系構成方法
JPH07226687A (ja) * 1994-02-10 1995-08-22 Matsushita Electric Ind Co Ltd 誤り訂正処理装置
JP2002344438A (ja) * 2001-05-14 2002-11-29 Nippon Telegr & Teleph Corp <Ntt> 鍵共有システム及び装置並びにプログラム
JP2003198383A (ja) * 2001-12-27 2003-07-11 Mitsubishi Electric Corp Ldpc符号用検査行列生成方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63126040A (ja) * 1986-11-14 1988-05-30 Fujitsu Ltd 誤り訂正・検出の符号系構成方法
JPH07226687A (ja) * 1994-02-10 1995-08-22 Matsushita Electric Ind Co Ltd 誤り訂正処理装置
JP2002344438A (ja) * 2001-05-14 2002-11-29 Nippon Telegr & Teleph Corp <Ntt> 鍵共有システム及び装置並びにプログラム
JP2003198383A (ja) * 2001-12-27 2003-07-11 Mitsubishi Electric Corp Ldpc符号用検査行列生成方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
CSNB200100069001; 向殿政男編〔船津重宏, 奥村幸一〕: '2章 フォールトトレランス技法' フォールト・トレラント・コンピューティング 初版, 198909, pp. 20-23 *
JPN6012055502; 向殿政男編〔船津重宏, 奥村幸一〕: '2章 フォールトトレランス技法' フォールト・トレラント・コンピューティング 初版, 198909, pp. 20-23 *
JPN6012055504; 金田悠紀夫, 小畑正貴, 前川禎男: 'BCプロセッサアレイと高並列マトリクス計算' 情報処理学会論文誌 Vol. 24, No. 2, 198305, pp. 175-181 *

Similar Documents

Publication Publication Date Title
Megha Mukundan et al. Hash‐One: a lightweight cryptographic hash function
JP6406350B2 (ja) 暗号処理装置、および暗号処理方法、並びにプログラム
CN107017981B (zh) 硬件辅助快速伪随机数生成
JP5156540B2 (ja) ハッシュ値生成装置
US8781116B2 (en) Generator of chaotic sequences and corresponding generating system
JP2008513811A (ja) 計算変換の方法及びシステム
JPH1153173A (ja) 擬似乱数発生方法及び装置
WO2015146430A1 (ja) 暗号処理装置、および暗号処理方法、並びにプログラム
Dawood et al. The new block cipher design (Tigris Cipher)
CN111478766B (zh) 一种分组密码meg实现方法、装置及存储介质
Pandian et al. Dynamic Hash key‐based stream cipher for secure transmission of real time ECG signal
JP2010044251A (ja) ハッシュ値生成装置、プログラム及びハッシュ値生成方法
Tian et al. Integral cryptanalysis on two block ciphers Pyjamask and uBlock
Sakallı et al. On the construction of 20× 20 and 24× 24 binary matrices with good implementation properties for lightweight block ciphers and hash functions
Deepthi et al. Cryptanalysis for reduced round Salsa and ChaCha: revisited
Nabeel et al. IoT light weight (LWT) crypto functions
CN111488575B (zh) 一种存储路径上主动防御硬件木马的系统及方法
JP4857230B2 (ja) 疑似乱数生成装置及びそれを用いた暗号化処理装置
JP2010128083A (ja) シンボル線形変換装置、共有鍵生成装置、シンボル線形変換方法、共有鍵生成方法、シンボル線形変換プログラム及び共有鍵生成プログラム
CN110071927B (zh) 一种信息加密方法、系统及相关组件
JP5578422B2 (ja) 暗号化通信システム、送信装置、受信装置、暗号化/復号化方法およびそれらのプログラム
US20100128870A1 (en) Pseudo-random number generation device, program, and method for stream encoding
Singh et al. Low-area and high-speed hardware architectures of KLEIN lightweight block cipher for image encryption
Yang et al. A new development of symmetric key cryptosystem
US20180054307A1 (en) Encryption device

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110816

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20121012

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121030

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20130312