JP6697506B2 - 関連付けられた秘密鍵部分を用いた高速公開鍵暗号化のためのシステムおよび方法 - Google Patents

関連付けられた秘密鍵部分を用いた高速公開鍵暗号化のためのシステムおよび方法 Download PDF

Info

Publication number
JP6697506B2
JP6697506B2 JP2018090042A JP2018090042A JP6697506B2 JP 6697506 B2 JP6697506 B2 JP 6697506B2 JP 2018090042 A JP2018090042 A JP 2018090042A JP 2018090042 A JP2018090042 A JP 2018090042A JP 6697506 B2 JP6697506 B2 JP 6697506B2
Authority
JP
Japan
Prior art keywords
mod
generating
encryption
calculating
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.)
Active
Application number
JP2018090042A
Other languages
English (en)
Other versions
JP2018142013A (ja
Inventor
ヤング,マーセル・エム・エム
パテール,サーバー
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google LLC
Original Assignee
Google LLC
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 Google LLC filed Critical Google LLC
Publication of JP2018142013A publication Critical patent/JP2018142013A/ja
Application granted granted Critical
Publication of JP6697506B2 publication Critical patent/JP6697506B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3006Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
    • H04L9/302Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters involving the integer factorization problem, e.g. RSA or quadratic sieve [QS] schemes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry
    • H04L2209/125Parallelization or pipelining, e.g. for accelerating processing of cryptographic operations

Landscapes

  • Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

分野
本明細書に記載されている主題は、一般にデータ処理に関し、より特定的には、関連付けられた秘密鍵部分を用いた高速公開鍵暗号化のためのシステムおよび方法に関する。
関連背景
公開鍵暗号化または非対称暗号化では、暗号システムは、3つのアルゴリズムで構成されており、すなわち、所有者によって維持される秘密鍵および所有者によって公衆に公開される公開鍵を生成する鍵生成のための1つのアルゴリズム、公開された公開鍵にアクセスできる誰もが公開鍵を用いて暗号化を行うことができるようにする暗号化のための1つのアルゴリズム、および、秘密鍵または「トラップドア」情報を有する所有者が、公開鍵を用いて暗号化された秘密鍵データにより復号化を行うことができるようにする復号化のための1つのアルゴリズムである。
例えばRSA(リベスト・シャミア・エーデルマン)アルゴリズムでは、秘密鍵も公開鍵も2つの素数を用いて生成される。所有者は、2つの素数を知っており、当該素数を用いて復号化を行うことができる。「公衆」(すなわち、2つの素数の合成体の少なくとも何らかの形態に基づいて公開鍵を提供されるもの)は、公開鍵を用いて暗号化を行うことができる。公衆は、事実上、当該合成体を因数分解することはできず、復号化を行うことはできない。
特定のシナリオでは、暗号化を行うパーティは、秘密鍵の所有者でもある。例えば、所有者は、データを暗号化してパブリックネットワークを通じて送信したい、および/または、第三者ストレージ(例えば、クラウドストレージ)に格納したい場合がある。暗号化されたデータは、後に抽出されて、所有者によって復号化され得る。
概要
主題は、関連付けられた秘密鍵部分を用いた高速公開鍵暗号化のための方法を含み、当該方法は、平文を暗号文に暗号化するステップを含み、暗号化するステップは、公開鍵と、対応する秘密鍵とを使用し、当該方法はさらに、暗号文を格納するステップを含む。
当該方法は、1つ以上のコンピュータ装置および/またはシステムを用いて実現される。当該方法は、コンピュータ読取可能な媒体に格納されてもよい。
高速暗号化実現例のハイレベル図を示す。 高速暗号化実現例を配備することができる例示的な環境を示す。 プロセス実現例の一例を示す。 いくつかの例示的な実現例に適した例示的な環境を示す。 いくつかの例示的な実現例での使用に適した例示的なコンピュータ装置を有する例示的なコンピュータ環境を示す。
詳細な説明
本明細書に記載されている主題は、例示的な実現例によって教示される。明確にするため、および主題を曖昧にすることを回避するために、さまざまな詳細は省略されている。以下に示される例は、関連付けられた秘密鍵部分を用いた高速公開鍵暗号化のためのシステムおよび方法を実現するための構造および機能に向けられる。
図1は、高速暗号化実現例のハイレベル図を示す。例示的な高速暗号化100は、公開鍵102の少なくとも一部と、対応する秘密鍵104(復号鍵と呼ぶことができる)の少なくとも一部とを用いて、データまたはメッセージMを暗号化して暗号文Cを生成するように実現される。高速暗号化100は、公開鍵102の少なくとも一部を用いて暗号化を行うために1つ以上のアルゴリズムを実行するソフトウェアモジュール、プロセス、ソフトウェアアプリケーション、ハードウェア回路、物理的装置、またはこれらの任意の組み合わせであってもよい。
高速暗号化100は、公開鍵などと秘密鍵などとを使用する任意の暗号システムにおいて、暗号化、認証、デジタル署名などのために実現され得る。本明細書に記載されている技術を用いて高速化可能な例示的なアルゴリズムは、トランスポート層セキュリティ(Transport Layer Security:TLS)、プリティ・グッド・プライバシ(Pretty Good Privacy:PGP)、リベスト・シャミア・エーデルマン(Rivest, Shamir and Adleman:R
SA)、準同型暗号(例えば、Paillier暗号)などを含むが、これらに限定されるものではない。アルゴリズムは、(例えば、ディフィー・ヘルマン鍵交換などを用いた)鍵配布または秘密鍵配布を含み得る。
以下の図2に記載されているように、暗号文Cは、公開鍵102のみを用いてデータを暗号化する従来の暗号化アルゴリズムを用いて暗号化された別の暗号文C2と同等であり得る。言い換えれば、同一の復号エンジンが暗号文Cおよび暗号文C2を復号化することができ、高速暗号化アルゴリズム100を用いてCが暗号化されるか、従来の暗号化アルゴリズムを用いてCが暗号化されるかを区別することはできない。
図2は、高速暗号化実現例を配備することができる例示的な環境を示す。パーティA200(例えば、所有者)は、鍵生成210を用いて公開鍵102と秘密鍵104(または、復号鍵104)とを生成する。鍵生成120は、鍵を生成するために1つ以上のアルゴリズムを実行するソフトウェアモジュール、プロセス、ソフトウェアアプリケーション、ハードウェア回路、物理的装置、またはこれらの任意の組み合わせであってもよい。公開鍵102は、暗号化されたメッセージを所有者200に送りたい任意のパーティ(例えば、パーティB250)に提供され得る。所有者200は、秘密鍵104を用いて、公開鍵102により暗号化されたメッセージを復号する。また、所有者200は、1つ以上の高速暗号化または高速認証アルゴリズムにおいて秘密鍵104または秘密鍵104の少なくとも一部を用いる。
復号化を行う所有者またはパーティのみが、pおよびqを知っているまたは知っているべきである。pおよびqが分かっていると、秘密鍵を容易に生成することができる。対応する秘密鍵(例えば、公開鍵102を用いて暗号化された暗号文を復号化するための秘密鍵104)を生成するために、鍵生成210は、λ=lcm(p−1,q−1)を計算し、lcmは最小公倍数である。また、鍵生成210は、μ=(L(gλ mod n))−1 mod nを計算し、L(μ)=(μ−1)/nである。秘密(復号)鍵は、(λ,μ)である。本明細書に記載されている例における復号化式は、m=L(cλ mod n)μ mod nである。
秘密鍵(例えば、λおよびμ)を生成する別の例示的な方法は、pおよびqが同等の長さを有する場合、λ=Φ(n)=(p−1)(q−1)、μ=Φ(n)−1 mod nおよびg=n+1を計算することによるものである。
例えば、pおよびqは、512ビットの長さの数であってもよく、結果として生じるnは、1024ビットの長さの合成数であってもよい。pおよびqが1024ビットの長さの素数であれば、その結果として、nは2048ビットの長さであってもよい(この合成体は「RSA数」と呼ばれる)。
復号化を行う所有者またはパーティのみがpおよびqを知っているまたは知っているべきであるので、所有者(例えば、所有者のコンピュータ装置またはシステム)のみがpおよび/またはqを用いて暗号化を行うことができる。高速暗号化100は、例えば、秘密鍵104または秘密鍵の構成要素(例えば、pおよびq)を用いて暗号化を加速させるように実現される。
図1に示されるように、高速暗号化100は、公開鍵102と対応する秘密鍵104(
またはその一部)とを両方とも用いてデータ(例えば、メッセージM1)を暗号化して、暗号文(例えば、暗号文C1)を生成する。
EQ1暗号化式は、c=(g)(r) mod nである。gとしてn+1が使用されると、暗号化式は、c=((n+1))(r) mod nになり、これは、(n+1) mod nの2項展開により、c=(1+nm)(r) mod n(EQ2として参照され得る)に変化させることができる。EQ2では、1つのべき乗(すなわち、g)が除去されており、計算時間を短縮することができる。EQ2は、残りのべき乗(すなわち、r)を1つだけ有している。
pおよびqを使用することによって、残りのべき乗を除去することができ、またはその計算時間を短縮することができる。基数が固定されて指数が変化する場合に、事前計算は高速になるであろう。pおよびqを用いて暗号化を加速させる目的で(すなわち、これは、pおよびqを知っているまたはpおよびqにアクセスできる秘密鍵104の所有者によってのみ行われることができる)、固定された基数で事前計算を行うことができるようにEQ2の「(r) mod n」部分を変換するために、周知の中国剰余定理(Chinese Remainder Theorem:CRT)が使用されてもよい。
n番目の剰余を取得するために、y1およびy2はn乗に累乗される。したがって、(y1)=[(g1)s1 mod p=[(g1)s1 mod p=(g1s1 mod pであり、(y2)=[(g2)s2 mod q=[(g2)s2 mod q=(g2s2 mod qである。参考までに、g1 mod pは、GN1として参照され得て、g2 mod q=GN2である。その結果、固定ベースのGN1は、乱数s1 mod pの指数に累乗され(すなわち、GN1s1 mod p)、固定ベースのGN2は、乱数s2 mod qの指数に累乗される(すなわち、GN2s2 mod q)。
高速暗号化100は、一度値を事前計算し、pおよびqの各組み合わせについて一度だけ値を事前計算する。説明を簡単にするために、一例として小さなpおよびqの値が選択される。コンピュータ装置またはシステムによる実際の実現例では、pおよびqの値は、256ビットであってもよく、512ビットであってもよく、1024ビットであっても
よく、2048ビットであってもよく、または他のビット数の長さであってもよい。例えば、以下に示される例では、p=5であり、q=7である。上記の例示的な実現例は、以下の一連の演算に示されるようにpおよびqの値に適用される。
上記の定数値を事前計算した後、高速暗号化100は、例えば以下のアルゴリズムを用いて任意のデータまたはメッセージmを暗号文cに暗号化することができる。
EQ2は、c=(1+nm)(r) mod nであり、「(r) mod n」部分は、GN1s1 mod pおよびGN2s2 mod qに対するCRT(中国剰余定理)を用いて計算されることができる。
D=(1+nm) mod nとする。したがって、Dの計算は、基本的には、(例えば、時間および/またはリソース消費量の点で)計算コストが最も高いという観点から、1回の乗算である。
実行されたように乱数要素s1をΦ(p)から選択し、乱数要素s2をΦ(q)から選択するオペレーションは、計算コストの観点では取るに足らない。
E=GN1s1 mod pおよびF=GN2s2 mod qを計算する。計算コストは、基本的には、固定基数による2つのべき乗演算である。固定基数べき乗は、加法鎖、特にピッペンジャのべき乗アルゴリズム(Pippenger's Exponentiation Algorithm)の方法によって加速させることができる。
高速暗号化100は、CRTを用いて計算を実行し、EおよびFを組み合わせて、結果H=(r) mod nを生成する。計算コストは、いかなるべき乗演算も実行することを含んでいない。
次いで、高速暗号化100は、c=DH mod nを計算する。
例えば、図2に示されるように、高速暗号化100は、メッセージM1を暗号化して、暗号文C1を生成し得る。M1=12(すなわち、m=12)である。(p=5およびq=7に基づいて)事前計算された定数GN1およびGN2を用いて、高速暗号化100は、以下を選択および/または計算する:
D=(1+nm) mod n=(1+35×12) mod 35=421
s1=7およびs2=9(ランダムに選択される)
E=GN1s1 mod p=18 mod 25=7
F=GN2s2 mod q=19 mod 49=48
Hは、以下の2つの式を用いて計算することができる
x≡7 mod 25
x≡48 mod 49
H=832
C1=DH mod n=421×832 mod 1225=1147。
高速暗号化100がM1を暗号化してC1を作成した後、C1は、例えばパーティAまたは所有者200によって制御されるデータベース220に格納され得る。また、C1は、ネットワーク224(例えば、パブリックネットワークまたはインターネット)を介して、経路222を通って例えばパーティC226に送信され得る。パーティCは、データ格納サービスを提供する第三者(例えば、クラウドストレージサービスプロバイダ)であってもよい。いくつかの実現例では、暗号文C1は、ネットワーク224を介して送信されて、パーティAによって制御される装置またはシステム(図示せず)によって格納または処理され得る。パーティAがM1またはC1の平文データにアクセスしたい場合、パーティAは、データベース220に格納されていればデータベース220からC1を抽出してもよく、またはネットワーク224および経路228を介してパーティCからC1を抽出してもよい。C1の供給源にかかわらず、パーティAは、復号化エンジン230(または復号化230)を用いてC1を復号化することができる。
高速暗号化100とは対照的に、公開鍵102にアクセスできる(すなわち、pおよびqを知らない)パーティ(例えば、パーティB)のみが、公開鍵を用いて暗号化を行う。例えば、パーティA200は、公開鍵102をパーティB250に提供して、パーティB
は、メッセージM2を暗号文C2に暗号化してパーティAに送る。M2は、いかなる値であってもよい。パーティBの暗号化エンジン260は、EQ1c=(g)(r) mod nを用いてM2を暗号化する。例えばn=35であり、例えばg=36である。パーティBは、合成数nの因数pおよびqを知らない。暗号化エンジン260は、上記のように乱数rを選択する。例えば、r=23である。比較のために、M2=12(すなわち、m=12)である。EQ1は、C2=(g)(r) mod n=(3612)(2335) mod 1225=522になる。パーティBは、C2をパーティAに送る。なお、EQ1は、秘密鍵104(例えば、因数pおよびq)または値λおよび/もしくはμを使用しない。
パーティAの復号化エンジン230は、C1(すなわち、秘密鍵104および公開鍵102を用いて高速暗号化100によって暗号化される)およびC2(すなわち、公開鍵102だけを用いてパーティBの暗号化エンジン260によって暗号化される)を同じように復号化することができる。C1およびC2が(例えば、別々に)いつ到達するかにかかわらず、C1およびC2は、同一の復号化鍵または秘密鍵104(例えば、λ、μ)を用いて独立して復号化される。
復号化のために、復号化エンジン230は、以下の値を抽出または計算する:
p=5、q=7、n=pq=35、n=1225
g=n+1=36
λ=lcm(p−1,q−1)=12
μ=(L(gλ mod n))−1 mod n、ここで、L(u)=(u−1)/nである
u=gλ mod n=3612 mod 35=421
L(u)=(421−1)/35=12
μ=(12)−1 mod 35=3
秘密鍵(λ,μ)=(12,3)
復号化式は、m=L(cλ mod n)μ mod nである
m=L(cλ mod n)μ mod n=(k)μ mod n、ここで、k=L(cλ mod n)であり、L(u)=(u−1)/nである。
復号化エンジン230は、C1を復号化して平文M1を取得し、C2を復号化して平文M2を取得する。復号化エンジン230は、以下の値を計算して、C1(高速暗号化100によって生成されたC1=1147)を復号化する:
u=C1λ mod n=114712 mod 1225=141
k=(141−1)/35=4
M1=(k)μ mod n=(4)3 mod 35=12。
復号化エンジン230は、以下の値を計算して、C2(暗号化エンジン260によって生成されたC2=522)を復号化する:
u=C2λ mod n=52212 mod 1225=141
k=(141−1)/35=4
M2=(k)μ mod n=(4)3 mod 35=12。
C1が高速暗号化アルゴリズムを用いて暗号化され、C2が従来の暗号化アルゴリズムを用いて暗号化されることにかかわらず、同一の復号化エンジン230が暗号文C1およびC2を復号化することができる。
図3は、プロセス実現例の一例を示す。プロセス300は、例えばブロック310を含み、ブロック310において、高速暗号化100は、合成数n=p×q(例えば、公開鍵
102)を用いてデータ(例えば、M1)を暗号文(例えば、C1)に暗号化し、pおよびqは、素数であってもよい。暗号化オペレーションを加速させるために、高速暗号化100は、秘密鍵104の構成要素であるpおよびqも個々に使用した。例えば、g1およびGN1は、pを用いてまたはpに基づいて計算され、g2およびGN2は、qを用いてまたはqに基づいて計算される。ブロック320において、暗号化されたデータ(例えば、C1)は、(例えば、データベース220に)格納されてもよく、または別の場所もしくはパーティ(例えば、パーティC)に送られてもよい。
いくつかの例では、プロセス300は、異なるブロックにより実現されてもよく、より少ない数のブロックにより実現されてもよく、またはより多い数のブロックにより実現されてもよい。プロセス300は、コンピュータによって実行可能な命令として実現されてもよく、当該命令は、媒体に格納され、1つ以上のコンピュータ装置の1つ以上のプロセッサにロードされ、コンピュータによって実行される方法として実行されてもよい。
公開鍵オペレーションにおいて秘密鍵を使用する別の例は、署名照合(例えば、デジタル署名を用いて署名されたメッセージまたはデータの真正性を確認すること)である。例えば、RSA署名鍵を作成するために、整数eおよびdとともに、2つの大きな素数(例えば、pおよびq)の積である係数Nを含むRSA鍵ペアを生成し、(e)(d)≡1(mod Φ(N))であり、Φはオイラーのファイ関数である。署名者の公開鍵は、Nおよびeで構成され、署名者の秘密鍵は、dを含む。
メッセージmを署名するために、署名者は、σ≡m(mod N)を計算する。デジタル署名されたメッセージσを照合するために、受信者は、σ≡m(mod N)を確認する。素因数pおよびq(すなわち、秘密鍵)を保持するパーティは、RSA署名照合を実行することができ、RSA署名照合は、σをe乗に累乗する代わりに、CRTを用いて演算mod pおよびmod qを実行して、上記のEQ2の「(r) mod n」部分の変換と同様のe乗 mod Nへのメッセージの計算を加速させる。
同一のオペレーションは、因数(秘密鍵)を知っているパーティによるRSA暗号化のさらに別の例にも適用可能である。例えば、秘密鍵を用いてデジタル署名されたデータまたはメッセージを照合するために、当該メッセージに基づく照合結果が、(例えば、秘密鍵を知っているパーティによって)秘密鍵および対応する公開鍵の少なくとも一部を用いて生成されてもよい。照合結果は、例えば「照合済」である場合もあれば「却下」である場合もある。結果は、例えばログまたはデータベースに格納されてもよい。
図4は、いくつかの例示的な実現例に適した例示的な環境を示す。環境400は、装置405〜445を含み、各々は、例えばネットワーク460を介して(例えば、有線および/または無線接続によって)少なくとも1つの他の装置に通信可能に接続されている。いくつかの装置は、1つ以上の記憶装置430および445に通信可能に接続されてもよ
い。
1つ以上の装置405〜445の一例は、図5における後述のコンピュータ装置505であってもよい。装置405〜445は、コンピュータ405(例えば、ラップトップコンピュータ装置)、モバイル機器410(例えば、スマートフォンまたはタブレット)、テレビ415、車両420に関連付けられる装置、サーバコンピュータ425、コンピュータ装置435〜440、記憶装置430および445を含み得るが、これらに限定されるものではない。
いくつかの実現例では、装置405〜420は、ユーザ装置(例えば、クラウドストレージサービスプロバイダに格納されたデータなどのデータにアクセスするためにユーザによって使用される装置)であると考えられてもよい。装置425〜445は、(例えば、サービスを提供するため、ならびに/または、暗号化されたウェブページ、テキスト、テキスト部分、画像、画像部分、音声、音声セグメント、映像、映像セグメント、および/もしくはそれらについての情報を格納するなどデータを格納するために、サービスプロバイダによって使用される)サービスプロバイダに関連付けられる装置であってもよい。
例えば、ユーザ(例えば、アリス)は、1つ以上の装置425〜445によってサポートされるストレージプロバイダに暗号化されたデータを送るために装置405または410を使用してもよい。アリスは、秘密鍵を用いて当該データを暗号化することができ、計算時間および/またはリソースを節約する。暗号化されたデータは、ストレージプロバイダによって復号化されることはできない。アリスは、データにアクセスしたいときには、(例えば、暗号化された形態の)データをストレージプロバイダから抽出して、アリスの装置405または410上で当該データを復号化する。
図5は、いくつかの例示的な実現例での使用に適した例示的なコンピュータ装置を有する例示的なコンピュータ環境を示す。コンピュータ環境500におけるコンピュータ装置505は、1つ以上の処理ユニット、コアもしくはプロセッサ510、メモリ515(例えば、RAM、ROMなど)、内部ストレージ520(例えば、磁気ストレージ、光学式ストレージ、ソリッドステートストレージおよび/もしくはオーガニックストレージ)、ならびに/または、I/Oインターフェース525を含み得て、それらはいずれも、情報を通信するための通信機構またはバス530上で結合されてもよく、またはコンピュータ装置505に組み込まれてもよい。
コンピュータ装置505は、入力/ユーザインターフェース535および出力装置/インターフェース540に通信可能に結合されることができる。入力/ユーザインターフェース535および出力装置/インターフェース540のどちらか一方または両方は、有線または無線インターフェースであってもよく、着脱可能であってもよい。入力/ユーザインターフェース535は、入力を提供するために使用可能な、物理的なまたはバーチャルな任意の装置、構成要素、センサまたはインターフェース(例えば、ボタン、タッチスクリーンインターフェース、キーボード、ポインティング/カーソル制御装置、マイクロホン、カメラ、点字、モーションセンサ、光学式読取装置など)を含み得る。出力装置/インターフェース540は、ディスプレイ、テレビ、モニタ、プリンタ、スピーカ、点字などを含み得る。いくつかの例示的な実現例では、入力/ユーザインターフェース535および出力装置/インターフェース540は、コンピュータ装置505に組み込まれてもよく、またはコンピュータ装置505に物理的に結合されてもよい。他の例示的な実現例では、他のコンピュータ装置が、入力/ユーザインターフェース535および出力装置/インターフェース540として機能してもよく、または、入力/ユーザインターフェース535および出力装置/インターフェース540の機能をコンピュータ装置505に提供してもよい。
コンピュータ装置505の例としては、高モバイル機器(例えば、スマートフォン、車両および他のマシン内の装置、人間および動物によって携帯される装置など)、モバイル機器(例えば、タブレット、ノート型パソコン、ラップトップ、パーソナルコンピュータ、携帯型テレビ、ラジオなど)、および、移動させることを考えて設計されていない装置(例えば、デスクトップコンピュータ、他のコンピュータ、情報キオスク、1つ以上のプロセッサを組み込んだおよび/または結合させたテレビ、ラジオなど)を挙げることができるが、これらに限定されるものではない。
コンピュータ装置505は、外部ストレージ545と、同一または異なる構成の1つ以上のコンピュータ装置を含むさまざまなネットワーク化された構成要素、装置およびシステムと通信するためのネットワーク550とに(例えば、I/Oインターフェース525を介して)通信可能に結合されることができる。コンピュータ装置505または任意の接続されたコンピュータ装置は、サーバ、クライアント、シンサーバ、汎用マシン、特殊用途マシン、もしくは別のラベルとして機能するものであってもよく、サーバ、クライアント、シンサーバ、汎用マシン、特殊用途マシン、もしくは別のラベルのサービスを提供するものであってもよく、または、サーバ、クライアント、シンサーバ、汎用マシン、特殊用途マシン、もしくは別のラベルと呼ばれてもよい。
I/Oインターフェース525は、コンピュータ環境500における少なくとも全ての接続された構成要素、装置およびネットワークに、および/または、コンピュータ環境500における少なくとも全ての接続された構成要素、装置およびネットワークから情報を通信するための任意の通信またはI/Oプロトコルまたは規格(例えば、イーサネット(登録商標)、802.11x、ユニバーサルシステムバス、ワイマックス、モデム、セルラーネットワークプロトコルなど)を使用する有線および/または無線インターフェースを含み得るが、これらに限定されるものではない。ネットワーク550は、任意のネットワークまたはネットワークの組み合わせ(例えば、インターネット、ローカルエリアネットワーク、広域ネットワーク、電話ネットワーク、セルラーネットワーク、衛星ネットワークなど)であってもよい。
コンピュータ装置505は、一時的な媒体および非一時的な媒体を含むコンピュータによって使用可能なまたはコンピュータ読取可能な媒体を使用することができ、および/または、コンピュータによって使用可能なまたはコンピュータ読取可能な媒体を使用して通信することができる。一時的な媒体は、伝送媒体(例えば、金属ケーブル、光ファイバ)、信号、搬送波などを含む。非一時的な媒体は、磁気媒体(例えば、ディスクおよびテープ)、光媒体(例えば、CD ROM、デジタルビデオディスク、ブルーレイ(登録商標)ディスク)、ソリッドステート媒体(例えば、RAM、ROM、フラッシュメモリ、ソリッドステートストレージ)、および他の不揮発性記憶装置またはメモリを含む。
コンピュータ装置505は、いくつかの例示的なコンピュータ環境において技術、方法、アプリケーション、プロセス、またはコンピュータによって実行可能な命令を実行するために使用されることができる。コンピュータによって実行可能な命令は、一時的な媒体から抽出されてもよく、非一時的な媒体に格納されて非一時的な媒体から抽出されてもよい。実行可能な命令は、任意のプログラミング言語、スクリプト言語およびマシン言語(例えば、C、C++、C♯、Java(登録商標)、ビジュアルベーシック、パイソン、パール、JavaScript(登録商標)など)のうちの1つ以上から生成されてもよい。
プロセッサ510は、ネイティブなまたはバーチャルな環境ではいかなるオペレーティングシステム(operating system:OS)(図示せず)下でも動作することができる。1
つ以上のアプリケーションを配備することができ、当該1つ以上のアプリケーションは、論理ユニット560と、アプリケーションプログラミングインターフェース(application programming interface:API)ユニット565と、入力ユニット570と、出力ユ
ニット575と、事前計算エンジン580と、乱数発生器585と、暗号化エンジン590と、さまざまなユニットが互いに、OSと、および他のアプリケーション(図示せず)と通信するようにするためのユニット間通信機構595とを含む。例えば、事前計算エンジン580、乱数発生器585および暗号化エンジン590は、図1〜図4に示され記載されている1つ以上のプロセスを実行することができる。記載されているユニットおよび要素は、設計、機能、構成またはインプリメンテーションの点で変更可能であり、記載されている説明に限定されるものではない。
いくつかの例示的な実現例では、情報または実行命令は、APIユニット565によって受取られると、1つ以上の他のユニット(例えば、論理ユニット560、入力ユニット570、出力ユニット575、事前計算エンジン580、乱数発生器585および暗号化エンジン590)に通信されることができる。例えば、入力ユニット570がメッセージMを検出した後、入力ユニット570は、APIユニット565を用いてメッセージMを事前計算エンジン580に通信してもよい。事前計算エンジン580は、暗号化オペレーションで必要な定数および/または値が確実に利用可能であることを確認する。利用可能でなければ、事前計算エンジン580は、これらの定数および/または値を生成または事前計算する。次いで、事前計算エンジン580は、暗号化エンジン590を呼び出して、Mを暗号化する。暗号化エンジン590は、必要であれば乱数発生器585を呼び出して、暗号化に使用される乱数s1およびs2を生成する。暗号化エンジン590がMを暗号文Cに暗号化した後、暗号化エンジン590は、Cを出力ユニット575に渡し、出力ユニット575は、Cを格納するため、またはネットワークでCを送信するためにi/oインターフェース525と対話することができる。
いくつかの例では、論理ユニット560は、上記のいくつかの例示的な実現例においてユニット間の情報フローを制御し、APIユニット565、入力ユニット570、出力ユニット575、事前計算エンジン580、乱数発生器585および暗号化エンジン590によって提供されるサービスを仕向けるように構成されてもよい。例えば、1つ以上のプロセスまたは実現例のフローは、論理ユニット560単独で、またはAPIユニット565とともに制御されてもよい。
いくつかの例示的な実現例を図示および説明してきたが、これらの例示的な実現例は、本明細書に記載されている主題をこの分野の当業者に伝えるために提供されている。本明細書に記載されている主題は、記載されている例示的な実現例に限定されることなく、さまざまな形態で実現されてもよいということが理解されるべきである。本明細書に記載されている主題は、それらの具体的に規定もしくは記載されている事項がなくても実施可能であり、または、記載されていない他のもしくは異なる要素もしくは事項とともに実施されてもよい。添付の特許請求の範囲およびそれらの等価物に規定されている本明細書に記載の主題から逸脱することなく、これらの例示的な実現例において変更を加え得ることは、この分野の当業者によって理解されるであろう。

Claims (6)

  1. プロセッサおよび記憶装置を備えるコンピュータによって実行される、デジタル署名照合のための方法であって、
    前記プロセッサが、秘密鍵を用いてデジタル署名されメッセージσに基づいて照合結果を生成するステップを含み、
    前記生成するステップは、前記秘密鍵および公開鍵を使用することを含み
    前記方法は、前記プロセッサが、前記照合結果を前記記憶装置に格納するステップをさらに含み
    前記公開鍵は整数eおよび合成数Nを含み、前記秘密鍵は素数pおよびqを含み、N=p×qであり、
    前記生成するステップは、
    前記eと、g1とに基づいて、GN1を算出することと、
    前記eと、g2とに基づいて、GN2を算出することとを含み、
    前記g1はpの巡回群の生成元であり、前記g2はqの巡回群の生成元であり、
    前記生成するステップは、
    前記pに基づいて、乱数であるs1を生成することと、
    前記qに基づいて、乱数であるs2を生成することと、
    前記s1と、前記GN1とに基づいて、Eを算出することと、
    前記s2と、前記GN2とに基づいて、Fを算出することと、
    前記Eおよび前記Fに対する中国余剰定理を用いて、(σ ) mod Nを生成することとをさらに含み、σは下記[数1]を満たし、

    前記生成するステップは、(σ ) mod Nに基づいて、照合結果を生成することをさらに含む、方法。
  2. 前記GN1、前記GN2、前記E、および前記Fは、以下の式により定義される、請求項1に記載の方法。
    GN1=g1 mod p
    GN2=g2 mod q
    E=GN1 s1 mod p
    F=GN2 s2 mod q
  3. プロセッサおよび記憶装置を備えるコンピュータにデジタル署名照合のための方法を実行させるためのプログラムであって、
    前記方法は、秘密鍵を用いてデジタル署名されメッセージσに基づいて照合結果を生成するステップを含み、
    前記生成するステップは、前記秘密鍵および公開鍵を使用することを含み
    前記方法は、前記照合結果を前記記憶装置に格納するステップをさらに含
    前記公開鍵は整数eおよび合成数Nを含み、前記秘密鍵は素数pおよびqを含み、N=p×qであり、
    前記生成するステップは、
    前記eと、g1とに基づいて、GN1を算出することと、
    前記eと、g2とに基づいて、GN2を算出することとを含み、
    前記g1はpの巡回群の生成元であり、前記g2はqの巡回群の生成元であり、
    前記生成するステップは、
    前記pに基づいて、乱数であるs1を生成することと、
    前記qに基づいて、乱数であるs2を生成することと、
    前記s1と、前記GN1とに基づいて、Eを算出することと、
    前記s2と、前記GN2とに基づいて、Fを算出することと、
    前記Eおよび前記Fに対する中国余剰定理を用いて、(σ ) mod Nを生成することとをさらに含み、σは下記[数2]を満たし、

    前記生成するステップは、(σ ) mod Nに基づいて、照合結果を生成することをさらに含む、プログラム。
  4. 前記GN1、前記GN2、前記E、および前記Fは、以下の式により定義される、請求項3に記載のプログラム。
    GN1=g1 mod p
    GN2=g2 mod q
    E=GN1 s1 mod p
    F=GN2 s2 mod q
  5. 記憶装置とプロセッサとを備える少なくとも1つのコンピュータ装置であって、
    前記プロセッサは、秘密鍵を用いてデジタル署名されメッセージσに基づいて照合結果を生成する手段を含み、
    前記生成する手段は、前記秘密鍵および公開鍵を使用し、
    前記プロセッサは、前記照合結果を前記記憶装置に格納する手段をさらに含
    前記公開鍵は整数eおよび合成数Nを含み、前記秘密鍵は素数pおよびqを含み、N=p×qであり、
    前記生成する手段は、
    前記eと、g1とに基づいて、GN1を算出し、
    前記eと、g2とに基づいて、GN2を算出し、
    前記g1はpの巡回群の生成元であり、前記g2はqの巡回群の生成元であり、
    前記生成する手段は、
    前記pに基づいて、乱数であるs1を生成し、
    前記qに基づいて、乱数であるs2を生成し、
    前記s1と、前記GN1とに基づいて、Eを算出し、
    前記s2と、前記GN2とに基づいて、Fを算出し、
    前記Eおよび前記Fに対する中国余剰定理を用いて、(σ ) mod Nを生成し、σは下記[数3]を満たし、

    前記生成する手段は、(σ ) mod Nに基づいて、照合結果を生成する、少なくとも1つのコンピュータ装置。
  6. 前記GN1、前記GN2、前記E、および前記Fは、以下の式により定義される、請求項5に記載の少なくとも1つのコンピュータ装置。
    GN1=g1 mod p
    GN2=g2 mod q
    E=GN1 s1 mod p
    F=GN2 s2 mod q
JP2018090042A 2014-01-31 2018-05-08 関連付けられた秘密鍵部分を用いた高速公開鍵暗号化のためのシステムおよび方法 Active JP6697506B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/170,436 2014-01-31
US14/170,436 US9264221B2 (en) 2014-01-31 2014-01-31 Systems and methods for faster public key encryption using the associated private key portion

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2016548618A Division JP6507171B2 (ja) 2014-01-31 2015-01-30 関連付けられた秘密鍵部分を用いた高速公開鍵暗号化のためのシステムおよび方法

Publications (2)

Publication Number Publication Date
JP2018142013A JP2018142013A (ja) 2018-09-13
JP6697506B2 true JP6697506B2 (ja) 2020-05-20

Family

ID=52544572

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2016548618A Active JP6507171B2 (ja) 2014-01-31 2015-01-30 関連付けられた秘密鍵部分を用いた高速公開鍵暗号化のためのシステムおよび方法
JP2018090042A Active JP6697506B2 (ja) 2014-01-31 2018-05-08 関連付けられた秘密鍵部分を用いた高速公開鍵暗号化のためのシステムおよび方法

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2016548618A Active JP6507171B2 (ja) 2014-01-31 2015-01-30 関連付けられた秘密鍵部分を用いた高速公開鍵暗号化のためのシステムおよび方法

Country Status (7)

Country Link
US (1) US9264221B2 (ja)
EP (1) EP3100407B1 (ja)
JP (2) JP6507171B2 (ja)
KR (1) KR101866935B1 (ja)
CN (1) CN106134128B (ja)
AU (1) AU2015210847B2 (ja)
WO (1) WO2015116918A1 (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9425961B2 (en) 2014-03-24 2016-08-23 Stmicroelectronics S.R.L. Method for performing an encryption of an AES type, and corresponding system and computer program product
EP3334083A1 (en) * 2016-12-08 2018-06-13 Gemalto SA Method of rsa signature or decryption protected using a homomorphic encryption
US10361852B2 (en) 2017-03-08 2019-07-23 Bank Of America Corporation Secure verification system
US10425417B2 (en) 2017-03-08 2019-09-24 Bank Of America Corporation Certificate system for verifying authorized and unauthorized secure sessions
US10432595B2 (en) * 2017-03-08 2019-10-01 Bank Of America Corporation Secure session creation system utililizing multiple keys
US10374808B2 (en) 2017-03-08 2019-08-06 Bank Of America Corporation Verification system for creating a secure link
CN106992859B (zh) * 2017-04-11 2020-06-19 北京奇艺世纪科技有限公司 一种堡垒机私钥管理方法及装置
CN108228138B (zh) * 2017-12-28 2021-12-10 南京航空航天大学 一种sidh中特殊域快速模乘的方法
US10778410B2 (en) 2019-06-18 2020-09-15 Alibaba Group Holding Limited Homomorphic data encryption method and apparatus for implementing privacy protection
WO2022153456A1 (ja) * 2021-01-14 2022-07-21 日本電信電話株式会社 暗号化装置、暗号通信システム、暗号化方法およびプログラム
CN115001741B (zh) * 2022-04-22 2024-02-23 山东云海国创云计算装备产业创新中心有限公司 一种数据加密方法及相关组件

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6052466A (en) 1997-08-28 2000-04-18 Telefonaktiebolaget L M Ericsson (Publ) Encryption of data packets using a sequence of private keys generated from a public key exchange
EP0924895B1 (en) * 1997-12-17 2009-07-08 Nippon Telegraph and Telephone Corporation Encryption and decryption devices for public-key cryptosystems and recording medium with their processing programs recorded thereon
ATE325478T1 (de) * 1998-01-02 2006-06-15 Cryptography Res Inc Leckresistentes kryptographisches verfahren und vorrichtung
IL136747A0 (en) 1998-10-14 2001-06-14 Aegis Systems Inc System and method of sending and receiving secure data with a shared-key
ES2245305T3 (es) 1999-04-22 2006-01-01 Veridicom, Inc. Autenticacion biometrica de alta seguridad usando pares de encriptacion clave publica/clave privada.
US20020041683A1 (en) * 2000-09-29 2002-04-11 Hopkins Dale W. Method for selecting optimal number of prime factors of a modulus for use in a cryptographic system
KR100340102B1 (ko) 2000-11-30 2002-06-10 조휘갑 알에스에이 공개키 암호 고속화 장치 및 방법
CA2369304A1 (en) * 2002-01-30 2003-07-30 Cloakware Corporation A protocol to hide cryptographic private keys
JP4563037B2 (ja) * 2003-01-24 2010-10-13 シャープ株式会社 暗号化装置および復号化装置、並びにこれらを備えた暗号システム、暗号化方法および復号化方法
JP2005165290A (ja) * 2003-11-12 2005-06-23 Matsushita Electric Ind Co Ltd Rsa公開鍵生成装置、rsa復号装置及びrsa署名装置
US7630493B2 (en) 2005-01-18 2009-12-08 Tricipher, Inc. Multiple factor private portion of an asymmetric key
JP2008532389A (ja) * 2005-02-25 2008-08-14 クゥアルコム・インコーポレイテッド 認証のための小型の公開鍵を用いたデジタル署名
US7664259B2 (en) 2006-03-09 2010-02-16 Motorola, Inc. Encryption and verification using partial public key
WO2008149496A1 (ja) * 2007-05-30 2008-12-11 Panasonic Corporation 情報セキュリティ装置
WO2009008069A1 (ja) * 2007-07-11 2009-01-15 Kabushiki Kaisha Toshiba グループ署名システム、装置及びプログラム
JP4820342B2 (ja) * 2007-08-09 2011-11-24 日本電信電話株式会社 ユーザ認証方法、ユーザ認証装置、プログラム及び記録媒体
JP2009296489A (ja) * 2008-06-09 2009-12-17 Nec Corp 情報処理装置、暗号化通信システム、暗号化通信方法及びプログラム
CN103457725B (zh) * 2013-07-02 2017-02-08 河海大学 一种多授权中心的加密方法
CN103490883B (zh) * 2013-09-17 2016-10-05 华南理工大学 一种多变量公钥加密/解密系统及加密/解密方法

Also Published As

Publication number Publication date
US20150222422A1 (en) 2015-08-06
CN106134128A (zh) 2016-11-16
JP2017506362A (ja) 2017-03-02
US9264221B2 (en) 2016-02-16
AU2015210847A1 (en) 2016-06-30
BR112016017743A2 (pt) 2018-05-15
CN106134128B (zh) 2019-09-17
AU2015210847B2 (en) 2019-01-24
EP3100407A1 (en) 2016-12-07
JP2018142013A (ja) 2018-09-13
WO2015116918A1 (en) 2015-08-06
KR20160114624A (ko) 2016-10-05
JP6507171B2 (ja) 2019-04-24
KR101866935B1 (ko) 2018-06-14
EP3100407B1 (en) 2020-11-18

Similar Documents

Publication Publication Date Title
JP6697506B2 (ja) 関連付けられた秘密鍵部分を用いた高速公開鍵暗号化のためのシステムおよび方法
EP3091690B1 (en) Rsa decryption using multiplicative secret sharing
US8429408B2 (en) Masking the output of random number generators in key generation protocols
KR102251697B1 (ko) 암호화 장치, 암호화 방법 및 컴퓨터 판독가능 기록매체
CN114586313B (zh) 用于签署一信息的系统及方法
US9876636B2 (en) Homomorphic public-key encryption scheme
US20140098960A1 (en) Ciphertext Processing Method, Apparatus, and System
Natanael et al. Text encryption in android chat applications using elliptical curve cryptography (ECC)
Sengupta et al. Message mapping and reverse mapping in elliptic curve cryptosystem
Kanna et al. Enhancing the security of user data using the keyword encryption and hybrid cryptographic algorithm in cloud
Rangasami et al. Comparative study of homomorphic encryption methods for secured data operations in cloud computing
Khatarkar et al. A survey and performance analysis of various RSA based encryption techniques
Bhattacharjya et al. Strong, efficient and reliable personal messaging peer to peer architecture based on Hybrid RSA
EP2395698B1 (en) Implicit certificate generation in the case of weak pseudo-random number generators
Mohammed et al. An improved fully homomorphic encryption model based on N-primes
Avestro et al. Hybrid Algorithm Combining Modified Diffie Hellman and RSA
Adams et al. Digital signatures for mobile users
Toradmalle et al. Implementation of provably-secure digital signature scheme based on elliptic curve
EP4024755B1 (en) Secured performance of an elliptic curve cryptographic process
Bruce et al. Cryptographic computation of private shared key based mutual authentication protocol: Simulation and modeling over wireless networks
US11743039B2 (en) System and method for data encryption using key derivation
Chandravathi et al. Performance Analysis of Homomorphic Encryption algorithms for Cloud Data Security
JP2007325318A (ja) 署名システム
Abirami et al. Comparative Analysis of Elliptic Curve Cryptography Methods and Survey of Its Applications
TW201611562A (zh) 密碼鍵產生之方法及裝置

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180606

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180606

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190516

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190702

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20191001

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20191017

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20191206

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20200207

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20200401

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200424

R150 Certificate of patent or registration of utility model

Ref document number: 6697506

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250