JPH076025A - 冪剰余演算方法および装置 - Google Patents

冪剰余演算方法および装置

Info

Publication number
JPH076025A
JPH076025A JP5148952A JP14895293A JPH076025A JP H076025 A JPH076025 A JP H076025A JP 5148952 A JP5148952 A JP 5148952A JP 14895293 A JP14895293 A JP 14895293A JP H076025 A JPH076025 A JP H076025A
Authority
JP
Japan
Prior art keywords
mod
modular exponentiation
exponent
subtraction
calculation
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
JP5148952A
Other languages
English (en)
Inventor
Shinji Ishii
晋司 石井
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.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP5148952A priority Critical patent/JPH076025A/ja
Publication of JPH076025A publication Critical patent/JPH076025A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 【目的】 素数判定、素数生成および公開鍵暗号の計算
に使用する冪剰余演算の高速化を実現する。 【構成】 レジスタ201,202,203は冪指数
e、被演算数m、法nの各データを格納している。減算
部204はn−mを求め、その減算結果m′を出力す
る。冪剰余演算部205は減算結果m′について、冪指
数e、法nとした冪剰余演算m′e mod nを行い、演算
結果c′を出力する。減算部206はn−c′を求め、
その減算結果cを出力する。偶奇判定部207は冪指数
eが偶数か奇数か判定する。演算結果選択部208は、
eが偶数の時は冪剰余演算部205の出力c′を選択
し、eが奇数のときは減算部206の出力cを選択し、
出力線209に出力する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、素数判定、素数生成お
よび公開鍵暗号の計算などに使用される冪剰余演算を高
速行う方法および装置に関するものである。
【0002】
【従来の技術】大きな自然数の素数判定、素数生成およ
びほとんどの公開鍵暗号アルゴリズムには、冪剰余演算
が利用されている。また、冪剰余演算を用いた公開鍵暗
号アルゴリズムは、安全性の確保の観点から、法nは少
なくとも200桁程度必要であると言われている。ここ
で、冪剰余演算をme mod nとして、単純に計算する
と、e回の乗算と除算が必要で、その演算量は非常に大
きなものとなる。
【0003】この冪剰余演算の高速化法の従来技術とし
ては、乗算回数を減らすことにより演算量を減らす方式
と、剰余算そのものを高速化する方式に大別される。例
えば、前者の方式は、文献「D.E.Knuth,“The Art
of Computer Programming”Vol.2,Seminumerica
l Algorithm,Second Edition,Addison-Wesley,
1981」に記載されており、後者の方式は、文献
「S.Miyaguchi,“FastEncryption Algorithm for
the RSA Cryptographic System” COMPCO
N '82 Fall,pp.672−678,1982」に記
載されている。
【0004】
【発明が解決しようとする課題】上記従来の方式は、何
れも高速演算に効果的ではあるが、リアルタイム性が必
要なISDN等の暗号通信等に利用するには、演算速度
は十分ではなく、現在より一層高速な演算方法や装置が
要求されている。
【0005】本発明の目的は、素数判定、素数生成およ
び公開鍵暗号アルゴリズム等に利用される冪剰余演算を
より高速に実行することができる高速冪剰余演算方法お
よび装置を提供することにある。
【0006】
【課題を解決するための手段】本発明は、冪指数e、法
nとした剰余演算me mod nを行う場合、eが奇数のと
き、me mod nの演算をする代わりにn−{(n−m)e
mod n}の演算を行い、eが偶数のとき、me mod nの
演算をする代わりに(n−m)e mod nの演算を行うこ
とを特徴とするものである。
【0007】
【作用】冪剰余演算me mod nは、冪指数eが奇数の場
合、me mod nの演算結果とn−{(n−m)e mod n}
の演算結果が同値になり、eが偶数の場合、me modn
の演算結果と(n−m)e mod nの演算結果が同値にな
る。これは次のようにして証明できる。
【0008】A.eが奇数の場合 me mod n=n−{(n‐m)e mod n}………………………………(1) が成立すればよい。即ち、 me mod n−[n−{(n−m)e mod n}]=0……………………(2) が成立すればよい。(2)式を整理すると次のようにな
る。 me mod n−[n−{(n−m)e mod n}] =me mod n−n+(n−m)e mod n =[{me +(n−m)e }mod n]−n ここで、eが奇数であることを考慮して二項定理を用い
て(n−m)e を展開すると、 [me+(n−m)e}mod n]−n =[{me+(nee1e-1・m+e2e-2・m2e3e-3・m3+…… +ee-1n・me-1−me)}mod n]−n =[{nee1e-1・m+e2e-2・m2e3e-3・m3+…… +ee-1n・me-1)}mod n]−n =[{n・(ne-1e1e-2・m+e2e-3・m2e3e-4・m3+…… +ee-1n・me-1)}mod n]−n =(0 mod n)−n =n−n =0 したがって、eが奇数であるとき、(1)式のme mod
n=n−{(n−m)emod n}が成り立つことが証明さ
れた。
【0009】B.eが偶数の場合 me mod n=(n−n)e mod n…………………………………………(3) が成立すればよい。即ち、 me mod n−(n−m)e mod n=0……………………………………(4) が成立すればよい。(4)式を整理すると次のようにな
る。 me mod n−(n−m)e mod n ={me−(n−m)e}mod n ここで、eが偶数であることを考慮して二項定理を用い
て(n−m)e を展開すると、 {me−(n−m)e}mod n ={me−(nee1e-1・m+e2e-2・m2e3e-3・m3+…… −ee-1n.me-1+me)}mod n =(−nee1e-1・m−e2e-2・m2e3e-3・m3−…… +ee-1n・me-1)}mod n ={n・(−ne-1e1e-2・m−e2e-3・m2e3e-4・m3−…… +ee-1e-1)}mod n =0 mod n =0 したがって、eが偶数であるとき、(3)式のme mod
n=(n−m)e mod nが成り立つことが証明された。
【0010】このように、me mod nの演算を行うの
に、eが奇数の場合、n−(n−m)emod nの演算を実
行しても同じ結果が得られる。また、eが偶数の場合、
(n−m)e mod nの演算を実行しても同じ結果が得ら
れる。
【0011】ここで、me mod nの演算量は、m、n、
eの桁数とともに増加する。その演算量は、n、eに関
しては、n、eの桁数にほぼ比例する。mに関しては、
e<nのときは、非常に高速に演算することが出来
る。mがnに十分近づくと、ほぼ一定の演算時間にな
る。したがって、m>(n−m)、即ち、n/2<m<
nのときには、me mod nの演算を実行するより、(n
−m)e mod nの演算を実行した方がより高速である。
【0012】厳密に議論すると、本発明では、eが奇数
の場合には、(n−m)e mod nの演算を行うために、
n−mの減算1回とnから(n−m)e mod nの減算1
回の合計2回の減算が増える。eが偶数の場合には、
(n−m)e mod nの演算を行うために、n−mの減算
が1回増える。ところが、n、mが大きくなるにつれ、
減算が2回程度増えても、大きなmを使用して直接冪剰
余演算を実行するより、小さなn−mを使用して冪剰余
演算を実行する方が、高速にme mod nを実行すること
ができるようになる。また、mが大きいほどn−mは小
さくなる。言い換えると、本発明を適用すれば、従来、
演算時間が多くかかっていた場合ほど、高速に演算する
ことができる。
【0013】
【実施例】以下、本発明の一実施例について図面により
詳述する。
【0014】図1に、本発明かかる冪剰余演算方法の一
実施例の処理手順を示す。ここでは、被演算数m、法n
は大きく、減算は冪剰余演算の演算実行時間と比較した
とき無視できると仮定している。
【0015】まず、被演算数m、冪指数e、法nを入力
し(ステップ101)、n−mを求め(ステップ10
2)、mとn−mを比較する(ステップ103)。比較
結果、m≦n−mの場合は、従来通りに冪剰余演算me
mod nをそのまま実行し、演算結果cを得る(ステッ
プ104)。一方、m>n−mの場合、本発明を適用し
て高速に冪剰余演算を実行する。即ち、冪指数eが偶数
か奇数か判定し(ステップ105)、eが偶数の場合、
n−mをm′として(ステップ106)、me mod nの
演算の代りに、m′e mod nの演算を実行し、演算結果
cを得る(ステップ107)。また、eが奇数の場合
は、n−mをm′とし(ステップ108)、m′e mod
nの演算を実行して、その演算結果をc′とし(ステッ
プ109)、n−c′を求めて演算結果cを得る(ステ
ップ110)。なお、ステップ107,108において
は、先の文献等に提案されている冪剰余演算がそのまま
流用できる。
【0016】図2は、本発明にかかる冪剰余演算装置の
一実施例の構成図である。図において、レジスタ20
1,202,203には、それぞれ冪指数e、被演算数
m、法nが設定される。減算部204は、レジスタ20
2の被演算数mとレジスタ203の法nを入力してn−
mを計算し、m′(=n−m)を出力する。冪剰余演算
部205は、レジスタ201の冪指数e、レジスタ20
3の法n及び減算部204の出力m′を入力して、冪剰
余演算m′e mod nを実行し、演算結果c′を出力す
る。減算部206は、レジスタ203の法nと冪剰余演
算部205の演算結果c′を入力してn−c′を計算
し、c(=n−c′)を出力する。上記冪剰余演算部2
05の出力c′と減算部206の出力cは演算結果選択
部208の入力となる。一方、偶奇判定部207はレジ
スタ201の冪指数eが偶数か奇数か判定し、判定結果
を演算結果選択部208に与える。演算結果選択部20
8では、偶奇判定部207の判定結果に基づき、eが偶
数の場合は冪剰余演算部205の出力c′を選択し、e
が奇数の場合は減算部206の出力ccを選択し、出力
線209に出力する。
【0017】なお、図2の構成において、減算部204
と206は同一のもので兼用するようにしてもよい。ま
た、RSA暗号のように、例えば冪指数eが必ず奇数の
データのみを対象とする場合には偶奇判定部207、演
算結果選択部208を省略することができる。
【0018】次に、本発明の冪剰余演算装置を公開鍵暗
号で有名なRSA暗号に利用する場合の例について説明
する。最初に簡単にRSA暗号の演算方法について述べ
る。
【0019】RSA暗号は、大きな素数の合成数(実シ
ステムでは、2の600乗程度)の素因数分解の困難さ
に安全性の根拠をおいている、冪剰余演算の計算により
暗号化/復号を行う暗号である。ここで、暗号化をE
(Encrpytion)、復号をD(Decryption)、平文をM
(Plain text)、暗号文をC(Cipher text)、暗号
化鍵をe,n、復号鍵をd,nとする。e,nは公開
し、dは復号側が秘密にして保持する。
【0020】暗号化側と復号側の処理は C=E(M)=Me mod n………………暗号化側の処理 M=D(C)=Cd mod n………………復号側の処理 のように行う。なお、0≦M≦n−1なる任意のMに対
して D(E(M))=M つまり、 MedM≡1(mod n) が成り立つ。
【0021】すなわち、RAS暗号を用いて暗号通信を
行うには、暗号化側、復号側共に繰り返し冪剰余演算が
必要となる。さらに、その他の多くの実用的な公開鍵暗
号のほとんども、冪剰余演算を利用している。
【0022】RAS暗号の特徴として、冪指数のe、d
は必ず奇数となる。この性質を利用し、本発明を適用す
ると、暗号化側の装置は図3、復号側の装置は図4のよ
うに構成することができる。
【0023】暗号化側の図3では、最初にデータ分離部
300において、平文Mが(n+1)/2以上か(n+
1)/2未満かにより、該平文Mを2通りに分離する。
(n+1)/2以上の平文データ(これをmと仮定す
る)は、減算部302で暗号化鍵nから平文の値mを引
く。これをm′とする。その後、冪剰余演算部303に
おいて、暗号化鍵eを冪指数として冪剰余演算m´e mo
d nを行う。この演算結果をc′とする。次に、もう一
度、減算部304でnから冪剰余演算結果c′を引く。
一方、(n+1)/2未満の平文データ(これもmと仮
定する)は、冪剰余演算部301において、直接、冪剰
余演算me mod nを行う。最後、これら2通りの系統で
暗号化された暗号文データをデータ合成部305で1つ
の暗号文cに合成する。なお、減算部302と減算部3
04および、冪剰余演算部301と冪剰余演算部303
は、それぞれまったく同じ機構なので共有することがで
きる。
【0024】復号側の図4では、上記図3に対してeを
dに、暗号文Cを平文Mに、平文データmは暗号文デー
タcに置き替えるだけで、動作はまったく同じである。
【0025】このように、本発明をRSAか暗号に利用
すれば、(n+1)/2以上の平文の暗号化あるいは暗
号文の復号をする場合、直接、法n、冪指数eあるいは
dの冪剰余演算を行うより高速に冪剰余演算を実行する
ことが可能となる。
【0026】
【発明の効果】以上説明したように、本発明によれば、
素数判定、素数生成および公開鍵暗号アルゴリズムで利
用される冪剰余演算をより高速に実行することができ
る。
【図面の簡単な説明】
【図1】本発明に係る冪剰余演算方法の一実施例の処理
フロー図である。
【図2】本発明に係る冪剰余演算装置の一実施例の構成
図である。
【図3】本発明を利用して高速にRAS暗号の暗号化を
行うRAS暗号暗号化装置の構成例である。
【図4】本発明を利用して高速にRAS暗号の復号化を
行うRAS暗号復号装置の構成例である。
【符号の説明】
201〜203 レジスタ 204 減算部 205 冪剰余演算部 206 減算部 207 偶奇判定部 308 演算結果選択部

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】 冪指数e、法nとする冪剰余演算me mo
    d nを自動的に行う方法において、 冪指数eが奇数か偶数か判定するステップと、 冪指数eが奇数のとき、me mod nの演算の代わりにn
    −{(n−m)e mod n}の演算を行うステップと、 冪指数eが偶数のとき、me mod nの演算の代わりに
    (n−m)e mod nの演算を行うステップと、を有する
    ことを特徴とする冪剰余演算方法。
  2. 【請求項2】 冪指数e、法nとする冪剰余演算me mo
    d nを行う装置であって、 m´=n−mを計算する第1手段と、c´=m´e mod
    nを計算する第2手段と、c=n−c´を計算する第3
    手段とを具備し、 冪指数eが奇数のとき、前記第3手段の計算結果cを冪
    剰余演算me mod nの値とし、冪指数eが偶数のとき、
    前記第2手段の計算結果c´を冪剰余演算me mod nの
    値とすることを特徴とする冪剰余演算装置。
  3. 【請求項3】 請求項2記載の冪剰余演算装置におい
    て、第1手段と第3手段は同一の減算手段で兼用するこ
    とを特徴とする冪剰余演算装置。
