JPH09292836A - 循環演算にもとづく暗号文の復号化方法および装置 - Google Patents

循環演算にもとづく暗号文の復号化方法および装置

Info

Publication number
JPH09292836A
JPH09292836A JP8106541A JP10654196A JPH09292836A JP H09292836 A JPH09292836 A JP H09292836A JP 8106541 A JP8106541 A JP 8106541A JP 10654196 A JP10654196 A JP 10654196A JP H09292836 A JPH09292836 A JP H09292836A
Authority
JP
Japan
Prior art keywords
output
ciphertext
bit integer
bit
integer
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.)
Granted
Application number
JP8106541A
Other languages
English (en)
Other versions
JP3024549B2 (ja
Inventor
Michio Shimada
道雄 島田
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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP8106541A priority Critical patent/JP3024549B2/ja
Publication of JPH09292836A publication Critical patent/JPH09292836A/ja
Application granted granted Critical
Publication of JP3024549B2 publication Critical patent/JP3024549B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Abstract

(57)【要約】 【課題】 循環演算にもとづく暗号文が提案されている
が、この暗号文を平文に復号化する技術が提案されてお
らず、その実用化は困難である。 【解決手段】 乗算器201は、入力されたnビット整
数Adと、暗号文としてのnビット整数Yとを乗算し
て、乗算結果AdYを得る。剰余演算器202は、その
出力AdYをnビット整数Aで割って、剰余H=AdY
modAをシフタ203において上位桁方向にnビット
だけシフトして2n Hを得る。減算器204は、その出
力2n Hから前記出力Hを減算して、減算結果2n H−
Hを得る。加算器205は、前記整数Yと前記出力2n
H−Hとを加算して2n H+(Y−H)を得る。除算器
206は、その出力2n H+(Y−H)をnビット整数
Aで割って、商X={2n H+(Y−H)}/Aを得
る。このXが暗号文Yに対応する平文Xとして得られ
る。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、通信システムや計
算機システムにおいて採用され、許可されていない者が
不正に情報を取得することなどを防止するために暗号化
された暗号文から、元の平文を復元する復号化方法およ
び復号化装置に関する。
【0002】
【従来の技術】従来の暗号化方法および装置では、しば
しば、線形変換(アフィン変換とも呼ばれる)Y=AX
+B(modP)を組み合わせて暗号化が行われてい
た。ここで、線形変換とは、変換対象の整数Xに整数A
を乗算し、その乗算結果AXに整数Bを加算し、その加
算結果AX+BをPで割ったときの余り(剰余と呼ぶ)
を暗号文Yとするものである。なお、線形変換暗号にお
いてはA,B,Pは予め決められた整数で、一般にAと
Bが暗号鍵とされ、Pがアルファベットの数とされる。
特に、A=1とし、Bを暗号鍵とし、Pをアルファベッ
トの数としたものは、シーザー暗号と呼ばれる。また、
Aを暗号鍵として、B=0とし、Pをアルファベットの
数としたものは、積暗号と呼ばれる。
【0003】なお、通常の計算機においては、8ビット
整数が1文字として扱われるため、A,X,Bはそれぞ
れ8ビット整数で、P=256である。このため、演算
結果AX+Bの下位8ビットがAX+B(modP)と
等しくなる。すなわち、割り算をしなくとも、上位のビ
ットを無視するだけで剰余が計算できる。また、多重剰
余暗号と呼ばれる暗号化方法においては、A,Bを予め
決められた整数としPを暗号鍵とした線形変換を組み合
わせることで、非線形な暗号化が行われる。なお、シー
ザー暗号、積暗号、線形変換暗号については、例えば、
松井甲子雄著「コンピュータによる暗号解読入門」(森
北出版1990年)の第39ページから第55ページに
かけて詳しい解説がある。多重剰余暗号については、例
えば、特開平6−75525号公報に記載されている。
【0004】なお、以下では、Xを平文と呼びYを暗号
文とも呼ぶ。また、以下では、nビット加算器という用
語が出てくるが、nビット加算器とは、キャリー入力と
呼ばれる1ビット整数Cとnビット整数Xとnビット整
数Yに対して、演算Z=X+Y+Cを実行する回路のこ
とである。また、以下では、Zの下位nビット加算器の
加算出力と呼び、Zの下位からn+1ビット目をnビッ
ト加算器のキャリー出力と呼ぶ。また、nビット加算器
がZ=X+Y+Cを計算することを、Cをキャリー入力
としてXとYを加算すると言うことにする。また、以下
では、X=YmodZは、YをZで割って得られる剰余
をXに代入することを意味し、X=Y/Zは、YをZで
割って得られる商をXに代入することを意味し、X=Y
(modZ)は、XをZで割って得られる剰余と、Yを
Zで割って得られる剰余が、等しいことを意味するもの
とする。また、X=Y(modZ)は合同式と呼ばれ
る。
【0005】しかしながら、線形変換には、簡単に解読
できると言う問題があった。というのも、暗号鍵を知ら
ない第三者であっても、入出力の組が幾つか入手できれ
ば、それらにもとづいて線形方程式をたてて、その線形
方程式を解くことで、暗号鍵が推定できるからである。
また、多重剰余暗号には、計算量が大きいと言う問題が
あった。というのも、線形変換暗号においては、通常
は、法Pとして2のべき乗になるような値が選ばれるの
で、割り算が不要だったが、多重剰余暗号においては、
法Pとして素数が選ばれるので、割り算が必要だからで
ある。
【0006】そこで、割り算が不要な非線形変換とし
て、循環演算にもとづく暗号方法が考えられた。これ
は、nビットの平文Xに対して、nビット整数Aを乗算
してY=AXとし、Yがnビットの整数になるまでY=
(Yの下位nビット)+(Yの上位nビット)という操
作を繰り返し、Yがnビットの整数になったらYを暗号
文として出力するものである。
【0007】すなわち、循環演算にもとづく暗号方法に
おいては、図3のように、まず、入力されたnビット整
数Xが演算工程301に供給される。演算工程301
は、整数Xに対して変換Y=AXを実行する。なお、Y
は2nビット整数であり、以下では便宜上、Yの上位n
ビットをYhと表し、Yの下位nビットをYlと表すも
のとする。次に、判定工程302は、Yhがゼロである
か否かを判定する。そして、もし、Yhがゼロであれ
ば、処理を終了する。一方、もし、Yhがゼロでなけれ
ば、演算工程303において、YhとYlを加算して、
その結果をYに代入し、再び判定工程302に戻る。以
上のようにすれば、処理の終了時点において、入力され
た平文Xに対応するnビットの暗号文Yが得られる。な
お、図において判定工程302が実行される回数は、1
回の暗号化につき、高々2回であることが知られてい
る。
【0008】このような循環演算にもとづく暗号文を作
成するための暗号化装置は、例えば、図4のようにして
構成される。同図において、乗算器401は、入力端子
405から供給されるnビット整数Xと入力端子404
から供給されるnビット整数Aとを乗算して、乗算結果
をnビット加算器402に供給する(Y=AX)。nビ
ット加算器402は、0をキャリー入力として乗算結果
の上位nビットと乗算結果の下位nビットとを加算し
て、加算出力をnビット加算器403に供給する(Y=
nh+nl)。nビット加算器403は、nビット加算
器402のキャリー出力をキャリー入力としてnビット
加算器402の出力と0とを加算する。そして、nビッ
ト加算器403の加算出力がXに対する暗号文Yとして
出力端子406から出力される。
【0009】
【発明が解決しようとする課題】このような循環演算に
もとづく暗号化方法は考えられているが、この暗号化方
法ではそれを疑似乱数の生成には利用できても、暗号化
には利用できないという問題がある。その理由は、暗号
文Yから平文Xを復元する方法が提案されていないため
である。
【0010】本発明は、循環演算にもとづく暗号文から
平文を正しく復元できる復号化方法および装置を提供す
ることを目的とする。
【0011】
【課題を解決するための手段】本発明の復号化方法は、
循環演算にもとづいて暗号化されたnビットの整数から
なる暗号文Yに対し、A,Adを予め決められたnビッ
ト整数とし、前記暗号文Yに対する変換H=(AdY)
modAと、YおよびHに対する変換X={2n H+
(Y−H)}/Aを順次実行し、Xの値を暗号文Yに対
応する平文として出力することを特徴とする。
【0012】また、この復号化方法を実行するための復
号化装置としては、予め決められたnビット整数Adと
入力されたnビット整数からなる暗号文Yとを乗算する
乗算器と、前記乗算器の出力を予め決められたnビット
整数Aで割って得られる剰余を算出する剰余演算器と、
前記剰余演算器の出力を上位桁方向にnビットだけシフ
トするシフタと、前記シフタの出力から前記剰余演算器
の出力を減算する減算器と、前記減算器の出力と前記n
ビット整数Yを加算する加算器と、前記加算器の出力を
前記nビット整数Aで割って得られる商Xを算出する除
算器とを具備し、除算器の出力Xを暗号文Yに対応する
平文として出力する構成とする。
【0013】
【発明の実施の形態】次に、本発明の実施形態を図面を
参照して説明する。図3及び図4で示したような循環演
算にもとづいて得られる暗号文Y、すなわちY=AXに
ついて、nビット整数Aとnビット整数Xの積AXの上
位nビットをHとし、AXの下位nビットをLとする
と、AX=2n H+Lという関係が成り立っている。ま
た、加算結果H+Lの下からn+1ビット目がCなら
ば、Y=H+L−2n C+Cとなる。したがって、AX
とYの間には、次のような関係が成り立っている。 AX=2n H+(Y−H)+(2n −1)C …(1) 以下では、この関係を利用してYからXを復元する方法
を、C=0の場合とC=1の場合に分けて示す。もっと
も、以下の説明から判るように、いずれの場合も同じ方
法でYからXが復元できる。
【0014】まず、式(1)より、C=0の場合には、 AX=2n H+(Y−H) という関係式が成り立っている。ところで、X<2n
あるから、常にH<Aである。したがって、Aと2n
1が互いに素であれば、Hの値は、次のHに関する合同
式の解として一意に定まる。 (2n −1)H+Y=0(modA) …(2) したがって、Yが与えられれば、次の操作によって、H
が求められる。 H=(AdY)modA …(3) ここで、Adは、次の合同式を満足する整数である。 (2n −1)Ad+1=0(modA) …(4) そして、Hが求まれば、式(1)により、次の操作によ
って、Xが復元できる。 X={2n H+(Y−H)}/A …(5)
【0015】一方、式(1)より、C=1の場合には、 AX=2n H+(Y−H)+(2n −1) という関係式が成り立っている。したがって、Aと2n
−1が互いに素であれば、Hは、次の合同式の解として
一意に定まる。 (2n −1)H+Y+(2n −1)=0(modA) …(6) したがって、Yが与えられれば、次の操作によって、H
が求められる。 H=(Ad Y−1)modA …(7) ところで、Y=0だとH=A−1でなければならない
が、循環演算にもとづく暗号化においては、H=A−1
だとY=0になることは無いから、C=1の場合にはY
=0にはなり得ない。したがって、C=1の場合には、
Hを求める操作は、次のように書き直せる。 H=((AdY)modA)−1 …(8) そして、Hが求まれば、式(1)により、次の操作によ
って、Xが復元できる。 X={2n H+(Y−H)+(2n −1)}/A …(9)
【0016】ところで、H=HO −1とおくと、C=1
の場合にXを求めるのに用いた式は、次のように書き直
せる。ここで、HO は、C=0の場合にHを求めるのに
用いた式(3)によってYから生成されたHの値であ
る。 X={2n 0 +(Y−H0 )}/A …(10) この式は、C=0の場合にXを求めるのに用いた式
(5)と等価である。以上のことから、C=0の場合で
も、C=1の場合でも、次のような簡単な操作によっ
て、暗号文Yから平文Xが復元できることがわかる。 H=(AdY)modA …(11a) X={2n H+(Y−H)}/A …(11b)
【0017】以上の操作を実行するための本発明の復号
化方法の一実施形態を図1に示す。同図においいて、入
力されたnビット整数Yが演算工程101に供給され
る。演算工程101では、整数Yに対して、 H=(AdY)modA が実行され、整数Hが算出される。次に、整数Hが演算
工程102に供給される。演算工程102では、整数H
に対して、 X={2n H+(Y−H)}/A が実行され、整数Yから整数Xが復元される。
【0018】図2は、本発明の復号化装置の一実施形態
を示す回路図である。同図において、乗算器201は、
入力端子211から供給されるnビット整数Adと、入
力端子212から供給される暗号文としてのnビット整
数Yとを乗算して、乗算結果AdYを剰余演算器202
に供給する。剰余演算器202は、乗算器201の出力
AdYを、入力端子210から供給されるnビット整数
Aで割って、剰余H=AdYmodAをシフタ203と
減算器204に供給する。シフタ203は、入力された
整数Hを上位桁方向にnビットだけシフトして、その結
果2n Hを減算器204に供給する。減算器204は、
シフタ203の出力2n Hから剰余演算器202の出力
Hを減算して、減算結果2n H−Hを加算器205に供
給する。加算器205は、入力端子212から供給され
る整数Yと、加算器205の出力2n H−Hとを加算し
て、加算結果2n H+(Y−H)を除算器206に供給
する。除算器206は、加算器205の出力2n H+
(Y−H)を、入力端子210から供給されるnビット
整数Aで割って、商X={2n H+(Y−H)}/Aを
出力端子213に供給する。そして、出力端子213か
らは除算器206の出力が、暗号文Yに対応する平文X
として出力される。
【0019】なお、この復号化方式において、nビット
を8ビットとした場合には、Aの値は次のいずれかの整
数となる。 7,11,13,19,23,29,31,37,41,43,47,49,53,59,61,67,7
1,73,77,79,83,89,91,97,101,103,107,109,113,121,12
7,131,133,137,139,143,149,151,157,161,163,167,169,
173,179,181,191,193,197,199,203,209,211,217,223,22
7,229,233,239,241,247,251,253
【0020】なお、当然のことながら、本発明の暗号化
方法および装置を組み合わせることにより、より安全性
の高い暗号化方法および装置を構成することも可能であ
る。
【0021】
【発明の効果】以上説明したように本発明は、循環演算
にもとづく暗号化方法によって生成された暗号文から、
元の平文が正しく復元することが可能となる。これによ
り、循環演算にもとづく暗号化方法が、疑似乱数の生成
だけでなく、暗号化にも適用することが可能となる。ま
た、本発明では、暗号化装置を復号化装置として利用
し、復号化装置を暗号化装置として利用することで、復
号化装置のコストを大幅に削減できることも可能であ
る。これは、本発明によって循環演算にもとづく暗号化
方法によって生成された暗号文から元の平文が正しく復
元できるため、暗号化装置と復合化装置の役割を入れ替
えることが可能であり、また、循環演算にもとづく暗号
化装置においては、除算が不要だからである。
【図面の簡単な説明】
【図1】本発明の復号化方法の工程を説明するためのフ
ローチャートである。
【図2】本発明の復号化装置の実施形態のブロック構成
図である。
【図3】循環演算にもとづく暗号化方法の工程を説明す
るためのフローチャートである。
【図4】循環演算にもとづく暗号化装置の一例のブロッ
ク構成図である。
【符号の説明】 101,102 演算手段 201,401 乗算器 202 剰余演算器 203 シフタ 204 減算器 205 除算器 205,402,403 加算器

Claims (4)

    【特許請求の範囲】
  1. 【請求項1】 循環演算にもとづいて暗号化されたnビ
    ットの整数からなる暗号文Yに対し、A,Adを予め決
    められたnビット整数とし、前記暗号文Yに対する変換
    H=(AdY)modAと、YおよびHに対する変換X
    ={2n H+(Y−H)}/Aを順次実行し、Xの値を
    暗号文Yに対応する平文として出力することを特徴とす
    る循環演算にもとづく暗号文の復号化方法。
  2. 【請求項2】 暗号文Yは、nビットの平文Xに対し、
    nビットの整数Aの積Y=AXを求め、Yがnビットの
    整数になるまで、Y=(Yの下位nビット)+(Yの上
    位nビット)の操作を繰り返してnビットの整数からな
    る暗号文Yを得ている請求項1の循環演算にもとづく暗
    号文の復号化方法。
  3. 【請求項3】 nが8のとき、Aを7,11,13,19,23,29,
    31,37,41,43,47,49,53,59,61,67,71,73,77,79,83,89,9
    1,97,101,103,107,109,113,121,127,131,133,137,139,1
    43,149,151,157,161,163,167,169,173,179,181,191,19
    3,197,199,203,209,211,217,223,227,229,233,239,241,
    247,251,253 のいずれかの整数とする請求項1または2
    の循環演算にもとづく暗号文の復号化方法。
  4. 【請求項4】 予め決められたnビット整数Adと入力
    されたnビット整数からなる暗号文Yとを乗算する乗算
    器と、前記乗算器の出力を予め決められたnビット整数
    Aで割って得られる剰余を算出する剰余演算器と、前記
    剰余演算器の出力を上位桁方向にnビットだけシフトす
    るシフタと、前記シフタの出力から前記剰余演算器の出
    力を減算する減算器と、前記減算器の出力と前記nビッ
    ト整数Yを加算する加算器と、前記加算器の出力を前記
    nビット整数Aで割って得られる商Xを算出する除算器
    とを具備し、除算器の出力Xを暗号文Yに対応する平文
    として出力することを特徴とする循環演算にもとづく暗
    号文の復号化装置。
JP8106541A 1996-04-26 1996-04-26 循環演算にもとづく暗号文の復号化方法および装置 Expired - Lifetime JP3024549B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP8106541A JP3024549B2 (ja) 1996-04-26 1996-04-26 循環演算にもとづく暗号文の復号化方法および装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP8106541A JP3024549B2 (ja) 1996-04-26 1996-04-26 循環演算にもとづく暗号文の復号化方法および装置

Publications (2)

Publication Number Publication Date
JPH09292836A true JPH09292836A (ja) 1997-11-11
JP3024549B2 JP3024549B2 (ja) 2000-03-21

Family

ID=14436243

Family Applications (1)

Application Number Title Priority Date Filing Date
JP8106541A Expired - Lifetime JP3024549B2 (ja) 1996-04-26 1996-04-26 循環演算にもとづく暗号文の復号化方法および装置

Country Status (1)

Country Link
JP (1) JP3024549B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003501698A (ja) * 1999-06-09 2003-01-14 マイクロソフト コーポレイション 基本的なレジスタ演算を用いたパラメータの生成

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003501698A (ja) * 1999-06-09 2003-01-14 マイクロソフト コーポレイション 基本的なレジスタ演算を用いたパラメータの生成

Also Published As

Publication number Publication date
JP3024549B2 (ja) 2000-03-21

Similar Documents

Publication Publication Date Title
US7224795B2 (en) Variable-length key cryptosystem
US6891950B1 (en) Extended key generator, encryption/decryption unit, extended key generation method, and storage medium
US7079651B2 (en) Cryptographic method and apparatus for non-linearly merging a data block and a key
JP2008293034A (ja) タイミング攻撃を阻止する標準化されたモジュラべき乗を計算することにより復号メカニズムを実行する方法と装置
KR20060134992A (ko) 정수를 가산하는 컴퓨터 시스템
Afarin et al. Image encryption using genetic algorithm
CN113098675A (zh) 基于多项式完全同态的二进制数据加密系统及方法
KR100583495B1 (ko) 암호화 방법
JP2000010479A (ja) モンゴメリ・リダクション装置及び記録媒体
JP2950485B2 (ja) ストリーム暗号処理装置
CN112737778A (zh) 数字签名生成、验证方法及装置、电子设备及存储介质
JP3024549B2 (ja) 循環演算にもとづく暗号文の復号化方法および装置
JP2725610B2 (ja) 秘密鍵暗号方法及び装置
RU2188513C2 (ru) Способ криптографического преобразования l-битовых входных блоков цифровых данных в l-битовые выходные блоки
JP3013774B2 (ja) 循環演算にもとづく暗号化装置
JP3389210B2 (ja) 拡大鍵生成装置、暗復号装置、拡大鍵生成方法、及び記憶媒体
Kocherov et al. Modeling of parallel data encryption algorithms
CN112910626A (zh) 一种基于幂次运算的数据加密及解密方法
US7142673B1 (en) Method for the cryptographic conversion of L-bit input blocks of digital data into L-bit output blocks
JP5208717B2 (ja) 整数の暗号化及び復号化方法
KR20090004625A (ko) 공개 키 암호화 연산의 순서 변경 방법
CN117353929A (zh) 点乘运算装置、数字签名装置以及片上系统
JP2008141385A (ja) 暗号方法、暗号装置および暗号プログラム
JP3006490B2 (ja) 多重剰余暗号の暗号鍵生成方法および装置
JPH09311627A (ja) 循環演算にもとづく暗号の暗号鍵生成方法及び装置