[go: up one dir, main page]

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

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

Info

Publication number
JP2018142013A
JP2018142013A JP2018090042A JP2018090042A JP2018142013A JP 2018142013 A JP2018142013 A JP 2018142013A JP 2018090042 A JP2018090042 A JP 2018090042A JP 2018090042 A JP2018090042 A JP 2018090042A JP 2018142013 A JP2018142013 A JP 2018142013A
Authority
JP
Japan
Prior art keywords
encryption
computer
key
public key
mod
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
JP2018090042A
Other languages
English (en)
Other versions
JP6697506B2 (ja
Inventor
ヤング,マーセル・エム・エム
M M Yung Marcel
パテール,サーバー
Patel Sarvar
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/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/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
    • 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)

Abstract

【課題】関連付けられた秘密鍵部分を用いた高速公開鍵暗号化のための方法、コンピュータ読取可能な媒体及びコンピュータ装置を提供する。【解決手段】平文を暗号文に暗号化するステップと、暗号文を格納するステップを備える。暗号化するステップは、公開鍵と、対応する秘密鍵とを使用する。公開鍵は、合成数nを備え、秘密鍵は、素数pおよびqを用いて生成され、n=p×qである。対応する秘密鍵を使用する暗号化するステップは、g1およびg2を使用するステップと、GN1およびGN2を使用するステップを備える。g1は、pに関連付けられる巡回群の生成元であり、g2は、qに関連付けられる巡回群の生成元である。GN1は、g1に基づく定数であり、GN2は、g2に基づく定数である。平文を暗号化するステップは、s1およびs2を使用するステップをさらに備える。s1は、pに基づく乱数であり、s2は、qに基づく乱数である。【選択図】なし

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 (20)

  1. コンピュータによって実行される方法であって、
    平文を暗号文に暗号化するステップを備え、前記暗号化するステップは、公開鍵と、対応する秘密鍵とを使用し、前記方法はさらに、
    前記暗号文を格納するステップを備える、方法。
  2. 前記公開鍵は、合成数nを備え、前記秘密鍵は、素数pおよびqを用いて生成され、n=p×qである、請求項1に記載の方法。
  3. 前記対応する秘密鍵を使用する前記暗号化するステップは、g1およびg2を使用するステップを備え、前記g1は、前記pに関連付けられる巡回群の生成元であり、前記g2は、前記qに関連付けられる巡回群の生成元である、請求項2に記載の方法。
  4. 前記対応する秘密鍵を使用する前記暗号化するステップは、GN1およびGN2を使用するステップをさらに備え、前記GN1は、前記g1に基づく定数であり、前記GN2は、前記g2に基づく定数である、請求項3に記載の方法。
  5. 前記平文を前記暗号化するステップは、s1およびs2を使用するステップをさらに備え、前記s1は、前記pに基づく乱数であり、前記s2は、前記qに基づく乱数である、請求項2に記載の方法。
  6. デジタル署名照合のためのコンピュータによって実行される方法であって、
    秘密鍵を用いてデジタル署名されるメッセージに基づいて照合結果を生成するステップを備え、前記生成するステップは、前記秘密鍵と、対応する公開鍵とを使用し、前記方法はさらに、
    前記照合結果を格納するステップを備える、方法。
  7. 前記公開鍵は、合成数Nを備え、前記秘密鍵は、素数pおよびqを用いて生成され、N=p×qである、請求項7に記載の方法。
  8. コンピュータによって実行可能な命令を格納した非一時的なコンピュータ読取可能な媒体であって、前記命令は、
    平文を暗号文に暗号化するためのものであり、前記暗号化は、公開鍵と、対応する秘密鍵とを使用し、前記命令はさらに、
    前記暗号文を格納するためのものである、コンピュータ読取可能な媒体。
  9. 前記公開鍵は、合成数nを備え、前記秘密鍵は、素数pおよびqを用いて生成され、n=p×qである、請求項9に記載のコンピュータ読取可能な媒体。
  10. 前記対応する秘密鍵を使用する前記暗号化は、g1およびg2を使用することを備え、前記g1は、前記pに関連付けられる巡回群の生成元であり、前記g2は、前記qに関連付けられる巡回群の生成元である、請求項10に記載のコンピュータ読取可能な媒体。
  11. 前記対応する秘密鍵を使用する前記暗号化は、GN1およびGN2を使用することをさらに備え、前記GN1は、前記g1に基づく定数であり、前記GN2は、前記g2に基づく定数である、請求項11に記載のコンピュータ読取可能な媒体。
  12. 前記平文の前記暗号化は、s1およびs2を使用することをさらに備え、前記s1は、前記pに基づく乱数であり、前記s2は、前記qに基づく乱数である、請求項10に記載のコンピュータ読取可能な媒体。
  13. 記憶装置とプロセッサとを備える少なくとも1つのコンピュータ装置であって、前記プロセッサは、
    平文を暗号文に暗号化することを実行するように構成されており、前記暗号化は、公開鍵と、対応する秘密鍵とを使用し、前記プロセッサはさらに、
    前記暗号文を格納することを実行するように構成されている、少なくとも1つのコンピュータ装置。
  14. 前記公開鍵は、合成数nを備え、前記秘密鍵は、素数pおよびqを用いて生成され、n=p×qである、請求項15に記載の少なくとも1つのコンピュータ装置。
  15. 前記対応する秘密鍵を使用する前記暗号化は、g1およびg2を使用することを備え、前記g1は、前記pに関連付けられる巡回群の生成元であり、前記g2は、前記qに関連付けられる巡回群の生成元である、請求項16に記載の少なくとも1つのコンピュータ装置。
  16. 前記対応する秘密鍵を使用する前記暗号化は、GN1およびGN2を使用することをさらに備え、前記GN1は、前記g1に基づく定数であり、前記GN2は、前記g2に基づく定数である、請求項17に記載の少なくとも1つのコンピュータ装置。
  17. 前記平文の前記暗号化は、s1およびs2を使用することをさらに備え、前記s1は、前記pに基づく乱数であり、前記s2は、前記qに基づく乱数である、請求項16に記載の少なくとも1つのコンピュータ装置。
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 true JP2018142013A (ja) 2018-09-13
JP6697506B2 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 (14)