JP5148952A 1993-06-21 1993-06-21 冪剰余演算方法および装置 Pending JPH076025A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP5148952A JPH076025A (ja) 1993-06-21 1993-06-21 冪剰余演算方法および装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP5148952A JPH076025A (ja) 1993-06-21 1993-06-21 冪剰余演算方法および装置

Publications (1)

Publication Number Publication Date
JPH076025A true JPH076025A (ja) 1995-01-10

Family

ID=15464329

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5148952A Pending JPH076025A (ja) 1993-06-21 1993-06-21 冪剰余演算方法および装置

Country Status (1)

Country Link
JP (1) JPH076025A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002278450A (ja) * 2001-03-14 2002-09-27 Toshiba Corp 素数生成装置、方法及びプログラム
WO2006003872A1 (ja) 2004-06-30 2006-01-12 Tdk Corporation 希土類焼結磁石用原料粉体の製造方法、希土類焼結磁石の製造方法、顆粒及び焼結体
US8327773B2 (en) 2010-01-04 2012-12-11 Nippon Sharyo, Ltd. Railway vehicle
US11895230B2 (en) 2019-01-24 2024-02-06 Nec Corporation Information processing apparatus, secure computation method, and program

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002278450A (ja) * 2001-03-14 2002-09-27 Toshiba Corp 素数生成装置、方法及びプログラム
JP4664514B2 (ja) * 2001-03-14 2011-04-06 株式会社東芝 素数生成装置及びプログラム
WO2006003872A1 (ja) 2004-06-30 2006-01-12 Tdk Corporation 希土類焼結磁石用原料粉体の製造方法、希土類焼結磁石の製造方法、顆粒及び焼結体
EP2527062A1 (en) 2004-06-30 2012-11-28 TDK Corporation Method for producing a rare earth sintered magnet
US8327773B2 (en) 2010-01-04 2012-12-11 Nippon Sharyo, Ltd. Railway vehicle
US11895230B2 (en) 2019-01-24 2024-02-06 Nec Corporation Information processing apparatus, secure computation method, and program

