JPH11161164A - 公開鍵暗号方式と暗号化装置および復号装置 - Google Patents

公開鍵暗号方式と暗号化装置および復号装置

Info

Publication number
JPH11161164A
JPH11161164A JP9324051A JP32405197A JPH11161164A JP H11161164 A JPH11161164 A JP H11161164A JP 9324051 A JP9324051 A JP 9324051A JP 32405197 A JP32405197 A JP 32405197A JP H11161164 A JPH11161164 A JP H11161164A
Authority
JP
Japan
Prior art keywords
dictionary
matrix
random number
plaintext
public key
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
JP9324051A
Other languages
English (en)
Inventor
Masao Kasahara
正雄 笠原
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.)
Kasahara Masao
Original Assignee
Kasahara Masao
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 Kasahara Masao filed Critical Kasahara Masao
Priority to JP9324051A priority Critical patent/JPH11161164A/ja
Publication of JPH11161164A publication Critical patent/JPH11161164A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 【課題】 暗号化の演算および復号化の演算が簡単で、
データ処理速度を高くする。 【解決手段】 暗号文Cを、共通の辞書行列となる縮退
したワードの集合GD (m,t)に平文Aの成分a0
1 ,…,am-1 のデータを代入した状態で、固有の公
開鍵行列となる行列KG と縮退したワードの集合G
D (m,t)とを基に CT =KG ・GD (m,t)T の演算によって生成し、平文Aを、暗号文Cと補正数Γ
(r)と乱数rと整数dとを基に A={[C+Γ(r)]T d +r の演算によって復号する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、例えば広域ネット
ワークを利用するデータ通信の分野で、秘密を要する各
種情報を暗号化し、あるいは暗号化された各種情報を復
号する公開鍵暗号方式とそれに用いる暗号化装置および
復号装置に関するものである。特に、この発明の公開鍵
暗号方式では、有限体上の乗算を一方向関数として利用
している。また、暗号化装置では、有限体上の乗算器を
用いて暗号化を行っている。
【0002】
【従来の技術】情報化社会の著しい進展とともに、デー
タ、音声、画像等を中心とした多種多様かつ大容量の情
報通信(記録)システムが構築されつつある。特に、最
近、ISDNを中心とする公共的な性格の強いネットワ
ークの普及と、パーソナルコンピュータを初めとする計
算機群を相互にネットワークで結んだパーソナル的な性
格の強いインターネットの爆発的な普及とが相俟って、
ようやく本格的なマルチメディア社会が到来しようとし
ている。
【0003】情報通信(記録)に関わる技術の目的は、
情報源から出力されるデータ、音声情報、画像情報等
を、 (1)高信頼度に(正しく) (2)高能率に(速く,コンパクトに) (3)高セキュリティを保証して(安全に) 受信者に伝えること(通信路の主体が記憶装置である場
合には、受信者または送信者に再生すること)である。
(1)に関連する技術が誤り訂正技術であり、(2)に
関連する技術は音声・画像符号化を中心とする高能率符
号化技術であり、さらに、(3)に関連する技術は情報
セキュリティ技術である。
【0004】情報セキュリティ技術は、 (1)共通鍵暗号(慣用暗号) (2)公開鍵暗号 に大別される。送信側における暗号化鍵と受信側におけ
る復号鍵とが同一である暗号方式を共通鍵暗号あるいは
慣用暗号と称する。暗号は古い歴史を有しているが、従
来の暗号は全てこのタイプに属している。
【0005】1976年に、Diffie-Hellmanは、従来の
暗号の殻を破る公開鍵暗号の概念を明らかにした。公開
鍵暗号と共通鍵暗号の著しい差は、公開鍵暗号において
は、暗号化鍵と復号化鍵とが異なっていることである。
通常、公開鍵方式においては、その復号用の鍵を暗号化
用の鍵から導くことが計算量の点できわめて困難とな
り、この理由によって暗号化鍵を公開することができ
る。1977年には、優れた公開鍵暗号方式としてのR
SA(Rivest-Shamir-Adleman )暗号が発明されてい
る。
【0006】
【発明が解決しようとする課題】前述のように、暗号方
式は、共通鍵暗号方式、公開鍵暗号方式に分けられる
が、共通鍵暗号においては、加入者グループにMユーザ
ーが存在する場合には、鍵の総数は M2 ≒0.5M2
であり、公開鍵のMに比べ、一般に非常に大きな数にな
る。各ユーザーにとって通信相手は高々1000程度で
あるとしても、1000個の異なった鍵を通信相手毎に
準備することは相当煩わしい問題である。したがって早
晩、セキュリティ技法の中心は公開鍵暗号の時代が到来
する。しかし、公開鍵暗号はRSA暗号がそうであるよ
うに、データ処理速度が一般に低くなることが実用化へ
の大きな壁となって立ちはだかっている。例えばRSA
暗号の場合、合成数nを512ビットとすると暗号化お
よび復号処理の主要部分は、512ビット×512ビッ
トの乗算と、1024ビット÷512ビットの除算を、
たとえ高速指数計算法を用いたとしても、それぞれ50
0回程度必要とする。このため、公開鍵暗号方式の高速
化が火急の課題となっている。
【0007】したがって、本発明の第1の目的は、暗号
化演算および復号演算が簡単で、共通鍵暗号方式と同程
度のデータ処理速度を可能とする公開鍵暗号方式を提供
することである。また、本発明の第2の目的は、高セキ
ュリティを保証することができる公開鍵暗号方式を提供
することである。
【0008】また、本発明の第3の目的は、暗号化演算
が簡単で、高速に暗号化を実施することができる暗号化
装置を提供することである。また、本発明の第4の目的
は、共通構造のハードウェアの外部入力パターンの設定
を単に変更するだけで固有の公開鍵の違いに対応するこ
とができ、公開鍵の変更に容易に対応することができる
暗号化装置を提供することである。
【0009】また、本発明の第5の目的は、復号演算が
簡単で、高速に復号を実施することができる復号装置を
提供することである。また、本発明の第6の目的は、共
通構造のハードウェアの外部入力パターンの設定を単に
変更するだけで固有の公開鍵の違いに対応することがで
き、公開鍵の変更に容易に対応することができる復号装
置を提供することである。
【0010】
【課題を解決するための手段】本発明の請求項1記載の
公開鍵暗号方式は、2元体上のm次多項式G(X)(m
は2以上の整数)を法とする剰余環R(m)上の公開鍵
暗号方式であって、平文A∈R(m)(以下、Aと略記
する)をベクトル(a0 ,a1 ,…,am- 1 )とし、乱
数r∈R(m)(以下、rと略記する)をベクトル(r
0 ,r1 ,…,rm-1 )とし、暗号文C∈R(m)(以
下、Cと略記する)をベクトル(C 1 ,C2 ,…,C
m-1 )としたときに、共通の辞書行列となる縮退したワ
ードの集合(以下、縮退したワードの集合を縮退辞書と
呼ぶ)GD (m,t)に平文Aの成分a0 ,a1 ,…,
m-1 の実現値(データ)を代入した状態で、暗号文C
を、固有の公開鍵行列となる行列KGと縮退辞書G
D (m,t)とを基に CT =KG ・GD (m,t)T の演算によって生成し、平文Aを、暗号文Cと秘密鍵で
ある3つのパラメータとしての補正数Γ(r),乱数r
および整数dとを基に A={[C+Γ(r)]T d +r の演算によって復号することを特徴とする。
【0011】ただし、平文Aの実現値(データ)は、例
えばaI =0のときに、0がaI の実現値(データ)で
あると定義される。また、行列KG と補正数Γ(r)と
縮退辞書GD (m,t)と整数dとは以下のようにして
求める。m次多項式G(X)の周期をeとし、周期eと
は互いに素の条件で整数hを選び、周期eを法としてh
×d=1を満たす整数dを選び、平文Aと乱数rの和の
h乗(A+r)h ∈R(m)(以下、(A+r)h と略
記する)をベクトル(b0 ,b1 ,…,bm-1 )とし、
平文Aと乱数rの和のh乗(A+r)h の第(J+1)
番目の成分bJ を、平文Aおよび乱数rの成分{aI
I }(0≦I≦m−1)のt次関数FJ t (a0 ,a
1 ,…,am-1 ,r0 ,r1 ,…,rm-1 )(tは2以
上の整数)で与え(以下、t次関数をFJ t と略記す
る)、t次関数FJ t を乱数rの成分{r I }のみが含
まれる項HJ t とそれ以外の項GJ t とに分割して FJ t =GJ t +HJ t とし、t次関数FJ t において平文Aおよび乱数rの成
分{aI ,rI }によって構成されるt次項のそれぞれ
をワードとし、辞書順に並べられたワードの集合(以
下、ワードの集合を辞書と呼ぶ)をW(m,t)とし、
この辞書W(m,t)を乱数rの成分{rI }のみが含
まれるワードの集合よりなる辞書H(m,t)とそれ以
外のワードの集合よりなる辞書G(m,t)とに分け、
連接によって W(m,t)=G(m,t)*H(m,t) とし、辞書G(m,t)と辞書H(m,t)とから縮退
辞書GD (m,t)と縮退辞書HD (m,t)とをそれ
ぞれ求め、縮退辞書GD (m,t)と縮退辞書H
D (m,t)と行列Kとを用いて、平文Aと乱数rの和
のh乗(A+r)h の転置ベクトル[(A+r)h T
を展開して K・[GD (m,t)*HD (m,t)]T で表したときに、行列Kを縮退辞書GD (m,t)に作
用する行列KG と縮退辞書HD (m,t)に作用する行
列KH とに分けて、 K=[KG H ] とすることにより、行列KG と行列KH とを求め、縮退
辞書HD (m,t)に乱数rの成分r0 ,r1 ,…,r
m-1 の実現値(データ)を代入した状態で、補正数Γ
(r)を、 Γ(r)T =KH ・HD (m,t)T の演算によって求める。
【0012】この方式によれば、縮退辞書GD (m,
t)に平文Aの成分a0 ,a1 ,…,am-1 の実現値
(データ)を代入した状態で、縮退辞書GD (m,t)
T と行列KG との積KG ・GD (m,t)T を演算する
ことにより暗号文Cを生成することができ、また暗号文
Cと補正数Γ(r)とを加算し、その加算結果の転置行
列〔C+Γ(r)〕T をd乗し、その演算結果に乱数r
を加えることにより平文Aを復号することができ、暗号
化演算および復号演算が簡単で、共通鍵暗号方式と同程
度のデータ処理速度を可能としている。すなわち、本発
明の暗号方式では、暗号化および復号処理の主要部分
は、暗号化においてはKG とGD (m,t)の乗算であ
り、例えばm=64の場合、2080ビット(KG )×
2080ビット(GD (m,t))の乗算を、64重の
並列処理により、1回実行するだけで済む。また、復号
においては、高速指数計算法を適用すると、log2mクロ
ックタイムで実行される。これは、m=64の場合、6
クロックタイムで終了することを意味する。しかも、公
開鍵行列である行列KG および共通の辞書行列である縮
退辞書GD (m,t)から、m次多項式G(X)、整数
h、整数d、乱数r、補正数Γ(r)等の秘密鍵を求め
ることが、極めて困難であることから、高セキュリティ
を保証することができる。
【0013】本発明の請求項2記載の暗号化装置は、請
求項1記載の公開鍵暗号方式に用いる暗号化装置であっ
て、縮退辞書GD (m,t)に平文Aの成分a0
1 ,…,am-1 の実現値(データ)を代入するデータ
代入機能と、行列KG と平文Aの成分a0 ,a1 ,…,
m-1 の実現値(データ)を代入した縮退辞書G
D (m,t)とを基に CT =KG ・GD (m,t)T の演算によって暗号文Cを生成する演算機能とを備えて
いる。
【0014】この構成によれば、データ代入機能によっ
て縮退辞書GD (m,t)に平文Aの成分a0 ,a1
…,am-1 の実現値(データ)を代入し、演算機能によ
って行列KG と縮退辞書GD (m,t)の乗算を行うこ
とにより、暗号文Cの各成分C0 ,C1 ,…,Cm-1
算出することができ、暗号化演算が簡単で、高速に暗号
化を実施することができ、しかも共通構造のハードウェ
アの外部入力パターンの設定を単に変更するだけで固有
の公開鍵の違いに対応することができ、公開鍵の変更に
容易に対応することができる。
【0015】本発明の請求項3記載の暗号化装置は、請
求項1記載の公開鍵暗号方式に用いる暗号化装置であっ
て、平文Aの成分a0 ,a1 ,…,am-1 の実現値(デ
ータ)を記憶するレジスタ群と、レジスタ群の各実現値
(データ)と行列KG の各行毎の実現値(データ)とを
基に CT =KG ・GD (m,t)T の演算によって暗号文Cの各成分C0 ,C1 ,…,C
m-1 を算出する積和演算回路とを備えている。
【0016】この構成によれば、レジスタ群によって平
文Aの成分a0 ,a1 ,…,am-1の実現値(データ)
を記憶し、レジスタ群の各実現値(データ)と行列KG
の各行毎の実現値(データ)とを基に、積和演算回路で
縮退辞書GD (m,t)T と行列KG との積KG ・GD
(m,t)T に従って暗号文Cの各成分C0 ,C1
…,Cm-1 を算出することができ、暗号化演算が簡単
で、高速に暗号化を実施することができ、しかも共通構
造のハードウェアの外部入力パターンの設定を単に変更
するだけで固有の公開鍵の違いに対応することができ、
公開鍵の変更に容易に対応することができる。
【0017】本発明の請求項4記載の復号装置は、請求
項1記載の公開鍵暗号方式に用いる復号装置であって、
暗号文Cと補正数Γ(r)とを加算する第1の加算機能
と、第1の加算機能による加算結果の転置行列〔C+Γ
(r)〕T をd乗する演算機能と、演算機能による演算
結果に乱数rを加えることにより平文Aを復号する第2
の加算機能とを備えている。
【0018】この構成によれば、第1の加算機能により
暗号文Cと補正数Γ(r)とを加算し、演算機能により
第1の加算機能による加算結果の転置行列〔C+Γ
(r)〕 T をd乗し、第2の加算機能により演算機能に
よる演算結果に乱数rを加えることにより平文Aを復号
することができ、復号演算が簡単で、高速に復号を実施
することができ、しかも、共通構造のハードウェアの外
部入力パターンの設定を単に変更するだけで固有の公開
鍵の違いに対応することができ、公開鍵の変更に容易に
対応することができる。
【0019】本発明の請求項5記載の復号装置は、請求
項1記載の公開鍵暗号方式に用いる復号装置であって、
暗号文Cと補正数Γ(r)とを各成分毎にそれぞれ加算
する第1の加算器と、m次多項式G(X)に対応して帰
還経路を選択的に形成するスイッチ手段を有する縦続接
続したm個のレジスタからなり、第1の加算器の各出力
を初期入力として(h−1)×d回シフト動作をする帰
還型シフトレジスタと、帰還型シフトレジスタの各出力
と乱数rの各成分をそれぞれ加算する第2の加算器とを
備えている。
【0020】この構成によれば、第1の加算器により暗
号文Cと補正数Γ(r)とを各成分毎にそれぞれ加算
し、帰還型シフトレジスタにより第1の加算器の各出力
を初期入力として(h−1)×d回シフト動作をし、第
2の加算器により帰還型シフトレジスタの各出力と乱数
rの各成分をそれぞれ加算することにより、平文Aの各
成分a0 ,a1 ,…,am-1 を算出することができ、復
号演算が簡単で、高速に復号を実施することができ、し
かも、共通構造のハードウェアの外部入力パターンの設
定を単に変更するだけで固有の公開鍵の違いに対応する
ことができ、公開鍵の変更に容易に対応することができ
る。
【0021】本発明の請求項6記載の暗号装置は、請求
項1記載の公開鍵暗号方式に用いる暗号装置であって、
縮退辞書GD (m,t)に平文Aの成分a0 ,a1
…,a m-1 の実現値(データ)を代入するデータ代入機
能と、行列KG と平文Aの成分a0 ,a1 ,…,am-1
の実現値(データ)を代入した縮退辞書GD (m,t)
とを基に CT =KG ・GD (m,t)T の演算によって暗号文Cを生成する演算機能と、暗号文
Cと補正数Γ(r)とを加算する第1の加算機能と、第
1の加算機能による加算結果の転置行列〔C+Γ
(r)〕T をd乗する演算機能と、演算機能による演算
結果に乱数rを加えることにより平文Aを復号する第2
の加算機能とを備えている。
【0022】この構成によれば、データ代入機能によっ
て縮退辞書GD (m,t)に平文Aの成分a0 ,a1
…,am-1 の実現値(データ)を代入し、演算機能によ
って行列KG と縮退辞書GD (m,t)の乗算を行うこ
とにより、暗号文Cの各成分C0 ,C1 ,…,Cm-1
算出することができ、暗号化演算が簡単で、高速に暗号
化を実施することができ、しかも共通構造のハードウェ
アの外部入力パターンの設定を単に変更するだけで固有
の公開鍵の違いに対応することができ、公開鍵の変更に
容易に対応することができる。また、第1の加算機能に
より暗号文Cと補正数Γ(r)とを加算し、演算機能に
より第1の加算機能による加算結果の転置行列〔C+Γ
(r)〕T をd乗し、第2の加算機能により演算機能に
よる演算結果に乱数rを加えることにより平文Aを復号
することができ、復号演算が簡単で、高速に復号を実施
することができ、しかも、共通構造のハードウェアの外
部入力パターンの設定を単に変更するだけで固有の公開
鍵の違いに対応することができ、公開鍵の変更に容易に
対応することができる。
【0023】本発明の請求項7記載の暗号装置は、請求
項1記載の公開鍵暗号方式に用いる暗号装置であって、
平文Aの成分a0 ,a1 ,…,am-1 の実現値(デー
タ)を記憶するレジスタ群と、レジスタ群の各実現値
(データ)と行列KG の各行毎の実現値(データ)とを
基に CT =KG ・GD (m,t)T の演算によって暗号文Cの各成分を算出する積和演算回
路と、暗号文Cと補正数Γ(r)とを各成分毎にそれぞ
れ加算する第1の加算器と、m次多項式G(X)に対応
して帰還経路を選択的に形成するスイッチ手段を有する
縦続接続したm個のレジスタからなり、第1の加算器の
各出力を初期入力として(h−1)×d回シフト動作を
する帰還型シフトレジスタと、帰還型シフトレジスタの
各出力と乱数rの各成分をそれぞれ加算する第2の加算
器とを備えている。
【0024】この構成によれば、レジスタ群によって平
文Aの成分a0 ,a1 ,…,am-1の実現値(データ)
を記憶し、レジスタ群の各実現値(データ)と行列KG
の各行毎の実現値(データ)とを基に、積和演算回路で
縮退辞書GD (m,t)T と行列KG との積KG ・GD
(m,t)T に従って暗号文Cの各成分C0 ,C1
…,Cm-1 を算出することができ、暗号化演算が簡単
で、高速に暗号化を実施することができ、しかも共通構
造のハードウェアの外部入力パターンの設定を単に変更
するだけで固有の公開鍵の違いに対応することができ、
公開鍵の変更に容易に対応することができる。また、第
1の加算器により暗号文Cと補正数Γ(r)とを各成分
毎にそれぞれ加算し、帰還型シフトレジスタにより第1
の加算器の各出力を初期入力として(h−1)×d回シ
フト動作をし、第2の加算器により帰還型シフトレジス
タの各出力と乱数rの各成分をそれぞれ加算することに
より、平文Aの各成分a0 ,a1 ,…,am-1 を算出す
ることができ、復号演算が簡単で、高速に復号を実施す
ることができ、しかも、共通構造のハードウェアの外部
入力パターンの設定を単に変更するだけで固有の公開鍵
の違いに対応することができ、公開鍵の変更に容易に対
応することができる。
【0025】本発明の請求項8記載の記録媒体は、請求
項1記載の公開鍵暗号方式を実施するプログラムを記憶
している。この構成によると、記憶したプログラムをコ
ンピュータで実行することにより、請求項1の公開鍵暗
号方式と同様の作用を有する。請求項9記載の記録媒体
は、請求項2または請求項3記載の暗号化装置で生成さ
れた暗号文Cを記録する。
【0026】この構成によると、暗号文Cを保存する際
に、保存した暗号文Cの内容を秘密鍵を知らない人が解
読することが極めて困難であり、高セキュリティを保証
することができる。請求項10記載の記録媒体は、請求
項6または請求項7記載の暗号装置で生成された暗号文
Cを記録する。
【0027】この構成によると、暗号文Cを保存する際
に、保存した暗号文Cの内容を秘密鍵を知らない人が解
読することが極めて困難であり、高セキュリティを保証
することができる。請求項11記載の伝送路は、請求項
2または請求項3記載の暗号化装置で生成された暗号文
Cを伝送する。
【0028】この構成によると、暗号文Cを伝送する際
に、伝送した暗号文Cの内容を秘密鍵を知らない人が解
読することが極めて困難であり、高セキュリティを保証
することができる。請求項12記載の伝送路は、請求項
6または請求項7記載の暗号装置で生成された暗号文C
を伝送する。
【0029】この構成によると、暗号文Cを伝送する際
に、伝送した暗号文Cの内容を秘密鍵を知らない人が解
読することが極めて困難であり、高セキュリティを保証
することができる。請求項13記載の公開鍵行列・補正
数生成方法は、2元体上のm次多項式G(X)(mは2
以上の整数)を法とする剰余環R(m)上の公開鍵暗号
方式で用いる公開鍵行列としての行列KG と補正数Γ
(r)とを生成する方法であり、任意のm次多項式G
(X)を選び、このm次多項式G(X)の周期eを求
め、周期eとは互いに素の条件で整数hを選び、周期e
を法としてh×d=1を満たす整数dを選び、平文Aを
ベクトル(a0 ,a1 ,…,am-1 )とし、乱数rをベ
クトル(r0,r1 ,…,rm-1 )とし、平文Aと乱数
rの和のh乗(A+r)h をベクトル(b0 ,b1
…,bm-1 )とし、縮退辞書GD (m,t)と縮退辞書
D (m,t)と行列Kとを用いて、平文Aと乱数rの
和のh乗(A+r)h の転置ベクトル[(A+r)h
T を展開して K・[GD (m,t)*HD (m,t)]T で表したときに、行列Kを縮退辞書GD (m,t)に作
用する行列KG と縮退辞書HD (m,t)に作用する行
列KH とに分けて、 K=[KG H ] とすることで、行列KG と行列KH とを求め、補正数Γ
(r)を、縮退辞書HD (m,t)に乱数rの成分
0 ,r1 ,…,rm-1 の実現値(データ)を代入した
状態で、 Γ(r)T =KH ・HD (m,t)T の演算によって求めることを特徴とする。
【0030】ただし、縮退辞書GD (m,t)と縮退辞
書HD (m,t)とは以下のようにして求める。平文A
と乱数rの和のh乗(A+r)h の第(J+1)番目の
成分bJ を、平文Aおよび乱数rの成分{aI ,rI
(0≦I≦m−1)のt次関数FJ t (a0 ,a1
…,am-1 ,r0 ,r1 ,…,rm-1 )(tは2以上の
整数)で与え(以下、t次関数をFJ t と略記する)、
t次関数FJ t を乱数rの成分{rI }のみが含まれる
項HJ t とそれ以外の項GJ t とに分割して FJ t =GJ t +HJ t とし、t次関数FJ t において平文Aおよび乱数rの成
分{aI ,rI }によって構成されるt次項のそれぞれ
をワードとし、辞書順に並べられたワードの集合よりな
る辞書をW(m,t)とし、この辞書W(m,t)を乱
数rの成分{rI}のみが含まれるワードの集合よりな
る辞書H(m,t)とそれ以外のワードの集合G(m,
t)よりなる辞書とに分け、連接によって W(m,t)=G(m,t)*H(m,t) とし、辞書G(m,t)と辞書H(m,t)とから縮退
辞書GD (m,t)と縮退辞書HD (m,t)とをそれ
ぞれ求める。
【0031】この方法によると、2元体上のm次多項式
G(X)(mは2以上の整数)を法とする剰余環R
(m)上の公開鍵暗号方式で必要となる公開鍵行列とし
ての行列KG と補正数Γ(r)とを求めることができ
る。請求項14記載の記録媒体は、請求項13記載の公
開鍵行列・補正数生成方法を実施するプログラムを記録
する。
【0032】この方法によると、記憶したプログラムを
コンピュータで実行することにより、2元体上のm次多
項式G(X)(mは2以上の整数)を法とする剰余環R
(m)上の公開鍵暗号方式で必要となる公開鍵行列とし
ての行列KG と補正数Γ(r)とを求めることができ
る。請求項15記載のICカードは、請求項13記載の
公開鍵行列・補正数生成方法を実施する機能を組み込ん
でいる。
【0033】この構成によると、コンピュータにセット
することにより、2元体上のm次多項式G(X)(mは
2以上の整数)を法とする剰余環R(m)上の公開鍵暗
号方式で必要となる公開鍵行列としての行列KG と補正
数Γ(r)とを求めることができる。請求項16記載の
公開鍵暗号方式は、q元体(qは3以上の整数)上のm
次多項式G(X)(mは2以上の整数)を法とする剰余
環R(m)上の公開鍵暗号方式であって、平文Aをq元
体上のベクトル(A0 ,A1 ,…,Am-1 )とし、乱数
rをq元体上のベクトル(r0 ,r1 ,…,rm-1 )と
し、暗号文Cをq元体上のベクトル(C1 ,C2 ,…,
m-1 )としたときに、平文Aの成分をq元体上の乱数
R=(R0 ,R1 ,…,Rm-1 )により、平文A(C)
=(a0 ,a1 ,…,am- 1 )に変換し、共通の辞書行
列となる縮退したワードの集合(以下、縮退したワード
の集合を縮退辞書と呼ぶ)GD (m,t)に乱数変換さ
れた平文A(C)の成分a0 ,a 1 ,…,am-1 の実現
値(データ)を代入した状態で、暗号文Cを、固有の公
開鍵行列となる行列KG と縮退辞書GD (m,t)とを
基に CT =KG ・GD (m,t)T の演算によって生成し、乱数変換された平文A(C)
を、暗号文Cと秘密鍵である3つのパラメータとしての
補正数Γ(r),乱数rおよび整数dとを基に A(C)={[C+Γ(r)]T d +r の演算によって復号し、乱数変換された平文A(C)を
逆変換の乱数R(T)=(R0 -1,R1 -1,…,Rm-1
-1)により逆変換し、もとの平文A=(A0 ,A 1
…,Am-1 )を復号することを特徴とする。
【0034】ただし、aI =RI I であり、かつRI
≠0であり、またAI =RI -1Iである。また、平文
Aの実現値(データ)は、例えばAI =0のときに、0
がA I の実現値(データ)であると定義される。また、
行列KG と補正数Γ(r)と縮退辞書GD (m,t)と
整数dとは以下のようにして求める。m次多項式G
(X)の周期をeとし、周期eとは互いに素の条件で整
数hを選び、周期eを法としてh×d=1を満たす整数
dを選び、乱数変換された平文A(C)と乱数rの和の
h乗(A(C)+r)h をq元体上のベクトル(b0
1 ,…,bm-1 )とし、乱数変換された平文A(C)
と乱数rの和のh乗(A(C)+r)h の第(J+1)
番目の成分bJ を、乱数変換された平文A(C)および
乱数rの成分{a I ,rI }(0≦I≦m−1)のt次
関数FJ t (a0 ,a1 ,…,am-1 ,r 0 ,r1
…,rm-1 )(tは2以上の整数)で与え(以下、t次
関数をFJ tと略記する)、t次関数FJ t を乱数rの
成分{rI }のみが含まれる項HJ tとそれ以外の項G
J t とに分割して FJ t =GJ t +HJ t とし、t次関数FJ t において乱数変換された平文A
(C)および乱数rの成分{aI ,rI }によって構成
されるt次項のそれぞれをワードとし、辞書順に並べら
れたワードの集合よりなる辞書をW(m,t)とし、こ
の辞書W(m,t)を乱数rの成分{rI }のみが含ま
れるワードの集合よりなる辞書H(m,t)とそれ以外
のワードの集合よりなる辞書G(m,t)とに分け、連
接によって W(m,t)=G(m,t)*H(m,t) とし、辞書G(m,t)とH(m,t)とから縮退辞書
D (m,t)と縮退辞書HD (m,t)とをそれぞれ
求め、縮退辞書GD (m,t)と縮退辞書HD (m,
t)と行列Kとを用いて、乱数変換された平文A(C)
と乱数rの和のh乗(A(C)+r)h の転置ベクトル
[(A(C)+r)h T を展開して K・[GD (m,t)*HD (m,t)]T で表したときに、行列Kを縮退辞書GD (m,t)に作
用する行列KG と縮退辞書HD (m,t)に作用する行
列KH とに分けて、 K=[KG H ] とすることにより、行列KG と行列KH とを求め、縮退
辞書HD (m,t)に乱数rの成分r0 ,r1 ,…,r
m-1 の実現値(データ)を代入した状態で、補正数Γ
(r)を、 Γ(r)T =KH ・HD (m,t)T の演算によって求める。
【0035】この方式によれば、縮退辞書GD (m,
t)に平文Aの成分a0 ,a1 ,…,am-1 の実現値
(データ)を代入した状態で、縮退辞書GD (m,t)
T と行列KG との積KG ・GD (m,t)T を演算する
ことにより暗号文Cを生成することができ、また暗号文
Cと補正数Γ(r)とを加算し、その加算結果の転置行
列〔C+Γ(r)〕T をd乗し、その演算結果に乱数r
を加えることにより乱数変換された平文A(C)を復号
し、さらにこの乱数変換された平文A(C)を逆変換の
乱数R(T)=(R0 -1,R1 -1,…,Rm-1 -1)によ
り、元の平文A=(A0 ,A1 ,…,Am-1 )を復号す
ることができ、暗号化演算および復号演算が簡単で、2
元の場合と同様に共通鍵暗号方式と同程度のデータ処理
速度を可能とし、しかも公開鍵行列である行列KG およ
び共通の辞書行列である縮退辞書GD(m,t)から、
m次多項式G(X)、整数h、整数d、乱数r、補正数
Γ(r)等の秘密鍵を求めることが、極めて困難である
ことから、高セキュリティを保証することができる。
【0036】請求項17記載のディジタル署名方法は、
請求項1または請求項16記載の公開鍵暗号方式を用い
てディジタル署名を行うディジタル署名方法であって、
署名文送信者側で秘密の乱数xを生成し、自己の秘密鍵
である整数d、乱数rおよび補正数Γ(r)を用いて、
平文Aに対し、 {(A+x)d −r,x−Γ(r)} を署名文として生成し、署名文受信者側で署名文を受け
取り、(A+x)d −rの各成分の実現値(データ)を
平文Aの成分a0 ,a1 ,…,am-1 の実現値(デー
タ)と見なして縮退辞書GD (m,t)に代入した状態
で、署名文送信者の公開鍵行列KG と前記縮退辞書GD
(m,t)とを基に DT =KG ・GD (m,t)T の演算によって、擬似暗号文Dを生成し、平文Aを、擬
似暗号文Dとx−Γ(r)とを基に A=D−{x−Γ(r)} の演算によって復号することを特徴とする。
【0037】この方法によれば、署名文送信者側で平文
Aから署名文を生成し、署名文受信者側で署名文を元の
平文Aに復号することができる。平文Aから {(A+x)d −r,x−Γ(r)} を署名文として生成できるのは、秘密の乱数xを生成
し、自己の秘密鍵である整数d、乱数rおよび補正数Γ
(r)を知っている署名文送信者に限られるので、復号
した平文Aが意味のある平文であれば、署名文送信者か
ら送られたものであると断定することができ、署名文送
信者の署名として有効である。
【0038】請求項18記載のディジタル署名方法は、
請求項17記載のディジタル署名方法において、署名文
送信者が縮退辞書GD (m,t)に署名文{(A+x)
d −r,x−Γ(r)}の実現値(データ)を代入した
状態で、署名文受信者の公開鍵行列である行列KG と縮
退辞書GD (m,t)とを基に暗号化署名文を生成し、
署名文受信者が自己の秘密鍵である3つのパラメータと
しての補正数Γ(r),乱数rおよび整数dとを基に暗
号化署名文から署名文を復号することを特徴とする。
【0039】この方法によると、署名文を署名文受信者
以外の他人に対して秘匿状態を保つことができる。
【0040】
【発明の実施の形態】以下、本発明の実施の形態の公開
鍵暗号方式ならびに、それに用いる暗号化装置および復
号装置について、図面を参照しながら説明する。最初
に、公開鍵暗号方式の実施の形態について説明する。説
明の対象とする公開鍵暗号方式は、最も単純な体である
2元体F2 上の公開鍵暗号方式である。
【0041】まず、2元体F2 上のm次多項式G(X)
(mは2以上の整数)を法とする剰余環R(m)上の公
開鍵暗号方式について説明する。なお、m次多項式G
(X)の周期をeとする。ここで、m次多項式G(X)
の周期eについて定義する。すなわち、多項式1+Xe
がm次多項式G(X)によって割り切れ、n<eなる正
整数に対し、多項式1+Xn がm次多項式G(X)によ
って割り切れないときに、m次多項式G(X)の周期を
eという。なお、2元体F2 上の加算および乗算は、周
知のように、1+1=0、1+0=1、0+1=1、0
+0=0、1・1=1、1・0=0、0・1=0、0・
0=0であり、特に1+1=0であることから、1=−
1が成り立つ。1=−1の関係より、2元体F2 におい
ては、減算と加算とは一致する。
【0042】本明細書では、剰余環R(m)の元αを、
適宜、ベクトルおよび多項式でそれぞれ次のように表
す。
【0043】
【数1】α=(α0 ,α1 ,…,αm-2 ,αm-1
【0044】
【数2】α(X)=α0 +α1 X+…+αm-2 m-2
αm-1 m-1 ここで、秘密の整数hを、m次多項式G(X)の周期e
とは互いに素、すなわち、(h,e)=1を満たすとい
う条件のもとに選ぶ。ベクトル表現で(a1 ,a2
…,am-1 )と表される平文A∈R(m)と同じくベク
トル表現で(r1 ,r2 ,…,rm-1 )と表される乱数
r∈R(m)に対し、平文Aと乱数rの和のh乗(A+
r)h ∈R(m)をベクトルで
【0045】
【数3】 (A+r)h =(b0 ,b1 ,…,bm-2 ,bm-1 ) と表記する。以下、本公開鍵暗号方式の構成条件を説明
する。(A+r)h ∈R(m)の第J+1番目の成分b
J を平文Aおよび乱数rの成分{aI ,rI }(0≦I
≦m−1)のt次関数
【0046】
【数4】FJ t (a0 ,a1 ,…,am-1 ,r0
1 ,…,rm-1 ) で与える。次数tについては後述する。以下において
は、上記t次関数を、FJ t と略記する。ここで、t次
関数FJ t を平文Aの成分aI が全く含まれない項、す
なわち、乱数rの成分{rI }のみによって構成される
項HJ t とそれ以外の成分からなる項GJ t とに分割す
る。すなわち、
【0047】
【数5】FJ t =GJ t +HJ t とする。ここで、平文Aおよび乱数rの成分{aI ,r
I }の記号を以下に示す辞書順に配列する。 a0 <a1 <…<am-1 <r0 <r1 <…<rm-1 上式においては、「<」は大小関係を意味するのではな
く、左側を若い順序にある記号、つまり辞書順でa0
先頭になり、rm-1 が末尾となるということを意味す
る。
【0048】ここで、平文Aおよび乱数rの成分
{aI ,rI }によって辞書順に構成されるt次項のそ
れぞれをワードと呼ぶ。辞書順に並べられた全ての可能
なワードの集合を辞書と呼び、W(m,t)と表記す
る。辞書W(m,t)のうちの{rI}のみによって構
成されるワードの集合よりなる辞書をH(m,t)と
し、それ以外のワードの集合よりなる辞書をG(m,
t)とする。
【0049】辞書G(m,t)およびH(m,t)を用
いて、辞書W(m,t)を、以下のように連接(concat
enation :記号*)によって表記する。
【0050】
【数6】W(m,t)=G(m,t)*H(m,t) ここで、辞書G(m,t)の次元gG および辞書H
(m,t)の次元gH は、以下のように与えられる。
【0051】
【数7】gG mt m0 mt-1 m1 +…
m1 mt-1
【0052】
【数8】gH m0 mt ただし、上式において、例えば、 mt は、m個の中か
ら重複を許してt個取り出す組み合わせの数を意味し、
組み合わせの記号Cを用いると、
【0053】
【数9】mt m+t-1t で表せる。ところで、2元体F2 の元においては、
【0054】
【数10】aI ・aI =aI
【0055】
【数11】aI +aI =0 であり、また秘密の乱数rの成分rI に対し、
【0056】
【数12】aI ・rI =0 (rI =0のとき)
【0057】
【数13】aI ・rI =aI (rI =1のとき) であることを考慮すると、G(m,t)の成分のうち、
相異なる成分(この場合、t次以下となる場合を許容す
る)の総数は、
【0058】
【数14】gGD m1 m2 +…+ mt に縮退される。G(m,t)が縮退されたものをG
D (m,t)と記す。なお、辞書H(m,t)の部分
も、rI ・rI =rI であることを考慮すると、縮退さ
れ、その次数gHDは、
【0059】
【数15】gHD=gGD で与えられる。H(m,t)が縮退されたものをH
D (m,t)と記す。ここで、ベクトル(A+r)h
転置ベクトル[(A+r)h T は、適当なm×(gGD
+gHD)の行列Kを用いて、
【0060】
【数16】[(A+r)h T =K・[GD (m,t)
*HD (m,t)]T で与えることができる。ただし、行列Kは、
【0061】
【数17】
【0062】で与えることができる。上式は、[(A+
r)h T の第(J+1)番目の成分bJ に対するt次
関数FJ t の具体的な形状がKJ (0≦J≦m−1)に
よって、一意的に決定されるを意味する。ここで、行列
Kを
【0063】
【数18】K=[KG H ] とする。ただし、KG は縮退したワードの集合よりなる
縮退辞書GD (m,t)に作用して特定のワードを選択
するための部分行列であり、KH は縮退したワードの集
合よりなる縮退辞書HD (m,t)に作用する部分行列
である。行列KGは公開鍵行列として公開され、行列K
H は秘密鍵となり、後述の補正数Γ(r)の生成に用い
られる。以下において、これらの行列KG ,KH の導出
法について述べる。
【0064】平文Aを一般に、ベクトル表現で
【0065】
【数19】A=(a0 ,a1 ,…,am-1 ) とし、多項式表現で
【0066】
【数20】A(X)=a0 +a1 X+…+am-1 m-1 とし、秘密の乱数rを同様にベクトル表現で
【0067】
【数21】r=(r0 ,r1 ,…,rm-1 ) とし、多項式表現で
【0068】
【数22】r(X)=r0 +r1 X+…+rm-1 m-1 とする。なお、上記の説明では、ベクトル表現の平文A
の各成分a0 ,a1 ,…,am-1 を多項式表現の平文A
(X)の各次の係数に割り当てるときに、成分a 0 を0
次の係数に割り当て、成分a1 を1次の係数に割り当
て、以下同様にして成分aI を多項式のI次の係数に割
り当てているが、これに限らず、暗号パラメータ生成者
が任意に割り当てて設計することができる。
【0069】ここで、m次多項式G(X)の周期eと互
いに素な秘密の整数hを選ぶ。具体的な手法の一つを以
下に説明する。整数hを、
【0070】
【数23】h=h(1)+h(2)+…+h(t) を満たすものとする。ただし、任意のh(I)は2のべ
き乗、すなわち、
【0071】
【数24】h(I)=2a(I) で与えられるものとする。ただし、a(I)は正整数で
ある。そして、[A(X)+r(X)]h(I)∈R(m)
を求めて、これらの積[A(X)+r(X)]h
【0072】
【数25】[A(X)+r(X)]h =[A(X)+r
(X)]h(1)・[A(X)+r(X)]h(2)・…・[A
(X)+r(X)]h(t) ∈R(m) に従って導く。上式の係数より、直ちに行列KG ,KH
が得られる。
【0073】ここで、暗号化および復号の手続きについ
て説明する。 暗号方式の概要 〔共通の辞書〕・縮退辞書GD (m,t) 〔公開鍵〕 ・行列KG 〔秘密鍵〕 ・2元体F2 上のm次の多項式G(X) ・h=h(1)+h(2)+…+h(t) ただし、h(I)=2a(I)で、a(I)は正の整数 ・hd≡1 mod e を満たす整数d ・Γ(r)T =KH ・HD (m,t)T 以上により、暗号化、復号の手続きは以下のようにまと
められる。
【0074】暗号化の手続き 〔ステップ1〕平文A=(a0 ,a1 ,…,am-1 )の
実現値(データ)を、縮退辞書GD (m,t)に代入す
る。 〔ステップ2〕暗号文Cを CT =KG ・[GD (m,t)]T の演算によって導く。
【0075】復号の手続き 〔ステップ1〕暗号文Cに補正数Γ(r)を加えること
により、[(A+r)h T を導く(下式参照)。 C+Γ(r)=[(A+r)h T 〔ステップ2〕[(A+r)h T をd乗することによ
り、(A+r)を導く(下式参照)。
【0076】[(A+r)h d =A+r 〔ステップ3〕(A+r)に乱数rを加えることによ
り、平文Aを復号する(下式参照)。 A+r+r=A+r−r=A (2元体では、1
=−1) 以上で、本発明の実施の形態の公開鍵暗号方式の一般的
な説明を終わった。以下に、m=3、t=2の場合の具
体例について説明する。
【0077】まず、剰余環R(3)について説明する。
2元体F2 における元は、0,1のみ、すなわち、F2
={0,1}である。2元体F2 上の秘密の3次多項式
G(X)を例えば、
【0078】
【数26】G(X)=1+X+X3 とする。この3次多項式G(X)による余りの集合R
(3)は、2次以下の2元体F2 上の多項式の集合であ
り、
【0079】
【数27】R(3)={0,1,X,1+X,X2 ,1
+X2 ,X+X2 ,1+X+X2 } である。余りの集合R(3)の元は、多項式表現のα0
+α1 X+α2 2 とベクトル表現の(α0 ,α1 ,α
2 )とが対応することから、
【0080】
【数28】R(3)={(000),(100),(0
10),(110),(001),(101),(01
1),(111)} と表せる。余りの集合R(3)という概念は、非常に広
く、全ての2元体F2 上の多項式が余りの集合R(3)
の何れかの元と等しいと考えることを意味する。例え
ば、X3 +X4 は1+X+X3 で割ることにより、余り
が1+X2 となるので、
【0081】
【数29】X3 +X4 =1+X2 と対応させる。上式は、X3 +X4 が1+X+X3 によ
る割算の余りに変換されたことを強調するために、
【0082】
【数30】 X3 +X4 ≡1+X2 mod(1+X+X3 ) と表記されることもある。つぎに、多項式G(X)の周
期について説明する。多項式G(X)=1+X+X
3 は、1+X7 を割り切るが、1≦n<7を満たす1+
n を割り切ることはない。したがって、多項式G
(X)=1+X+X3 の周期eは、 e=7 である。
【0083】つぎに、整数hと整数eの関係((h,
e)=1)について説明する。整数hと整数eの最大公
約数がsである場合、通常(h,e)=sと表記され
る。なお、“整数hと整数eとが互いに素”というの
は、整数hと整数eの最大公約数が1という意味であ
る。例えば、h=3とe=7の最大公約数は1であるか
ら、(3,7)=1である。
【0084】つぎに、平文Aと乱数rの和のh乗(A+
r)h について説明する。多項式G(X)の周期e=7
と互いに素な整数として、例えばh=3を選ぶ。また、
平文A∈R(3)、乱数r∈R(3)の実現値、すなわ
ち平文Aおよび乱数rの実現値(データ)を例えば、
【0085】
【数31】A=(100)
【0086】
【数32】r=(011) とする。なお、乱数rとしては、公開鍵生成者が任意に
選択した数値を用いることができる。このとき、
【0087】
【数33】 A+r=(100)+(011)=(111) となるが、(A+r)h =(111)3 が余りの集合R
(3)のどの元に一致するかということについては、ベ
クトルの(111)を多項式表現の1+X+X2に戻し
て考える必要がある。すなわち、(1+X+X2 3
G(X)=1+X+X3 で割り、その余りを求める必要
がある。その計算は、例えば以下のようにに実行する。
まず、
【0088】
【数34】(1+X+X2 3 =(1+X+X2 2
(1+X+X2 ) とし、(1+X+X2 2 を最初に求める。(1+X+
2 2 は、通常の計算により、
【0089】
【数35】(1+X+X2 2 =1+X2 +X4 +2X
+2X2 +2X3 となるが、2元体F2 においては、1+1=2=0であ
るので、
【0090】
【数36】(1+X+X2 2 =1+X2 +X4 となる。よって、(1+X+X2 3 は、
【0091】
【数37】 (1+X+X2 3 =(1+X2 +X4 )・(1+X+X2 ) =1+X+X3 +X5 +X6 となる。このようにして求めた1+X+X3 +X5 +X
6 が余りの集合R(3)のどの元に一致するかは、前述
の例のように、G(X)=1+X+X3 による割算を実
行し、その余りを見ることによって求めることができ
る。この余りはXとなる。すなわち、
【0092】
【数38】 となる。これをベクトル表現にすれば、
【0093】
【数39】(1,1,1)3 =(010) である。つぎに、公開鍵暗号方式の構成条件について、
秘密多項式を上記G(X)=1+X+X3 とした、m=
3の場合を例にとって説明する。平文Aおよび乱数r
を、一般に
【0094】
【数40】A=(a0 ,a1 ,a2
【0095】
【数41】r=(r0 ,r1 ,r2 ) とする。ここで、h=3として、(A+r)h の(R
(3)における)多項式表現、すなわち、
【0096】
【数42】{(a0 +r0 )+(a1 +r1 )X+(a
2 +r2 )X2 3=b0 +b1 X+b2 2 を以下に求める。ただし、ここでは、bI の係数が2次
となる場合、すなわちt=2の場合を例にとって説明す
る。まず、計算によって次式が得られる。
【0097】
【数43】 {(a0 +r0 )+(a1 +r1 )X+(a2 +r2 )X2 2 =(a0 +r0 2 +(a1 +r1 2 2 +(a2 +r2 2 4 =(a0 +r0 )+(a2 +r2 )X+(a1 +r1 +a2 +r2 )X2 上式は、以下の点に留意して変形している。すなわち、
G(X)=1+X+X 3 は、G(X)自身によって割り
切れるので、1+X+X3 =0であることが明らかであ
る。このことは、X3 =−1−Xを意味するが、2元体
2 においては、1+1=0、すなわち、−1=1であ
るから、X3 =1+Xである。よって、
【0098】
【数44】X4 =X+X2 である。さらに、
【0099】
【数45】 (aI +rI 2 =aI ・aI +2aI ・rI +rI ・rI =aI +rI である。上述の(a0 +r0 )+(a2 +r2 )X+
(a1 +r1 +a2 +r2 )X2にさらに、(a0 +r
0 )+(a1 +r1 )X+(a2 +r2 )X2 を乗じる
と、
【0100】
【数46】{(a0 +r0 )+(a1 +r1 )X+(a
2 +r2 )X2 3=b0 +b1 X+b2 2 を満たすb0 ,b1 ,b2 を求めることができる。これ
らのb0 ,b1 ,b2 は、t=2として、FJ t =GJ
t +HJ t に合わせると、
【0101】
【数47】b0 =F0 2 =G0 2 +H0 2
【0102】
【数48】b1 =F1 2 =G1 2 +H1 2
【0103】
【数49】b2 =F2 2 =G2 2 +H2 2 となる。b0 ,b1 ,b2 の構成要素を辞書順に並べる
と、以下のようになる。すなわち、
【0104】
【数50】 b0 =(a0 0 +a1 1 +a1 2 +a1 2 +a2 2 +a2 1 ) +(r0 0 +r1 1 +r1 2 +r2 2 ) =G0 2 +H0 2
【0105】
【数51】 b1 =(a0 1 +a0 2 +a0 1 +a0 2 +a1 1 +a1 0 +a2 0 )+(r0 1 +r0 2 +r1 1 ) =G1 2 +H1 2
【0106】
【数52】 つぎに、辞書W(3,2)について説明する。この辞書
W(3,2)は次式で表すことができる。
【0107】
【数53】 W(3,2)=(a0 0 ,a0 1 ,a0 2 ,a0 0 ,a0 1 , a0 2 ,a1 1 ,a1 2 ,a1 0 ,a1 1 , a1 2 ,a2 2 ,a2 0 ,a2 1 ,a2 2 , r0 0 ,r0 1 ,r0 2 ,r1 1 ,r1 2 , r2 2 ) =G(3,2)*H(3,2) つぎに、[(A+r)3 T について説明する。辞書W
(3,2)に基づいて、先に導出したb0 ,b1 ,b2
の値をもとに、
【0108】
【数54】
【0109】を以下に導く。なお、ここでも、h=3と
している。
【0110】
【数55】
【0111】与えられた(a0 ,a1 ,a2 ),
(r0 ,r1 ,r2 )に対し、上式の(b 0 ,b1 ,b
2 )を計算し、(r0 ,r1 ,r2 )のみが関与する部
分を引き去ると、暗号文Cとなる。実際には、暗号文C
の生成者には、(r0 ,r1 ,r2)のみが関与する部
分を計算させない。上記の〔数55〕の行列のサイズは
極めて大きく、かつ冗長が存在するので、この行列を縮
小する。このため、(a0 ,a1 ,a2 )について、
【0112】
【数56】aI ・aI =aI
【0113】
【数57】aI +aI =0 であることを考慮する。また、(r0 ,r1 ,r2 )か
ら、
【0114】
【数58】 aI ・rJ =0 (ただし、rJ =0のとき)
【0115】
【数59】 aI ・rJ =aI (ただし、rJ =1のとき) であることを考慮する。上記の点から、辞書W(3,
2)のうちの辞書G(3,2)は、
【0116】
【数60】 G(3,2)=(a0 0 ,a0 1 ,a0 2 ,a0 0 ,a0 1 , a0 2 ,a1 1 ,a1 2 ,a1 0 ,a1 1 , a1 2 ,a2 2 ,a2 0 ,a2 1 ,a2 2 ) =(a0 ,a0 1 ,a0 2 ,a0 ,a0 , a0 ,a1 ,a1 2 ,a1 ,a1 , a1 ,a2 ,a2 ,a2 ,a2 ) と表される。縮退辞書GD (3,2)は、上記の辞書G
(3,2)の成分のうち、相異なる成分を抽出して辞書
順に並べたものであり、
【0117】
【数61】GD (3,2)=(a0 ,a0 1 ,a0
2 ,a1 ,a1 2 ,a2 ) となる。また、辞書W(3,2)のうちの辞書H(3,
2)において、(r0 ,r1 ,r2 )について、
【0118】
【数62】rI ・rI =rI
【0119】
【数63】rI +rI =0 であることを考慮すると、縮退したワードの集合よりな
る縮退辞書HD (3,2)は、
【0120】
【数64】HD (3,2)=(r0 ,r0 1 ,r0
2 ,r1 ,r1 2 ,r2 ) となる。したがって、GD (3,2)*HD (3,2)
は、
【0121】
【数65】GD (3,2)*HD (3,2)=(a0
0 1 ,a0 2 ,a1 ,a1 2 ,a2 ,r0 ,r
0 1 ,r0 2 ,r1 ,r1 2 ,r2 ) となる。
【0122】上記の説明で、縮退辞書GD (3,2)と
D (3,2)とが明らかになったので、つぎに、乱数
rの実現値(データ)が例えば、(1,0,1)の場
合、すなわち、r0 =1、r1 =0、r2 =1の場合に
おける行列KG および行列KHについて説明する。乱数
rが上記のように選んだ場合、縮退辞書HD (3,2)
は、
【0123】
【数66】 HD (3,2)=(1,0,1,0,0,1) である。ここで、r0 =1、r1 =0、r2 =1、aI
・aI =aI 、rI ・rI =r I であることを考慮する
と、〔数50〕、〔数51〕、〔数52〕に示した{b
I }は、
【0124】
【数67】 b0 =a0 +a1 +a1 2 +a1 2 +a2 +a2 1 +r0 +r1 +r1 2 +r2 =a0 +a1 +a1 2 +a1 2 +a2 +r0 +r2 =a0 +a1 2 +a2 +r0 +r2
【0125】
【数68】 b1 =a0 1 +a0 2 +a0 1 +a0 2 +a1 +a1 0 +a2 0 +r0 1 +r0 2 +r1 =a0 1 +a0 2 +a0 +a2 +r0 2
【0126】
【数69】 b2 =a0 1 +a0 1 +a1 0 +a2 +r0 1 +r2 =a0 1 +a1 +a2 +r2 となる。したがって、
【0127】
【数70】
【0128】は、
【0129】
【数71】
【0130】となる。そして、送信者(甲氏)が生成す
る暗号文Cは、
【0131】
【数72】CT =KG ・GD (3,2)T で与えられ、受信者(乙氏)が秘密に保持する補正数Γ
(r)は、
【0132】
【数73】Γ(r)T =KH ・HD (3,2)T で与えられることになる。すなわち、送信側(甲氏側)
では、共通の辞書となる縮退辞書GD (3,2)と、受
信者(乙氏)固有の公開鍵行列となる行列KG とを用
い、縮退辞書GD (3,2)T に平文Aの成分の実現値
(データ)を代入した後、行列KG と縮退辞書G
D (3,2)T との乗算を行えば、暗号文Cを生成する
ことができる。
【0133】また、受信側(乙氏側)では、秘密鍵行列
となる行列KH と縮退辞書HD (3,2)T との乗算結
果を補正数Γ(r)として秘密に保存しておき、暗号文
Cを受け取ったときに、暗号文Cに補正数Γ(r)を加
えることで、
【0134】
【数74】
【0135】を得る。ところで、
【0136】
【数75】(b0 ,b1 ,b2 )=(A+r)3 であったから、d=5とすると、
【0137】
【数76】{(A+r)3 5 =(A+r)15 となり、多項式G(X)=X3 +X+1の周期eが7で
あり、したがって(A+r)7 =1であるので、
【0138】
【数77】 となり、平文Aに乱数rを加えたA+rが導かれる。さ
らに、A+rに乱数rを加えることにより、乱数rの項
が消去されて、
【0139】
【数78】A+r+r=A となり、平文Aを復号することができる。上式の演算で
rの項が消えているのは、2元体F2 では、1+1=2
=0であり、したがって、2r=0であるからである。
【0140】つぎに、上記した暗号文Cの生成を行うた
めの暗号化装置の回路例を図1を参照しながら説明す
る。暗号文Cは、前述したように、
【0141】
【数79】
【0142】で表されるが、行列KG は、
【0143】
【数80】
【0144】となり、縮退辞書GD (3,2)は、
【0145】
【数81】
【0146】となる。上述した公開鍵行列となる行列K
G を任意の乱数rに対応して一般的に
【0147】
【数82】
【0148】とすると、暗号文Cは、
【0149】
【数83】
【0150】となる。ここで、暗号文Cの各成分C0
1 ,C2 を個々に数式で表すと、
【0151】
【数84】C0 =K000 +K010 1 +K020
2 +K031+K041 2 +K052
【0152】
【数85】C1 =K100 +K110 1 +K120
2 +K131+K141 2 +K152
【0153】
【数86】C2 =K200 +K210 1 +K220
2 +K231+K241 2 +K252 となり、各成分C0 ,C1 ,C2 ともに、行列KG の要
素の添字が異なるが、同一構造の数式で表されることに
なり、これらの数式の演算は、図1に示した回路で実現
できる。図1において、101〜103は、平文Aの成
分a0 ,a1 ,a 2 を一時格納するレジスタである。1
04は暗号文Cの成分CI (I=0,1,2)を一時格
納するレジスタである。105〜110は法2乗算器を
構成する論理積回路である。111〜115は、法2加
算器を構成する排他的論理和回路である。
【0154】つぎに、上記した暗号文Cから平文Aを復
号するための復号装置の回路例を図2を参照しながら説
明する。概略を説明すると、暗号文Cの各成分C0 ,C
1 ,C2 に補正数Γ(r)の各成分Γ0 ,Γ1 ,Γ2
加える加算器と、加算器の出力が初期入力としてセット
される多項式G(X)=X3 +X+1に対応した帰還型
シフトレジスタと、この帰還型シフトレジスタの所定回
数のシフト動作後の各段のレジスタの保持値に乱数rの
各成分r0 ,r1 ,r2 を加える加算器とを主構成要素
として構成することができる。
【0155】以下、その具体例を図2に示す。図2にお
いて、201〜203は暗号文Cの各成分C0 ,C1
2 を一時格納するレジスタである。204〜206は
補正数Γ(r)の各成分Γ0 ,Γ1 ,Γ2 を一時格納す
るレジスタである。207〜209は法2加算器を構成
する排他的論理和回路であり、暗号文Cの各成分C0
1 ,C2 と補正数Γ(r)の各成分Γ0 ,Γ1 ,Γ2
とを各々加算して加算結果b0 ,b1 ,b2 を出力す
る。210〜212は排他的論理和回路207〜209
の演算結果b0 ,b1 ,b2 を一時格納するレジスタで
ある。213は多項式G(X)=1+X+X3 に対応す
る帰還型シフトレジスタであり、レジスタ210〜21
2に格納された演算結果b0 ,b1 ,b2 が初期値とし
てセットされるレジスタ214〜216と法2加算器を
構成する排他的論理和回路217とで構成され、所定回
数のシフト動作を行う。218〜220は乱数rの各成
分r 0 ,r1 ,r2 を一時格納するレジスタである。2
21〜223は法2加算器を構成する排他的論理和回路
であり、帰還型シフトレジスタ213の所定回数のシフ
ト動作後の各段のレジスタ214〜216の保持値とレ
ジスタ218〜220に保持された乱数rの各成分
0 ,r1 ,r2 を各々加算して加算結果、つまり平文
Aの成分a0 ,a1 ,a2 を出力する。224〜226
は排他的論理和回路221〜223から出力される平文
Aの成分a0 ,a1 ,a2 を一時格納する。
【0156】なお、図2では、帰還型シフトレジスタ2
13として、m=3の場合の例を示しているが、mが2
6 =64以上、あるいはシフト数dが大なる場合は、周
知の高速指数演算型のシフト回路が用いられる。なお、
Γ(r)=(Γ0 ,Γ1 ,Γ 2 )としている。ここで、
本発明の実施の形態で説明している公開鍵暗号方式のシ
ステムの具体例を、原理説明のために、m=3の場合を
例にとって図3を用いて説明する。なお、実際には、m
は26 =64以上とするのが好ましい。この公開鍵暗号
方式のシステムでは、暗号文の送信側である甲氏は、送
信したい平文Aを情報ネットワークの加入者共通の辞書
である縮退辞書GD (3,2)と暗号文の受信側である
乙氏の公開鍵である行列KG を基に暗号化作業を行い暗
号文Cを生成し、通信路やメモリなどからなる情報ネッ
トワークを通して暗号文Cを送信する。受信側の乙氏
は、情報ネットワークを通じて受信した暗号文Cを、乙
氏自身の秘密鍵である、多項式G(X)、乱数r、補正
数Γ(r)および整数h,dを用いて、復号し、平文A
を復号する。このようにすると、甲氏は情報を他の誰に
も読まれることなく、乙氏に伝えることができる。
【0157】なお、情報ネットワークの加入者共通の縮
退辞書GD (3,2)は、情報ネットワークの加入の際
に、例えば情報ネットワークの管理者から予めコンピュ
ータ上で実行させる暗号化および復号のソフトウェアを
記録した記録媒体あるいは暗号化装置および復号装置の
ようにコンピュータの周辺装置として動作するICカー
ド等のハードウェア装置とともに、記憶媒体に書き込ん
だ状態で配付される。また、乙氏の公開鍵である行列K
G については、情報ネットワークの加入の際に提供さ
れ、例えば加入者の公開鍵を格納した記録媒体等から読
み出される。
【0158】また、甲氏と乙氏が同一人であってもよ
い。つまり、甲氏自身が自身の公開鍵である行列KG
用いて平文Aを暗号化し、暗号文Cを情報ネットワーク
上のメモリに保存しておき、後日、甲氏自身の秘密鍵を
用いて暗号文Cから平文Aを復号するというような使用
形態も考えることができる。このようにすると、甲氏
は、情報を暗号の形で他の誰にも読まれることなく、情
報ネットワーク上のメモリに保存することができ、必要
なときに、その暗号文Cを取り出して平文Aを復号する
ことができる。
【0159】つぎに、図3のシステムを具体例を用いて
説明する。まず、乙氏の公開鍵である行列KG と秘密鍵
である補正数Γ(r)の生成過程について説明する。平
文A=(a0 ,a1 ,a2 )に対し、まず
【0160】
【数87】(A+r)3 =(b0 ,b1 ,b2 ) を導く。〔数50〕、〔数51〕、〔数52〕に示した
0 ,b1 ,b2 の式を、aI・aI =aI の関係を用
いて簡略化した上で再掲すると、以下のようになる。
【0161】
【数88】b0 =a0 +a1 +a1 2 +a1 2 +a
2 +a2 1+r0 +r1 +r1 2 +r2
【0162】
【数89】b1 =a0 1 +a0 2 +a0 1 +a0
2 +a1 +a1 0 +a2 0+r0 1 +r0 2
+r1
【0163】
【数90】b2 =a0 1 +a0 1 +a1 0 +a2
+r0 1 +r2 上の各式に、r0 =1,r1 =0,r2 =1を代入する
と、
【0164】
【数91】
【0165】
【数92】 b1 =a0 1 +a0 2 +a0 +a1 +a1 +a2 +1 =a0 +a0 1 +a0 2 +a2 +1
【0166】
【数93】b2 =a0 1 +a1 +a2 +1 上記の〔数91〕、〔数92〕、〔数93〕の内容を行
列で表すと、
【0167】
【数94】
【0168】となる。〔数94〕における
【0169】
【数95】
【0170】が乙氏の公開鍵として周知される。また、
〔数94〕における
【0171】
【数96】
【0172】は、平文A=(a0 ,a1 ,a2 )の如何
によらず、乱数rの値によって決まる一定の値となるの
で、乙氏の秘密鍵として保持することができる。つぎ
に、甲氏が乙氏の公開鍵を用いて平文Aから暗号文Cを
生成する過程について説明する。図3に示されるよう
に、送信者である甲氏は、受信者である乙氏の公開鍵で
ある行列KG を用いて、暗号文Cを以下のような演算で
生成する。
【0173】
【数97】
【0174】例えば、平文A=(a0 ,a1 ,a2 )の
実現値(データ)がa0 =1、a1=1、a2 =0であ
るとき、縮退辞書GD (3,2)にa0 ,a1 ,a2
値を代入すると、
【0175】
【数98】GD (3,2)=(110100) が得られる。このGD (3,2)T に左から行列KG
乗じると、暗号文Cが以下のように得られる。
【0176】
【数99】
【0177】が得られる。つぎに、受信者である乙氏が
暗号文Cを復号する過程について説明する。受信者であ
る乙氏は、[b0 ,b1 ,b2 T
【0178】
【数100】
【0179】として導く。ところで、
【0180】
【数101】 (b0 ,b1 ,b2 )=(A+r)3 =(111) であるが、これをd(=5)乗した値がA+rに等し
い。すなわち、
【0181】
【数102】{(A+r)3 5 =A+r であるから、(111)5 を求める必要がある。この
(111)5 は、前述したように、多項式表現にして乗
算を行うことにより求めることができる。すなわち、ベ
クトル表現の(111)が多項式表現の1+X+X2
対応することを基に、(1+X+X2 5 とした上で、
この(1+X+X2 5 をG(X)=1+X+X3 で割
り、その余りを求める。その余りは前述したのと同様な
割算によって求めることができ、
【0182】
【数103】 (1+X+X2 5 =1+X+X2 +X4 +X5 +X6 +X8 +X9 +X10 ≡X+X2 mod(1+X+X3 ) のようになる。余りX+X2 のベクトル表現は、(01
1)であるから、結局、
【0183】
【数104】(111)5 =(011) である。以上により、
【0184】
【数105】A+r=(011) であることが分かったが、乱数rが
【0185】
【数106】r=(101) であったから、平文Aは、
【0186】
【数107】 A=A+r+r=(011)+(101)=(110) となり、a0 =1、a1 =1、a2 =0が復号される。
つぎに、本発明の実施の形態の公開鍵暗号方式におい
て、暗号化および復号をコンピュータのソフトウェア上
で実現する場合を、図4およびおよび図5を参照しなが
ら説明する。
【0187】まず、甲氏から乙氏へ送る場合の暗号化
は、図4に示すように、まず、平文Aの実現値(デー
タ)を全ての加入者に共通の縮退辞書GD (m,t)に
代入することで、縮退辞書GD (m,t)の実現値(デ
ータ)を得る(ステップS1)。この実現値(データ)
は、縮退辞書GD (m,t)に平文Aの実現値(デー
タ)を代入した結果の値であり、( m1 m2 +…
mt )次元ベクトルである。
【0188】つぎに、乙氏の公開鍵KG の実現値(デー
タ)を用いて、
【0189】
【数108】KG ・GD (m,t)T 行列乗算処理を行うことにより、暗号文Cの実現値(デ
ータ)が得られる(ステップS2)。上記の行列乗算処
理は、全ての加入者に共通の構造であり、KG ・G
D (m,t)T の実現値(データ)が行列乗算の形で処
理される。
【0190】上記の図4は、甲氏から乙氏への通信の場
合を示しているが、平文Aを記録媒体に書き込む場合に
は、送信者と受信者とが同一人物、すなわち甲氏=乙氏
となる場合が考えられる。この場合、行列KG は、甲氏
自身の公開鍵となる。つぎに、甲氏から送られた暗号文
Cを乙氏が復号する場合は、図5に示すように、まず受
け取った暗号文Cの実現値(データ)に乙氏が保有する
秘密鍵である補正数Γ(r)の実現値(データ)を加え
る加算処理を行うことにより、[(A+r)h T の実
現値(データ)を得る(ステップT1)。
【0191】つぎに、乙氏が保有する秘密鍵である整数
dの実現値(データ)を用いて、(A+r)hd の演算
を行うことにより、A+rの実現値(データ)を得る
(ステップT2)。つぎに、乙氏が保有する秘密鍵であ
る乱数rを用いて、A+rの実現値(データ)から乱数
rの実現値(データ)を減じる、すなわち2元体では、
A+rの実現値(データ)に乱数rの実現値(データ)
を加えることを行い、平文Aの実現値(データ)を得る
(ステップT3)。
【0192】以上に述べた暗号化および復号のソフトウ
ェアは、CDROMや磁気ディスク等の記録媒体に記憶
されており、この記録媒体をコンピュータにセットする
ことで、上述した暗号化および復号の処理が実現可能で
ある。つぎに、本発明の実施の形態の公開鍵暗号方式に
おいて必要な公開鍵である行列KG ,KH の生成方法に
ついて図6を参照しながら説明する。まず、平文Aと乱
数rとの加算処理を行い、加算結果A+rを求める(ス
テップU1)。つぎに、ステップU1の加算結果(A+
r)のべき乗処理を行い、(A+r)h を求める(ステ
ップU2)。つぎに、ステップU2で求めた(A+r)
h に対して転置処理を行う(ステップU3)。つぎに、
縮退辞書GD (m,t),HD (m,t)を基に、転置
処理の処理結果[b0 ,b1 ,…,bm-1 T とK・
[GD (m,t)*HD (m,t)]T の両辺の比較に
基づくワード選択処理を行い、行列Kの実現値(デー
タ)を求める(ステップU4)。つぎに、選択ワード
(Kの実現値(データ))に基づく行列形成処理を行う
ことにより、行列KG ,KH の実現値(データ)を得る
(ステップU5)。
【0193】つぎに、本発明の実施の形態の公開鍵暗号
方式において必要な秘密鍵である補正数Γ(r)の生成
方法について図7を参照しながら説明する。まず、乱数
rの実現値(データ)を縮退辞書HD (m,t)に代入
することにより、縮退辞書H D (m,t)の実現値(デ
ータ)を求める(ステップV1)。つぎに、行列KH
縮退辞書HD (m,t)の実現値(データ)との行列乗
算処理(KH ・HD (m,t)T )を行い、補正数Γ
(r)の実現値(データ)を求める(ステップV2)。
【0194】つぎに、多項式G(X)の周期の求め方に
ついて説明する。ランダムに生成された生成多項式G
(X)を
【0195】
【数109】 G(X)=G1 (X)G2 (X)…GL (X) と因数分解する。素因数GI (X)(I=1,2,…,
L)の次数をNとすると、2N −1を素因数分解するこ
とにより、GI (X)の周期eI が求まる。G(X)の
周期eは、e1 ,e2 ,…,eL の最小公倍数で与えら
れる。
【0196】つぎに、整数dの求め方について説明す
る。整数eとhの最大公約数を求めるためのユークリッ
ド互除法を遂行することにより、
【0197】
【数110】eE+hH=1 を満たす整数EとHとが与えられる。上式より、その左
辺はeで割った場合、余り1となること、すなわち、
【0198】
【数111】hH≡1 mod e となることがわかる。この整数Hが求める整数dであ
る。なお、公開鍵である行列KG と秘密鍵である補正数
Γ(r)の生成方法のソフトウェアは、磁気記録媒体あ
るいはICカード等に記憶されていて、この記録媒体あ
るいはICカードをコンピュータにセットすることによ
り、コンピュータが公開鍵である行列KG と秘密鍵であ
る補正数Γ(r)の生成を行う機能を持つことになる。
【0199】つぎに、ディジタル署名について説明す
る。署名文送信者側である乙氏は、ディジタル署名のた
めに、秘密の乱数xを生成する。そして、乙氏は、自身
の秘密鍵である整数d、乱数r、および補正数Γ(r)
を用い、平文Aを以下のように生成する。乙氏は、(A
+x)d −rとx−Γ(r)のペア、すなわち
【0200】
【数112】{(A+x)d −r,x−Γ(r)} を署名文として、さらにこの署名文を平文と見なし、甲
氏の公開鍵行列である縮退辞書GD (m,t)に署名文
の実現値(データ)を代入した状態で、甲氏の公開鍵行
列となる行列KG と前記縮退辞書GD (m,t)とを基
に暗号化署名文を生成し、この暗号化署名文を署名文受
信者側である甲氏に送る。
【0201】甲氏は、自己の秘密鍵である3つのパラメ
ータとしての補正数Γ(r),乱数rおよび整数d(こ
れらは乙氏のものとは当然異なる)とを基に暗号化署名
文から署名文を復号し、さらに乙氏の公開鍵KG を用い
て、図1に示した暗号化装置により、(A+x)d −r
の各成分の実現値(データ)を平文Aの各成分a0 ,a
1 ,…,am-1 の実現値(データ)と見なし、その各成
分をレジスタ101〜103にセットすることにより、
平文Aから暗号文Cを生成する場合と同様の処理で、
(A+x)d −rから擬似暗号文Dを生成する。すなわ
ち、甲氏は、暗号化署名文を受け取り、暗号化署名文か
ら署名文を復号し、署名文における(A+x)d −rの
各成分の実現値(データ)を平文Aの成分a0 ,a1
…,am-1の実現値(データ)と見なして縮退辞書GD
(m,t)に代入した状態で、署名文送信者の公開鍵行
列KG と縮退辞書GD (m,t)とを基に
【0202】
【数113】DT =KG ・GD (m,t)T の演算によって、擬似暗号文Dを生成し、平文Aを、擬
似暗号文Dとx−Γ(r)とを基に
【0203】
【数114】A=D−{x−Γ(r)} の演算によって復号する。上記の〔数114〕によっ
て、平文Aが復号できるのは、以下のような数式が成り
立つからである。すなわち、この擬似暗号文生成処理
は、〔数113〕の演算処理を行うものであるが、先に
説明したように、等価的に次式の左辺の処理を行うこと
になる。
【0204】
【数115】 D={(A+x)d −r+r}h −Γ(r) 〔数115〕は、〔数116〕に示すように変形するこ
とができ、結果的にA+x−Γ(r)を生成することに
なる。
【0205】
【数116】 {(A+x)d −r+r}h −Γ(r)=(A+x)dh−Γ(r) =A+x−Γ(r) そこで、甲氏は、乙氏から送られてきたx−Γ(r)を
用いて、〔数114〕の演算を行うことにより、等価的
に次式のような演算が行われることになり、
【0206】
【数117】 A+x−Γ(r)−{x−Γ(r)}=A の演算を行うことで、平文Aが復号されることになる。
なお、2元体F2 上では、減算と加算とが一致するの
で、x−Γ(r)を加算しても同じ結果が得られる。
【0207】上記プロセスにより、ペア{(A+x)d
−r,x−Γ(r)}に基づき、平文Aが復号された
が、このようなペアを生成し得るのは、秘密の乱数xと
秘密鍵である整数d、乱数r、補正数Γ(r)を保持す
る乙氏だけであるから、復号した平文Aが意味のある平
文であれば、乙氏の署名として有効になる。また、乙氏
は、甲氏の公開鍵行列である行列KG (乙氏のものとは
当然異なる)を用いて署名文から暗号化署名文を生成
し、この暗号化署名文を甲氏へ送り、甲氏は、自身の秘
密鍵である整数d、乱数r、補正数Γ(r)を用いて暗
号化署名文を復号して署名文を生成しているので、署名
文を署名文受信者以外の他人に対して秘匿状態を保つこ
とができる。
【0208】なお、署名文の秘匿性が必要なければ、乙
氏は署名文をそのままの形で甲氏へ送ってもよい。つぎ
に、本発明の実施の形態の公開鍵暗号方式の安全性につ
いて説明する。すなわち、本発明の実施の形態の公開鍵
暗号方式では、たとえ(A+r)h をそのまま暗号文と
しても、安全性が十分に保証される。すわなち、その安
全性は、以下の4点によって保証される。
【0209】(1)m次の多項式G(X)を秘密にして
いること 多項式G(X)を
【0210】
【数118】G(X)=Xm +g(X)+1 とする。ただし、g(X)はXを因数として含むm−1
次以下の多項式である。このような多項式の総数は、2
m-2 であるため、m=64の場合においてすら、262
4×1018通りの選択ができる。したがって、盗聴者の
ランダムな総当たり攻撃に対しては、十分な安全性が確
保される。
【0211】(2)整数hを秘密にしていること 多項式G(X)の次数をmとすると、整数hの選択範囲
が最も狭くなるt=2の場合でも、整数hの選択範囲
は、 m2 通りある。m=64の場合、この値は、64
2 ≒2016である。上記の(1)と(2)とを組み合
わせると、総当たり攻撃に対しては、2m-2× m2
可能性があるので、この値を十分に大きくすることがで
きる。例えば、m=64の場合には、この値は、8×1
21にも達する。
【0212】上述のように、(A+r)h をそのまま暗
号文にした場合においても、多項式G(X)および整数
hを秘密にすることにより、十分な安全性が保持され
る。 (3)乱数rおよび補正数Γ(r)を秘密にできること この公開鍵暗号方式では、暗号化の段階で(A+r)h
+Γ(r)のように、乱数rを基に生成された補正数Γ
(r)を、送信者に全く知らせることなく付加すること
を可能にして、安全性をさらに強くしていることであ
る。
【0213】(4)連立高次合同式の解読困難性を利用
していること 唯一の解読法は、連立多次合同式の解法を適用すること
である。しかし、t=2とした最も単純な形式である連
立2次合同式の場合でも、変数が10以上になると、計
算量的に解くことが困難となる。この公開鍵暗号方式で
は、変数をm=64程度以上に選ぶので、このような攻
撃法に対しても、十分な安全性が確保される。すなわ
ち、本発明による公開鍵暗号方式の安全性は、有限体上
のt次合同式(多次合同式)の求解が困難であることに
よって確保され、しかもt=2を最小値とし、mを一定
にしたまま、t=3,4と順次大きくすることにより、
任意に高い安全性が保証される。
【0214】また、暗号化を簡単な行列の乗算のみで実
現でき、復号も簡単な行列演算で実現できるため、暗号
化処理および復号処理の高速化が可能であり、そのため
安全性が保証されたデータ通信の実用化を促進すること
ができる。本発明方式の暗号化および復号処理の主要部
分は、暗号化においてはKG とGD (m,t)の乗算で
あり、例えばm=64の場合、2080ビット(KG
×2080ビット(G D (m,t))の乗算を、64重
の並列処理により、1回実行するだけで済む。また、復
号においては、高速指数計算法を適用すると、log2mク
ロックタイムで実行される。これは、m=64の場合、
6クロックタイムで終了することを意味する。この処理
速度は、控えめに評価しても、共通鍵暗号方式と同程度
である。一方、公開鍵暗号方式においては、例えばRS
A暗号の場合、合成数nを512ビットとすると暗号化
および復号処理の主要部分は、512ビット×512ビ
ットの乗算と、1024ビット÷512ビットの除算
を、たとえ高速指数計算法を用いたとしても、それぞれ
500回程度必要とする。すなわち、本発明の実施の形
態における暗号方式によれば、RSA方式に比べて2桁
速い処理速度が実現できる。また、暗号化装置、復号装
置がそれぞれ公開鍵の違いに関わらず同一の構造である
ことにより、LSI等による大量生産が可能であり、暗
号化装置および復号装置の低廉化がもたらされる。さら
に、公開鍵方式により、鍵管理を容易にし得る。
【0215】なお、通信の形態が双方向ではなく、一方
向に限定され場合には送信側には、暗号化装置のみ、受
信側には復号装置のみを設置する構成も考えることがで
きる。また、上記の実施の形態は、2元体F2 上のm次
多項式G(X)(mは2以上の整数)を法とする剰余環
R(m)上の公開鍵暗号方式について説明したが、q元
体Fq (qは3以上の整数)上でも、2元体F2 上と同
様に本発明を適用することが可能である。この場合にお
いては、解読困難性を高めるために、前処理として平文
Aを乱数変換しておくことが好ましい。すなわち、この
公開鍵暗号方式では、平文Aをq元体上のベクトル(A
0 ,A1 ,…,Am-1 )とし、乱数rをq元体上のベク
トル(r0 ,r1 ,…,rm-1 )とし、暗号文Cをq元
体上のベクトル(C1 ,C2 ,…,Cm-1 )としたとき
に、平文Aの成分をq元体上の乱数R=(R0 ,R1
…,Rm-1 )により、平文A(C)=(a0 ,a1
…,am-1 )に変換し、共通の辞書行列となる縮退した
ワードの集合(以下、縮退したワードの集合を縮退辞書
と呼ぶ)GD (m,t)に乱数変換された平文A(C)
の成分a0 ,a 1 ,…,am-1 の実現値(データ)を代
入した状態で、暗号文Cを、固有の公開鍵行列となる行
列KG と縮退辞書GD (m,t)とを基にCT =KG
D (m,t)Tの演算によって生成し、乱数変換され
た平文A(C)を、暗号文Cと秘密鍵である3つのパラ
メータとしての補正数Γ(r),乱数rおよび整数dと
を基に A(C)={[C+Γ(r)]T d +r の演算によって復号し、乱数変換された平文A(C)を
逆変換の乱数R(T)=(R0 -1,R1 -1,…,Rm-1
-1)により逆変換し、もとの平文A=(A0 ,A 1
…,Am-1 )を復号する。
【0216】ただし、aI =RI I であり、かつRI
≠0であり、またAI =RI -1Iである。また、平文
Aの実現値(データ)は、例えばAI =0のときに、0
がA I の実現値(データ)であると定義される。また、
行列KG と補正数Γ(r)と縮退辞書GD (m,t)と
整数dとは以下のようにして求める。m次多項式G
(X)の周期をeとし、周期eとは互いに素の条件で整
数hを選び、周期eを法としてh×d=1を満たす整数
dを選び、乱数変換された平文A(C)と乱数rの和の
h乗(A(C)+r)h をq元体上のベクトル(b0
1 ,…,bm-1 )とし、乱数変換された平文A(C)
と乱数rの和のh乗(A(C)+r)h の第(J+1)
番目の成分bJ を、乱数変換された平文A(C)および
乱数rの成分{a I ,rI }(0≦I≦m−1)のt次
関数FJ t (a0 ,a1 ,…,am-1 ,r 0 ,r1
…,rm-1 )(tは2以上の整数)で与え(以下、t次
関数をFJ tと略記する)、t次関数FJ t を乱数rの
成分{rI }のみが含まれる項HJ tとそれ以外の項G
J t とに分割して FJ t =GJ t +HJ t とし、t次関数FJ t において乱数変換された平文A
(C)および乱数rの成分{aI ,rI }によって構成
されるt次項のそれぞれをワードとし、辞書順に並べら
れたワードの集合よりなる辞書をW(m,t)とし、こ
の辞書W(m,t)を乱数rの成分{rI }のみが含ま
れるワードの集合よりなる辞書H(m,t)とそれ以外
のワードの集合よりなる辞書G(m,t)とに分け、連
接によって W(m,t)=G(m,t)*H(m,t) とし、辞書G(m,t)とH(m,t)とから縮退辞書
D (m,t)と縮退辞書HD (m,t)とをそれぞれ
求め、縮退辞書GD (m,t)と縮退辞書HD (m,
t)と行列Kとを用いて、乱数変換された平文A(C)
と乱数rの和のh乗(A(C)+r)h の転置ベクトル
[(A(C)+r)h T を展開して K・[GD (m,t)*HD (m,t)]T で表したときに、行列Kを縮退辞書GD (m,t)に作
用する行列KG と縮退辞書HD (m,t)に作用する行
列KH とに分けて、 K=[KG H ] とすることにより、行列KG と行列KH とを求め、縮退
辞書HD (m,t)に乱数rの成分r0 ,r1 ,…,r
m-1 の実現値(データ)を代入した状態で、補正数Γ
(r)を、 Γ(r)T =KH ・HD (m,t)T の演算によって求める。
【0217】なお、ベクトル表現の平文Aの各成分
0 ,a1 ,…,am-1 を多項式表現の平文A(X)の
各次の係数に割り当てるときに、公開鍵生成者である乙
氏が任意に選択した秘密の順序で並べ換えた状態で暗号
処理を行うと、ベクトル表現の平文Aの各成分a0 ,a
1 ,…,am-1 を多項式表現の平文A(X)の各次の係
数の対応関係がランダムになり、セキュリティをいっそ
う高めることができる。なお、公開鍵生成者である乙氏
は、並べ換えの順序を知っているので、平文の各成分を
元の順序に並べ直せば、平文を正しく復号することがで
きる。
【0218】
【発明の効果】本発明の請求項1記載の公開鍵暗号方式
によれば、縮退辞書GD (m,t)に平文Aの成分
0 ,a1 ,…,am-1 の実現値(データ)を代入した
状態で、縮退辞書GD (m,t)T と行列KG との積K
G ・GD (m,t)T を演算することにより暗号文Cを
生成することができ、また暗号文Cと補正数Γ(r)と
を加算し、その加算結果の転置行列〔C+Γ(r)〕T
をd乗し、その演算結果に乱数rを加えることにより平
文Aを復号することができ、暗号化演算および復号演算
が簡単で、現在広く使われているDES暗号等の共通鍵
暗号方式と同程度のデータ処理速度を実現することがで
き、しかも公開鍵行列である行列KG および共通の辞書
行列である縮退辞書GD (m,t)から、m次多項式G
(X)、整数h、整数d、乱数r、補正数Γ(r)等の
秘密鍵を求めることが、極めて困難であることから、高
セキュリティを保証することができる。
【0219】上述した本発明方式の暗号化および復号処
理の主要部分は、暗号化においてはKG とGD (m,
t)の乗算であり、例えばm=64の場合、2080ビ
ット(KG )×2080ビット(GD (m,t))の乗
算を、64重の並列処理により、1回実行するだけで済
む。また、復号においては、高速指数計算法を適用する
と、log2mクロックタイムで実行される。これは、m=
64の場合、6クロックタイムで終了することを意味す
る。この処理速度は、控えめに評価しても、共通鍵暗号
方式と同程度である。一方、公開鍵暗号方式において
は、例えばRSA暗号の場合、合成数nを512ビット
とすると暗号化および復号処理の主要部分は、512ビ
ット×512ビットの乗算と、1024ビット÷512
ビットの除算を、たとえ高速指数計算法を用いたとして
も、それぞれ500回程度必要とする。すなわち、本発
明によると、RSA方式に比べて2桁速い処理速度が実
現できる。
【0220】本発明の請求項2記載の暗号化装置によれ
ば、データ代入機能によって縮退辞書GD (m,t)に
平文Aの成分a0 ,a1 ,…,am-1 の実現値(デー
タ)を代入し、演算機能によって行列KG と縮退辞書G
D (m,t)の乗算を行うことにより、暗号文Cの各成
分C0 ,C1 ,…,Cm-1 を算出することができ、暗号
化演算が簡単で、高速に暗号化を実施することができ、
しかも共通構造のハードウェアの外部入力パターンの設
定を単に変更するだけで固有の公開鍵の違いに対応する
ことができ、公開鍵の変更に容易に対応することができ
る。
【0221】本発明の請求項3記載の暗号化装置によれ
ば、レジスタ群によって平文Aの成分a0 ,a1 ,…,
m-1 の実現値(データ)を記憶し、レジスタ群の各実
現値(データ)と行列KG の各行毎の実現値(データ)
とを基に、積和演算回路で縮退辞書GD (m,t)T
行列KG との積KG ・GD (m,t)T に従って暗号文
Cの各成分C0 ,C1 ,…,Cm-1 を算出することがで
き、暗号化演算が簡単で、高速に暗号化を実施すること
ができ、しかも共通構造のハードウェアの外部入力パタ
ーンの設定を単に変更するだけで固有の公開鍵の違いに
対応することができ、公開鍵の変更に容易に対応するこ
とができる。
【0222】本発明の請求項4記載の復号装置によれ
ば、第1の加算機能により暗号文Cと補正数Γ(r)と
を加算し、演算機能により第1の加算機能による加算結
果の転置行列〔C+Γ(r)〕T をd乗し、第2の加算
機能により演算機能による演算結果に乱数rを加えるこ
とにより平文Aを復号することができ、復号演算が簡単
で、高速に復号を実施することができ、しかも、共通構
造のハードウェアの外部入力パターンの設定を単に変更
するだけで固有の公開鍵の違いに対応することができ、
公開鍵の変更に容易に対応することができる。
【0223】本発明の請求項5記載の復号装置によれ
ば、第1の加算器により暗号文Cと補正数Γ(r)とを
各成分毎にそれぞれ加算し、帰還型シフトレジスタによ
り第1の加算器の各出力を初期入力として(h−1)×
d回シフト動作をし、第2の加算器により帰還型シフト
レジスタの各出力と乱数rの各成分をそれぞれ加算する
ことにより、平文Aの各成分a0 ,a1 ,…,am-1
算出することができ、復号演算が簡単で、高速に復号を
実施することができ、しかも、共通構造のハードウェア
の外部入力パターンの設定を単に変更するだけで固有の
公開鍵の違いに対応することができ、公開鍵の変更に容
易に対応することができる。
【0224】本発明の請求項6記載の暗号装置によれ
ば、データ代入機能によって縮退辞書GD (m,t)に
平文Aの成分a0 ,a1 ,…,am-1 の実現値(デー
タ)を代入し、演算機能によって行列KG と縮退辞書G
D (m,t)の乗算を行うことにより、暗号文Cの各成
分C0 ,C1 ,…,Cm-1 を算出することができ、暗号
化演算が簡単で、高速に暗号化を実施することができ、
しかも共通構造のハードウェアの外部入力パターンの設
定を単に変更するだけで固有の公開鍵の違いに対応する
ことができ、公開鍵の変更に容易に対応することができ
る。また、第1の加算機能により暗号文Cと補正数Γ
(r)とを加算し、演算機能により第1の加算機能によ
る加算結果の転置行列〔C+Γ(r)〕T をd乗し、第
2の加算機能により演算機能による演算結果に乱数rを
加えることにより平文Aを復号することができ、復号演
算が簡単で、高速に復号を実施することができ、しか
も、共通構造のハードウェアの外部入力パターンの設定
を単に変更するだけで固有の公開鍵の違いに対応するこ
とができ、公開鍵の変更に容易に対応することができ
る。
【0225】本発明の請求項7記載の暗号装置によれ
ば、レジスタ群によって平文Aの成分a0 ,a1 ,…,
m-1 の実現値(データ)を記憶し、レジスタ群の各実
現値(データ)と行列KG の各行毎の実現値(データ)
とを基に、積和演算回路で縮退辞書GD (m,t)T
行列KG との積KG ・GD (m,t)T に従って暗号文
Cの各成分C0 ,C1 ,…,Cm-1 を算出することがで
き、暗号化演算が簡単で、高速に暗号化を実施すること
ができ、しかも共通構造のハードウェアの外部入力パタ
ーンの設定を単に変更するだけで固有の公開鍵の違いに
対応することができ、公開鍵の変更に容易に対応するこ
とができる。また、第1の加算器により暗号文Cと補正
数Γ(r)とを各成分毎にそれぞれ加算し、帰還型シフ
トレジスタにより第1の加算器の各出力を初期入力とし
て(h−1)×d回シフト動作をし、第2の加算器によ
り帰還型シフトレジスタの各出力と乱数rの各成分をそ
れぞれ加算することにより、平文Aの各成分a0
1 ,…,am-1 を算出することができ、復号演算が簡
単で、高速に復号を実施することができ、しかも、共通
構造のハードウェアの外部入力パターンの設定を単に変
更するだけで固有の公開鍵の違いに対応することがで
き、公開鍵の変更に容易に対応することができる。
【0226】本発明の請求項8記載の記録媒体によれ
ば、記憶したプログラムをコンピュータで実行すること
により、請求項1の公開鍵暗号方式と同様の効果を有す
る。本発明の請求項9または10記載の記録媒体によれ
ば、暗号文Cを保存する際に、保存した暗号文Cの内容
を秘密鍵を知らない人が解読することが極めて困難であ
り、高セキュリティを保証することができる。
【0227】本発明の請求項11または12記載の伝送
路によれば、暗号文Cを伝送する際に、伝送した暗号文
Cの内容を秘密鍵を知らない人が解読することが極めて
困難であり、高セキュリティを保証することができる。
本発明の請求項13記載の公開鍵行列・補正数生成方法
によれば、2元体上のm次多項式G(X)(mは2以上
の整数)を法とする剰余環R(m)上の公開鍵暗号方式
で必要となる公開鍵行列としての行列KG と補正数Γ
(r)とを求めることができる。
【0228】本発明の請求項14記載の記録媒体によれ
ば、記憶したプログラムをコンピュータで実行すること
により、2元体上のm次多項式G(X)(mは2以上の
整数)を法とする剰余環R(m)上の公開鍵暗号方式で
必要となる公開鍵行列としての行列KG と補正数Γ
(r)とを求めることができる。本発明の請求項15記
載のICカードによれば、コンピュータにセットするこ
とにより、2元体上のm次多項式G(X)(mは2以上
の整数)を法とする剰余環R(m)上の公開鍵暗号方式
で必要となる公開鍵行列としての行列KG と補正数Γ
(r)とを求めることができる。
【0229】本発明の請求項16記載の公開鍵暗号方式
によれば、縮退辞書GD (m,t)に乱数R=(R0
1 ,…,Rm-1 )により変換された平文Aの成分
0 ,a 1 ,…,am-1 の実現値(データ)を代入した
状態で、縮退辞書GD (m,t) T と行列KG との積K
G ・GD (m,t)T を演算することにより暗号文Cを
生成することができ、また暗号文Cと補正数Γ(r)と
を加算し、その加算結果の転置行列〔C+Γ(r)〕T
をd乗し、その演算結果に乱数rを加えることにより乱
数変換された平文A(C)を復号し、さらにこの乱数変
換された平文A(C)を逆変換の乱数R(T)=(R0
-1,R1 -1,…,Rm-1 -1)により、元の平文A=(A
0 ,A1 ,…,Am-1 )を復号することができ、暗号化
演算および復号演算が簡単で、共通鍵暗号方式と同程度
のデータ処理速度を可能とし、しかも公開鍵行列である
行列KG および共通の辞書行列である縮退辞書G
D (m,t)から、m次多項式G(X)、整数h、整数
d、乱数r、補正数Γ(r)等の秘密鍵を求めること
が、極めて困難であることから、高セキュリティを保証
することができる。上記の演算処理は、2元の場合と同
様に、高速に実行可能で、RSA方式に比べて2桁速く
処理可能である。
【0230】本発明の請求項17記載のディジタル署名
方法によれば、署名文送信者側で平文Aから署名文を生
成し、署名文受信者側で署名文を元の平文Aに復号する
ことができる。平文Aから {(A+x)d −r,x−Γ(r)} を署名文として生成できるのは、秘密の乱数xを生成
し、自己の秘密鍵である整数d、乱数rおよび補正数Γ
(r)を知っている署名文送信者に限られるので、復号
した平文Aが意味のある平文であれば、署名文送信者か
ら送られたものであると断定することができ、署名文送
信者の署名として有効である。
【0231】請求項18記載のディジタル署名方法によ
れば、署名文を署名文受信者以外の他人に対して秘匿状
態を保つことができる。
【図面の簡単な説明】
【図1】本発明の実施の形態の公開鍵暗号方式において
用いる暗号化装置の構成を示すブロック図である。
【図2】本発明の実施の形態の公開鍵暗号方式において
用いる復号装置の構成を示すブロック図である。
【図3】本発明の実施の形態の公開鍵暗号方式のシステ
ムを示す概略図である。
【図4】本発明の実施の形態の公開鍵暗号方式において
用いる暗号化アルゴリズムを示す流れ図である。
【図5】本発明の実施の形態の公開鍵暗号方式において
用いる復号アルゴリズムを示す流れ図である。
【図6】本発明の実施の形態の公開鍵暗号方式における
行列KG ,KH の生成アルゴリズムを示す流れ図であ
る。
【図7】本発明の実施の形態の公開鍵暗号方式における
補正数Γ(r)の生成アルゴリズムを示す流れ図であ
る。
【符号の説明】
101〜104 レジスタ 105〜110 論理積回路 111〜115 排他的論理和回路 201〜206 レジスタ 207〜209 排他的論理和回路 210〜212 レジスタ 213 帰還型シフトレジスタ 214〜216 レジスタ 217 排他的論理和回路 218〜220 レジスタ 221〜223 排他的論理和回路 224〜226 レジスタ

Claims (18)

    【特許請求の範囲】
  1. 【請求項1】 2元体上のm次多項式G(X)(mは2
    以上の整数)を法とする剰余環R(m)上の公開鍵暗号
    方式であって、 平文A∈R(m)(以下、Aと略記する)をベクトル
    (a0 ,a1 ,…,am- 1 )とし、乱数r∈R(m)
    (以下、rと略記する)をベクトル(r0 ,r1 ,…,
    m-1 )とし、暗号文C∈R(m)(以下、Cと略記す
    る)をベクトル(C 1 ,C2 ,…,Cm-1 )としたとき
    に、 共通の辞書行列となる縮退したワードの集合(以下、縮
    退したワードの集合を縮退辞書と呼ぶ)GD (m,t)
    に前記平文Aの成分a0 ,a1 ,…,am-1 の実現値を
    代入した状態で、暗号文Cを、固有の公開鍵行列となる
    行列KG と前記縮退辞書GD (m,t)とを基に CT =KG ・GD (m,t)T の演算によって生成し、 前記平文Aを、暗号文Cと秘密鍵である3つのパラメー
    タとしての補正数Γ(r),乱数rおよび整数dとを基
    に A={[C+Γ(r)]T d +r の演算によって復号することを特徴とする公開鍵暗号方
    式。ただし、平文Aの実現値は、例えばaI =0のとき
    に、0がaI の実現値であると定義される。また、前記
    行列KG と前記補正数Γ(r)と前記縮退辞書G
    D (m,t)と前記整数dとは以下のようにして求め
    る。m次多項式G(X)の周期をeとし、周期eとは互
    いに素の条件で整数hを選び、周期eを法としてh×d
    =1を満たす前記整数dを選び、 前記平文Aと前記乱数rの和のh乗(A+r)h ∈R
    (m)(以下、(A+r)h と略記する)をベクトル
    (b0 ,b1 ,…,bm-1 )とし、 前記平文Aと前記乱数rの和のh乗(A+r)h の第
    (J+1)番目の成分b J を、前記平文Aおよび前記乱
    数rの成分{aI ,rI }(0≦I≦m−1)のt次関
    数FJ t (a0 ,a1 ,…,am-1 ,r0 ,r1 ,…,
    m-1 )(tは2以上の整数)で与え(以下、前記t次
    関数をFJ t と略記する)、前記t次関数FJ t を前記
    乱数rの成分{rI }のみが含まれる項HJ t とそれ以
    外の項GJ t とに分割して FJ t =GJ t +HJ t とし、前記t次関数FJ t において前記平文Aおよび前
    記乱数rの成分{aI ,rI }によって構成されるt次
    項のそれぞれをワードとし、辞書順に並べられたワード
    の集合(以下、ワードの集合を辞書と呼ぶ)をW(m,
    t)とし、このワードの集合、すなわち辞書W(m,
    t)を乱数rの成分{rI }のみが含まれるワードの集
    合よりなる辞書H(m,t)とそれ以外のワードの集合
    よりなる辞書G(m,t)とに分け、連接によって W(m,t)=G(m,t)*H(m,t) とし、前記辞書G(m,t)と前記辞書H(m,t)と
    から前記縮退辞書GD (m,t)と前記縮退辞書H
    D (m,t)とをそれぞれ求め、前記縮退辞書G
    D (m,t)と前記縮退辞書HD (m,t)と行列Kと
    を用いて、前記平文Aと前記乱数rの和のh乗(A+
    r)h の転置ベクトル[(A+r)h T を展開して K・[GD (m,t)*HD (m,t)]T で表したときに、前記行列Kを縮退辞書GD (m,t)
    に作用する前記行列KGと前記縮退辞書HD (m,t)
    に作用する行列KH とに分けて、 K=[KG H ] とすることにより、前記行列KG と前記行列KH とを求
    め、 前記縮退辞書HD (m,t)に前記乱数rの成分r0
    1 ,…,rm-1 の実現値を代入した状態で、前記補正
    数Γ(r)を、 Γ(r)T =KH ・HD (m,t)T の演算によって求める。
  2. 【請求項2】 請求項1記載の公開鍵暗号方式に用いる
    暗号化装置であって、縮退辞書GD (m,t)に平文A
    の成分a0 ,a1 ,…,am-1 の実現値を代入するデー
    タ代入機能と、 行列KG と前記平文Aの成分a0 ,a1 ,…,am-1
    実現値を代入した前記縮退辞書GD (m,t)とを基に CT =KG ・GD (m,t)T の演算によって暗号文Cを生成する演算機能とを備えた
    暗号化装置。
  3. 【請求項3】 請求項1記載の公開鍵暗号方式に用いる
    暗号化装置であって、平文Aの成分a0 ,a1 ,…,a
    m-1 の実現値を記憶するレジスタ群と、前記レジスタ群
    の各実現値と行列KG の各行毎の実現値とを基に CT =KG ・GD (m,t)T の演算によって暗号文Cの各成分C0 ,C1 ,…,C
    m-1 を算出する積和演算回路とを備えた暗号化装置。
  4. 【請求項4】 請求項1記載の公開鍵暗号方式に用いる
    復号装置であって、暗号文Cと補正数Γ(r)とを加算
    する第1の加算機能と、前記第1の加算機能による加算
    結果の転置行列〔C+Γ(r)〕T をd乗する演算機能
    と、前記演算機能による演算結果に乱数rを加えること
    により平文Aを復号する第2の加算機能とを備えた復号
    装置。
  5. 【請求項5】 請求項1記載の公開鍵暗号方式に用いる
    復号装置であって、暗号文Cと補正数Γ(r)とを各成
    分毎にそれぞれ加算する第1の加算器と、m次多項式G
    (X)に対応して帰還経路を選択的に形成するスイッチ
    手段を有する縦続接続したm個のレジスタからなり、前
    記第1の加算器の各出力を初期入力として(h−1)×
    d回シフト動作をする帰還型シフトレジスタと、前記帰
    還型シフトレジスタの各出力と乱数rの各成分をそれぞ
    れ加算する第2の加算器とを備えた復号装置。
  6. 【請求項6】 請求項1記載の公開鍵暗号方式に用いる
    暗号装置であって、縮退辞書GD (m,t)に平文Aの
    成分a0 ,a1 ,…,am-1 の実現値を代入するデータ
    代入機能と、行列KG と前記平文Aの成分a0 ,a1
    …,am-1 の実現値を代入した前記縮退辞書GD (m,
    t)とを基に CT =KG ・GD (m,t)T の演算によって暗号文Cを生成する演算機能と、暗号文
    Cと補正数Γ(r)とを加算する第1の加算機能と、前
    記第1の加算機能による加算結果の転置行列〔C+Γ
    (r)〕T をd乗する演算機能と、前記演算機能による
    演算結果に乱数rを加えることにより平文Aを復号する
    第2の加算機能とを備えた暗号装置。
  7. 【請求項7】 請求項1記載の公開鍵暗号方式に用いる
    暗号装置であって、平文Aの成分a0 ,a1 ,…,a
    m-1 の実現値を記憶するレジスタ群と、前記レジスタ群
    の各実現値と行列KG の各行毎の実現値とを基に CT =KG ・GD (m,t)T の演算によって暗号文Cの各成分を算出する積和演算回
    路と、暗号文Cと補正数Γ(r)とを各成分毎にそれぞ
    れ加算する第1の加算器と、m次多項式G(X)に対応
    して帰還経路を選択的に形成するスイッチ手段を有する
    縦続接続したm個のレジスタからなり、前記第1の加算
    器の各出力を初期入力として(h−1)×d回シフト動
    作をする帰還型シフトレジスタと、前記帰還型シフトレ
    ジスタの各出力と乱数rの各成分をそれぞれ加算する第
    2の加算器とを備えた暗号装置。
  8. 【請求項8】 請求項1記載の公開鍵暗号方式を実施す
    るプログラムを記憶した記録媒体。
  9. 【請求項9】 請求項2または請求項3記載の暗号化装
    置で生成された暗号文Cを記録した記録媒体。
  10. 【請求項10】 請求項6または請求項7記載の暗号装
    置で生成された暗号文Cを記録した記録媒体。
  11. 【請求項11】 請求項2または請求項3記載の暗号化
    装置で生成された暗号文Cを伝送する伝送路。
  12. 【請求項12】 請求項6または請求項7記載の暗号装
    置で生成された暗号文Cを伝送する伝送路。
  13. 【請求項13】 2元体上のm次多項式G(X)(mは
    2以上の整数)を法とする剰余環R(m)上の公開鍵暗
    号方式で用いる公開鍵行列としての行列KGと補正数Γ
    (r)とを生成する公開鍵行列・補正数生成方法であっ
    て、 任意のm次多項式G(X)を選び、このm次多項式G
    (X)の周期eを求め、前記周期eとは互いに素の条件
    で整数hを選び、前記周期eを法としてh×d=1を満
    たす整数dを選び、 平文Aをベクトル(a0 ,a1 ,…,am-1 )とし、乱
    数rをベクトル(r0,r1 ,…,rm-1 )とし、前記
    平文Aと前記乱数rの和のh乗(A+r)h をベクトル
    (b0 ,b1 ,…,bm-1 )とし、 縮退したワードの集合GD (m,t)と縮退したワード
    の集合(以下、縮退したワードの集合を縮退辞書と呼
    ぶ)HD (m,t)と行列Kとを用いて、前記平文Aと
    前記乱数rの和のh乗(A+r)h の転置ベクトル
    [(A+r)h T を展開して K・[GD (m,t)*HD (m,t)]T で表したときに、前記行列Kを前記縮退辞書GD (m,
    t)に作用する前記行列KG と前記縮退辞書HD (m,
    t)に作用する行列KH とに分けて、 K=[KG H ] とすることにより、前記行列KG と前記行列KH とを求
    め、 前記縮退辞書HD (m,t)に前記乱数rの成分r0
    1 ,…,rm-1 の実現値を代入した状態で、前記補正
    数Γ(r)を、 Γ(r)T =KH ・HD (m,t)T の演算によって求めることを特徴とする公開鍵行列・補
    正数生成方法。ただし、前記縮退辞書GD (m,t)と
    前記縮退辞書HD (m,t)とは以下のようにして求め
    る。前記平文Aと前記乱数rの和のh乗(A+r)h
    第(J+1)番目の成分bJ を、前記平文Aおよび前記
    乱数rの成分{aI ,rI }(0≦I≦m−1)のt次
    関数FJ t (a0 ,a1 ,…,am-1 ,r0 ,r1
    …,rm-1 )(tは2以上の整数)で与え(以下、前記
    t次関数をFJ t と略記する)、前記t次関数FJ t
    前記乱数rの成分{rI }のみが含まれる項HJ tとそ
    れ以外の項GJ t とに分割して FJ t =GJ t +HJ t とし、前記t次関数FJ t において前記平文Aおよび前
    記乱数rの成分{aI ,rI }によって構成されるt次
    項のそれぞれをワードとし、辞書順に並べられたワード
    の集合よりなる辞書をW(m,t)とし、この辞書W
    (m,t)を乱数rの成分{rI }のみが含まれるワー
    ドの集合よりなる辞書H(m,t)とそれ以外のワード
    の集合よりなる辞書G(m,t)とに分け、連接によっ
    て W(m,t)=G(m,t)*H(m,t) とし、前記辞書G(m,t)と前記辞書H(m,t)と
    から前記縮退辞書GD (m,t)と前記縮退辞書H
    D (m,t)とをそれぞれ求める。
  14. 【請求項14】 請求項13記載の公開鍵行列・補正数
    生成方法を実施するプログラムを記録した記録媒体。
  15. 【請求項15】 請求項13記載の公開鍵行列・補正数
    生成方法を実施する機能を組み込んだICカード。
  16. 【請求項16】 q元体(qは3以上の整数)上のm次
    多項式G(X)(mは2以上の整数)を法とする剰余環
    R(m)上の公開鍵暗号方式であって、 平文Aをq元体上のベクトル(A0 ,A1 ,…,
    m-1 )とし、乱数rをq元体上のベクトル(r0 ,r
    1 ,…,rm-1 )とし、暗号文Cをq元体上のベクトル
    (C1 ,C2 ,…,Cm-1 )としたときに、平文Aの成
    分をq元体上の乱数R=(R0 ,R1 ,…,Rm-1 )に
    より、平文A(C)=(a0 ,a1 ,…,am- 1 )に変
    換し、 共通の辞書行列となる縮退したワードの集合(以下、縮
    退したワードの集合を縮退辞書と呼ぶ)GD (m,t)
    に前記乱数変換された平文A(C)の成分a0,a1
    …,am-1 の実現値を代入した状態で、暗号文Cを、固
    有の公開鍵行列となる行列KG と前記縮退辞書G
    D (m,t)とを基に CT =KG ・GD (m,t)T の演算によって生成し、 前記乱数変換された平文A(C)を、暗号文Cと秘密鍵
    である3つのパラメータとしての補正数Γ(r),乱数
    rおよび整数dとを基に A(C)={[C+Γ(r)]T d +r の演算によって復号し、前記乱数変換された平文A
    (C)を逆変換の乱数R(T)=(R0 -1,R1 -1
    …,Rm-1 -1)により逆変換し、もとの平文A=
    (A0,A1 ,…,Am-1 )を復号することを特徴とす
    る公開鍵暗号方式。ただし、aI =RI I であり、か
    つRI ≠0であり、またAI =RI -1Iである。ま
    た、平文Aの実現値は、例えばAI =0のときに、0が
    I の実現値であると定義される。また、前記行列KG
    と前記補正数Γ(r)と前記縮退辞書GD (m,t)と
    前記整数dとは以下のようにして求める。m次多項式G
    (X)の周期をeとし、周期eとは互いに素の条件で整
    数hを選び、周期eを法としてh×d=1を満たす前記
    整数dを選び、 前記乱数変換された平文A(C)と前記乱数rの和のh
    乗(A(C)+r)hをq元体上のベクトル(b0 ,b
    1 ,…,bm-1 )とし、 前記乱数変換された平文A(C)と前記乱数rの和のh
    乗(A(C)+r)hの第(J+1)番目の成分b
    J を、前記乱数変換された平文A(C)および前記乱数
    rの成分{aI ,rI }(0≦I≦m−1)のt次関数
    J t (a0 ,a1,…,am-1 ,r0 ,r1 ,…,r
    m-1 )(tは2以上の整数)で与え(以下、前記t次関
    数をFJ t と略記する)、前記t次関数FJ t を前記乱
    数rの成分{rI }のみが含まれる項HJ t とそれ以外
    の項GJ t とに分割して FJ t =GJ t +HJ t とし、前記t次関数FJ t において前記乱数変換された
    平文A(C)および前記乱数rの成分{aI ,rI }に
    よって構成されるt次項のそれぞれをワードとし、辞書
    順に並べられたワードの集合よりなる辞書をW(m,
    t)とし、この辞書W(m,t)を乱数rの成分
    {rI }のみが含まれるワードの集合よりなる辞書H
    (m,t)とそれ以外のワードの集合よりなる辞書G
    (m,t)とに分け、連接によって W(m,t)=G(m,t)*H(m,t) とし、前記辞書G(m,t)とH(m,t)とから前記
    縮退辞書GD (m,t)と前記縮退辞書HD (m,t)
    とをそれぞれ求め、前記縮退辞書GD (m,t)と前記
    縮退辞書HD (m,t)と行列Kとを用いて、前記乱数
    変換された平文A(C)と前記乱数rの和のh乗(A
    (C)+r)h の転置ベクトル[(A(C)+r)h
    T を展開して K・[GD (m,t)*HD (m,t)]T で表したときに、前記行列Kを縮退辞書GD (m,t)
    に作用する前記行列KGと前記縮退辞書HD (m,t)
    に作用する行列KH とに分けて、 K=[KG H ] とすることにより、前記行列KG と前記行列KH とを求
    め、 前記縮退辞書HD (m,t)に前記乱数rの成分r0
    1 ,…,rm-1 の実現値を代入した状態で、前記補正
    数Γ(r)を、 Γ(r)T =KH ・HD (m,t)T の演算によって求める。
  17. 【請求項17】 請求項1または請求項16記載の公開
    鍵暗号方式を用いてディジタル署名を行うディジタル署
    名方法であって、 署名文送信者が秘密の乱数xを生成し、自己の秘密鍵で
    ある整数d、乱数rおよび補正数Γ(r)を用いて、平
    文Aに対し、 {(A+x)d −r,x−Γ(r)} を署名文として生成し、 署名文受信者が前記署名文を受け取り、(A+x)d
    rの各成分の実現値を平文Aの成分a0 ,a1 ,…,a
    m-1 の実現値と見なして縮退辞書GD (m,t)に代入
    した状態で、前記署名文送信者の公開鍵行列KG と前記
    縮退辞書GD (m,t)とを基に DT =KG ・GD (m,t)T の演算によって、擬似暗号文Dを生成し、 前記平文Aを、擬似暗号文Dとx−Γ(r)とを基に A=D−{x−Γ(r)} の演算によって復号することを特徴とするディジタル署
    名方法。
  18. 【請求項18】 署名文送信者が縮退辞書GD (m,
    t)に署名文{(A+x)d −r,x−Γ(r)}の実
    現値を代入した状態で、署名文受信者の公開鍵行列であ
    る行列KG を基に暗号化署名文を生成し、署名文受信者
    が自己の秘密鍵である3つのパラメータとしての補正数
    Γ(r),乱数rおよび整数dとを基に前記暗号化署名
    文から前記署名文を復号することを特徴とする請求項1
    7記載のディジタル署名方法。
JP9324051A 1997-11-26 1997-11-26 公開鍵暗号方式と暗号化装置および復号装置 Pending JPH11161164A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP9324051A JPH11161164A (ja) 1997-11-26 1997-11-26 公開鍵暗号方式と暗号化装置および復号装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP9324051A JPH11161164A (ja) 1997-11-26 1997-11-26 公開鍵暗号方式と暗号化装置および復号装置

Publications (1)

Publication Number Publication Date
JPH11161164A true JPH11161164A (ja) 1999-06-18

Family

ID=18161610

Family Applications (1)

Application Number Title Priority Date Filing Date
JP9324051A Pending JPH11161164A (ja) 1997-11-26 1997-11-26 公開鍵暗号方式と暗号化装置および復号装置

Country Status (1)

Country Link
JP (1) JPH11161164A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20020003059A (ko) * 2000-07-01 2002-01-10 배민관 정수 또는 다항식 행열을 이용한 공개키 암호시스템
DE10148415A1 (de) * 2001-09-29 2003-04-24 Univ Braunschweig Tech Verfahren und Vorrichtung zum Verschlüsseln und Entschlüsseln von Daten
CN105339995A (zh) * 2013-07-18 2016-02-17 日本电信电话株式会社 解密装置、解密能力提供装置、其方法、以及程序

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20020003059A (ko) * 2000-07-01 2002-01-10 배민관 정수 또는 다항식 행열을 이용한 공개키 암호시스템
DE10148415A1 (de) * 2001-09-29 2003-04-24 Univ Braunschweig Tech Verfahren und Vorrichtung zum Verschlüsseln und Entschlüsseln von Daten
DE10148415C2 (de) * 2001-09-29 2003-07-31 Univ Braunschweig Tech Verfahren und Vorrichtung zum Verschlüsseln und Entschlüsseln von Daten
US7949128B2 (en) 2001-09-29 2011-05-24 Wired Connections Llc Method and device for the encryption and decryption of data
CN105339995A (zh) * 2013-07-18 2016-02-17 日本电信电话株式会社 解密装置、解密能力提供装置、其方法、以及程序
CN105339995B (zh) * 2013-07-18 2018-04-06 日本电信电话株式会社 解密装置、解密能力提供装置、其方法、以及记录介质

Similar Documents

Publication Publication Date Title
KR101246490B1 (ko) 갈루아 폐체 암호 시스템
EP0839418B1 (en) Cryptographic method and apparatus for non-linearly merging a data block and a key
US5365589A (en) Method and apparatus for encryption, decryption and authentication using dynamical systems
JP4879951B2 (ja) セキュリティ強化のための転置データ変換
WO2001030020A1 (fr) Systeme de cryptage de cle a longueur variable
JP2001324925A (ja) 共通鍵暗号方法及び装置
JP3976218B2 (ja) 暗号システム
KR20110014211A (ko) 암호화 시스템
CA2410421A1 (en) Parallel modulo arithmetic using bitwise logical operations
Agbedemnab et al. A Novel Text Encryption and Decryption Scheme using the Genetic Algorithm and Residual Numbers.
EP1287641B1 (en) A method of validating an encrypted message
EP0996250A2 (en) Efficient block cipher method
CA2413381A1 (en) A method of protecting a cryptosystem from a multiple transmission attack
JP2001051832A (ja) 乗算剰余演算方法および乗算剰余回路
JP2001282103A (ja) 暗号化方法
JPH11161164A (ja) 公開鍵暗号方式と暗号化装置および復号装置
JP4685621B2 (ja) 鍵生成装置、暗号化装置、復号化装置、乗法型ナップザック暗号システム、乗法型ナップザック暗号復号方法およびプログラム
Ashok et al. An Approach of Cryptosystem using Polynomials and Lucas Numbers
JPH11252065A (ja) 暗号鍵の生成装置
JPH06282227A (ja) 公開鍵暗号化装置及び公開鍵復号装置
JP3473171B2 (ja) 逐次暗号方式
JP3740659B2 (ja) ナップサック型公開鍵暗号システム、その公開鍵生成方法、その装置、そのプログラム、及びその記録媒体
JP3517731B2 (ja) 暗号通信方法
Abbas et al. Audio cryptosystem based on LFSH and Chaotic map with ECC key management
Amounas Secure encryption scheme of amazigh alphabet based ECC using finite state machine