* 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
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
US10425417B2 (en) 2017-03-08 2019-09-24 Bank Of America Corporation Certificate system for verifying authorized and unauthorized secure sessions
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
US12099997B1 (en) 2020-01-31 2024-09-24 Steven Mark Hoffberg Tokenized fungible liabilities
JP7632486B2 (ja) * 2021-01-14 2025-02-19 日本電信電話株式会社 暗号化装置、暗号通信システム、暗号化方法およびプログラム
CN115001741B (zh) * 2022-04-22 2024-02-23 山东云海国创云计算装备产业创新中心有限公司 一种数据加密方法及相关组件
CN115951861A (zh) * 2023-01-03 2023-04-11 上海致居信息科技有限公司 一种msm在多gpu下的优化方法及装置
CN117041275B (zh) * 2023-08-09 2024-09-17 云海链控股股份有限公司 一种数据托管方法、系统、电子设备及存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004246350A (ja) * 2003-01-24 2004-09-02 Sharp Corp 暗号化装置および復号化装置、並びにこれらを備えた暗号システム、暗号化方法および復号化方法
US20050002532A1 (en) * 2002-01-30 2005-01-06 Yongxin Zhou System and method of hiding cryptographic private keys
JP2005165290A (ja) * 2003-11-12 2005-06-23 Matsushita Electric Ind Co Ltd Rsa公開鍵生成装置、rsa復号装置及びrsa署名装置
JP2008532389A (ja) * 2005-02-25 2008-08-14 クゥアルコム・インコーポレイテッド 認証のための小型の公開鍵を用いたデジタル署名
WO2009008069A1 (ja) * 2007-07-11 2009-01-15 Kabushiki Kaisha Toshiba グループ署名システム、装置及びプログラム
JP2009296489A (ja) * 2008-06-09 2009-12-17 Nec Corp 情報処理装置、暗号化通信システム、暗号化通信方法及びプログラム

Family Cites Families (13)