Similar Documents

Publication Publication Date Title
Lenstra et al. Selecting cryptographic key sizes
Lenstra et al. Selecting cryptographic key sizes
US6876745B1 (en) Method and apparatus for elliptic curve cryptography and recording medium therefore
US7231040B1 (en) Multiprime RSA public key cryptosystem
US7536011B2 (en) Tamper-proof elliptic encryption with private key
CN109039640B (zh) 一种基于rsa密码算法的加解密硬件系统及方法
US20060251247A1 (en) Encryption apparatus, decryption apparatus, key generation apparatus, program and method therefor
JP4086503B2 (ja) 暗号演算装置及び方法並びにプログラム
JP4137385B2 (ja) 公開鍵および秘密鍵による暗号化方法
JP2001337599A (ja) 楕円曲線暗号におけるスカラー倍計算方法及び装置、並びに記憶媒体
US8548161B2 (en) Crytographically transforming data text
US6480606B1 (en) Elliptic curve encryption method and system
US20020041683A1 (en) Method for selecting optimal number of prime factors of a modulus for use in a cryptographic system
JP4351987B2 (ja) モンゴメリ変換装置、演算装置、icカード、暗号装置、復号装置及びプログラム
JP2003098962A (ja) 楕円曲線スカラー倍計算方法及び装置並びに記録媒体
US7177422B2 (en) Elliptic curve encryption processing method, elliptic curve encryption processing apparatus, and program
JP4626148B2 (ja) 復号または署名作成におけるべき乗剰余算の計算方法
JPH076025A (ja) 冪剰余演算方法および装置
EP3419213B1 (en) Computer implemented method, computer system and computer readable computer program product
JP4479135B2 (ja) 演算装置及び演算方法及び演算プログラム
KR100451570B1 (ko) 에스피에이에 견디는 타원 곡선 암호화 알고리즘을구현하는 방법 및 장치
JP3881273B2 (ja) 暗号鍵生成装置、暗号鍵生成プログラムおよびそのプログラムを記録した記録媒体
JP2000214777A (ja) 巾乗剰余演算を行う演算装置
Al-Tuwaijry et al. A high speed RSA processor
WO2004070681A2 (ja) 楕円曲線スカラー倍計算方法および装置