* 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
CA2256179C (en) * 1997-12-17 2002-05-07 Shigenori Uchiyama Encryption and decryption devices for public-key cryptosystems and recording medium with their processing programs recorded thereon
AU2557399A (en) * 1998-01-02 1999-07-26 Cryptography Research, Inc. Leak-resistant cryptographic method and apparatus
WO2000022774A1 (en) 1998-10-14 2000-04-20 Ultra Information Systems Llc System and method of authenticating a key and transmitting secure data
AU4250100A (en) 1999-04-22 2000-11-10 Veridicom, Inc. High security biometric authentication using a public key/private key encryptionpairs
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 조휘갑 알에스에이 공개키 암호 고속화 장치 및 방법
US7630493B2 (en) 2005-01-18 2009-12-08 Tricipher, Inc. Multiple factor private portion of an asymmetric key
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 情報セキュリティ装置
JP4820342B2 (ja) * 2007-08-09 2011-11-24 日本電信電話株式会社 ユーザ認証方法、ユーザ認証装置、プログラム及び記録媒体
CN103457725B (zh) * 2013-07-02 2017-02-08 河海大学 一种多授权中心的加密方法
CN103490883B (zh) * 2013-09-17 2016-10-05 华南理工大学 一种多变量公钥加密/解密系统及加密/解密方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050002532A1 (en) * 2002-01-30 2005-01-06 Yongxin Zhou System and method of hiding cryptographic private keys
JP2004246350A (ja) * 2003-01-24 2004-09-02 Sharp Corp 暗号化装置および復号化装置、並びにこれらを備えた暗号システム、暗号化方法および復号化方法
JP2005165290A (ja) * 2003-11-12 2005-06-23 Matsushita Electric Ind Co Ltd Rsa公開鍵生成装置、rsa復号装置及びrsa署名装置
JP2008532389A (ja) * 2005-02-25 2008-08-14 クゥアルコム・インコーポレイテッド 認証のための小型の公開鍵を用いたデジタル署名
WO2009008069A1 (ja) * 2007-07-11 2009-01-15 Kabushiki Kaisha Toshiba グループ署名システム、装置及びプログラム
JP2009296489A (ja) * 2008-06-09 2009-12-17 Nec Corp 情報処理装置、暗号化通信システム、暗号化通信方法及びプログラム

Also Published As

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

Similar Documents

Publication Publication Date Title
JP6697506B2 (ja) 関連付けられた秘密鍵部分を用いた高速公開鍵暗号化のためのシステムおよび方法
KR102251697B1 (ko) 암호화 장치, 암호화 방법 및 컴퓨터 판독가능 기록매체
US20180212751A1 (en) End-To-End Secure Operations Using a Query Matrix
CN107196926B (zh) 一种云外包隐私集合比较方法与装置
US20180212753A1 (en) End-To-End Secure Operations Using a Query Vector
US9703979B1 (en) Methods and computer program products for encryption key generation and management
JP2016158189A (ja) 鍵付替え方向制御システムおよび鍵付替え方向制御方法
CN107294697A (zh) 基于明文相似矩阵的对称全同态加密方法
JP2018534629A (ja) ブールゲートのないマルチパーティ計算を用いて鍵付きハッシュメッセージ認証コード(hmac)を実行する方法
Natanael et al. Text encryption in android chat applications using elliptical curve cryptography (ECC)
EP3291482A1 (en) Encrypting and decrypting data on an electronic device
JP2021086158A (ja) 格子ベースの暗号鍵生成方法及び電子署名方法
CN114362912A (zh) 基于分布式密钥中心的标识密码生成方法、电子设备及介质
CN112398646B (zh) 理想格上具有短公共参数的身份基加密方法及系统
CN115883212B (zh) 信息处理方法、装置、电子设备和存储介质
CN115361109A (zh) 一种支持双向代理重加密的同态加密方法
US12143491B2 (en) Secured performance of an elliptic curve cryptographic process
CN111953480A (zh) 密钥生成装置以及方法、运算密钥生成装置以及方法
Khari et al. Secure data transference architecture for cloud computing using cryptography algorithms
US11743039B2 (en) System and method for data encryption using key derivation
JP7622969B1 (ja) 情報処理方法、情報処理プログラム、および情報処理システム
Naji et al. Data (Video) Encryption in Mobile Devices
Bilakanti et al. Secure computation over cloud using fully homomorphic encryption
CN120528585A (zh) 通信系统、通信方法及装置
CN116340999A (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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250