JP6818949B2 - 署名装置、検証装置、署名システム、署名方法、署名プログラム、検証方法及び検証プログラム - Google Patents

署名装置、検証装置、署名システム、署名方法、署名プログラム、検証方法及び検証プログラム Download PDF

Info

Publication number
JP6818949B2
JP6818949B2 JP2020540506A JP2020540506A JP6818949B2 JP 6818949 B2 JP6818949 B2 JP 6818949B2 JP 2020540506 A JP2020540506 A JP 2020540506A JP 2020540506 A JP2020540506 A JP 2020540506A JP 6818949 B2 JP6818949 B2 JP 6818949B2
Authority
JP
Japan
Prior art keywords
signature
hash value
verification
equation
message
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
JP2020540506A
Other languages
English (en)
Other versions
JPWO2020065928A1 (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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric 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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Publication of JPWO2020065928A1 publication Critical patent/JPWO2020065928A1/ja
Application granted granted Critical
Publication of JP6818949B2 publication Critical patent/JP6818949B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N10/00Quantum computing, i.e. information processing based on quantum-mechanical phenomena
    • 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/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • 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/3093Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving Lattices or polynomial equations, e.g. NTRU scheme
    • 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N10/00Quantum computing, i.e. information processing based on quantum-mechanical phenomena
    • G06N10/60Quantum algorithms, e.g. based on quantum optimisation, quantum Fourier or Hadamard transforms

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Mathematical Analysis (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Power Engineering (AREA)
  • Algebra (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Artificial Intelligence (AREA)
  • Computational Mathematics (AREA)
  • Condensed Matter Physics & Semiconductors (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Storage Device Security (AREA)

Description

この発明は、量子コンピュータを考慮したディジタル署名に関する。
ディジタル署名は、データの正当性を検証することができる暗号技術である。
ネットワークを介して通信を行う際には、受け取ったデータが本当に送信者から送られたデータであり、かつ、受け取ったデータが改ざんされていないデータであるというデータの正当性を確かめられるようにする必要がある。送信側でデータに署名を付随させ、受信側でデータに付随する署名を検証することにより、データの正当性を検証することができる。
格子暗号とは,線形独立な整数ベクトルの線形変換で表されるベクトルの集合である格子を用いて実現される暗号技術である。
ある格子についての最短ベクトル問題は、その格子に含まれる最も短いベクトルを見つける問題である。格子暗号は、最短ベクトル問題を解くことが量子コンピュータにとっても困難であることを安全性の根拠としているため、格子暗号は、量子コンピュータが実現されたとしても安全であると考えられている暗号方式の1つである。
効率的な格子暗号は、イデアル格子と呼ばれる特殊な格子の上での最短ベクトル問題を安全性の根拠としている。イデアル格子を定義する多項式である円分多項式の性質より、特定のパラメータにおいては最短ベクトル問題が量子コンピュータによって効率的に解読されることが知られている。
非特許文献1には、イデアル格子上の最短ベクトル問題を安全性の根拠とした、効率的なディジタル署名方式が示されている。しかし、非特許文献1に示された方法は、特定の円分多項式によって定義される格子上の最短ベクトル問題を安全性の根拠としているため、安全ではない可能性がある。
非特許文献2には、特定の円分多項式に依存しない格子上の最短ベクトル問題を安全性の根拠とした、効率的なディジタル署名方式が示されている。
Leo Ducas, Eike Kiltz, Tancrede Lepoint, Vadim Lyubashevsky, Peter Schwabe, Gregor Seiler, and Damien Stehle. CRYSTALS−Dilithium: A Lattice−Based Digital Signature Scheme. In CHES, pages 238−268, 2018. Vadim Lyubashevsky. Digital Signatures Based on the Hardness of Ideal Lattice Problems in all Rings. In ASIACRYPT, pages 196−214, 2016.
非特許文献2で示されているディジタル署名方式は、量子コンピュータがハッシュ関数を計算するような安全性モデルにおいては安全であることが示されていない。格子の上での最短ベクトル問題を安全性の根拠とするディジタル署名方式は、ディジタル署名を生成するためにハッシュ関数を計算している。そのため、厳密な意味での量子コンピュータに対する安全性を考慮するためには、量子コンピュータがハッシュ関数を計算するようなモデルにおいても安全性が示されていることが望ましい。
この発明は、量子コンピュータに対しても安全性が保証可能なディジタル署名方式を構成可能にすることを目的とする。
この発明に係る署名装置は、
メッセージμのハッシュ値cと秘密鍵とのMiddle−Productを計算して署名要素zを生成する署名生成部と、
前記署名生成部によって生成された前記署名要素zを含む署名σを出力する出力部と
を備える。
この発明では、メッセージμのハッシュ値cと秘密鍵とのMiddle−Productを計算して署名要素zを生成する。これにより、量子コンピュータがハッシュ関数を計算するような安全性モデルにおいて安全であることを示すことが可能なディジタル署名方式を構成可能になる。
実施の形態1に係る署名システム1の構成図。 実施の形態1に係る鍵生成装置10の構成図。 実施の形態1に係る署名装置20の構成図。 実施の形態1に係る検証装置30の構成図。 実施の形態1に係る鍵生成装置10の動作のフローチャート。 実施の形態1に係る鍵生成処理のフローチャート。 実施の形態1に係る署名装置20の動作のフローチャート。 実施の形態1に係る署名生成処理のフローチャート。 実施の形態1に係る検証装置30の動作のフローチャート。 変形例1に係る鍵生成装置10の構成図。 変形例1に係る署名装置20の構成図。 変形例1に係る検証装置30の構成図。
実施の形態1.
***構成の説明***
図1を参照して、実施の形態1に係る署名システム1の構成を説明する。
署名システム1は、鍵生成装置10と、署名装置20と、検証装置30とを備える。鍵生成装置10と、署名装置20と、検証装置30とは、インターネットといった通信路40を介して接続されている。通信路40は、インターネットに限らず、LAN(Local Area Network)といった他の種別の通信路であってもよい。
鍵生成装置10は、PC(Personal Computer)といったコンピュータである。鍵生成装置10は、暗号化に利用する公開鍵及び秘密鍵を生成し、通信路40を介して、秘密鍵を署名装置20に送信するとともに、公開鍵を検証装置30に送信する。
署名装置20は、PC(Personal Computer)といったコンピュータである。署名装置20は、コンピュータ内部に保存されている文書データ等の平文データに対して、保管している秘密鍵で署名を生成することで署名データを生成し、署名データと平文データとを検証装置30に送信する。
検証装置30は、PC(Personal Computer)といったコンピュータである。検証装置30は、署名装置20から受け取った平文データ及び署名データと、鍵生成装置10から受け取った公開鍵とを用いて、平文データについての署名データの検証結果データを生成する。
なお、同じコンピュータ内に、鍵生成装置10と署名装置20と検証装置30とのいずれか2つ以上が同時に含まれていてもよい。
図2を参照して、実施の形態1に係る鍵生成装置10の構成を説明する。
鍵生成装置10は、プロセッサ11と、メモリ12と、ストレージ13と、通信インタフェース14とのハードウェアを備える。プロセッサ11は、信号線を介して他のハードウェアと接続され、これら他のハードウェアを制御する。
鍵生成装置10は、機能構成要素として、受付部111と、鍵生成部112と、送信部113とを備える。鍵生成装置10の各機能構成要素の機能はソフトウェアにより実現される。
ストレージ13には、鍵生成装置10の各機能構成要素の機能を実現するプログラムが格納されている。このプログラムは、プロセッサ11によりメモリ12に読み込まれ、プロセッサ11によって実行される。これにより、鍵生成装置10の各機能構成要素の機能が実現される。
ストレージ13は、鍵記憶部131の機能を実現する。
図3を参照して、実施の形態1に係る署名装置20の構成を説明する。
署名装置20は、プロセッサ21と、メモリ22と、ストレージ23と、通信インタフェース24とのハードウェアを備える。プロセッサ21は、信号線を介して他のハードウェアと接続され、これら他のハードウェアを制御する。
署名装置20は、機能構成要素として、受付部211と、署名生成部212と、出力部213とを備える。署名装置20の各機能構成要素の機能はソフトウェアにより実現される。
ストレージ23には、署名装置20の各機能構成要素の機能を実現するプログラムが格納されている。このプログラムは、プロセッサ21によりメモリ22に読み込まれ、プロセッサ21によって実行される。これにより、署名装置20の各機能構成要素の機能が実現される。
ストレージ23は、鍵記憶部231の機能を実現する。
図4を参照して、実施の形態1に係る検証装置30の構成を説明する。
検証装置30は、プロセッサ31と、メモリ32と、ストレージ33と、通信インタフェース34とのハードウェアを備える。プロセッサ31は、信号線を介して他のハードウェアと接続され、これら他のハードウェアを制御する。
検証装置30は、機能構成要素として、受付部311と、検証部312とを備える。検証装置30の各機能構成要素の機能はソフトウェアにより実現される。
ストレージ33には、検証装置30の各機能構成要素の機能を実現するプログラムが格納されている。このプログラムは、プロセッサ31によりメモリ32に読み込まれ、プロセッサ31によって実行される。これにより、検証装置30の各機能構成要素の機能が実現される。
ストレージ33は、鍵記憶部331と、結果記憶部332との機能を実現する。
プロセッサ11,21,31は、演算処理を行うIC(Integrated Circuit)である。プロセッサ11,21,31は、具体例としては、CPU(Central Processing Unit)、DSP(Digital Signal Processor)、GPU(Graphics Processing Unit)である。
メモリ12,22,32は、データを一時的に記憶する記憶装置である。メモリ12,22,32は、具体例としては、SRAM(Static Random Access Memory)、DRAM(Dynamic Random Access Memory)である。
ストレージ13,23,33は、データを保管する記憶装置である。ストレージ13,23,33は、具体例としては、HDD(Hard Disk Drive)である。また、ストレージ13,23,33は、SD(登録商標,Secure Digital)メモリカード、CF(CompactFlash,登録商標)、NANDフラッシュ、フレキシブルディスク、光ディスク、コンパクトディスク、ブルーレイ(登録商標)ディスク、DVD(Digital Versatile Disk)といった可搬記憶媒体であってもよい。
通信インタフェース14,24,34は、外部の装置と通信するためのインタフェースである。通信インタフェース14,24,34は、具体例としては、Ethernet(登録商標)、USB(Universal Serial Bus)、HDMI(登録商標,High−Definition Multimedia Interface)のポートである。
図2では、プロセッサ11は、1つだけ示されている。しかし、鍵生成装置10は、プロセッサ11を代替する複数のプロセッサを備えていてもよい。同様に、署名装置20は、プロセッサ21を代替する複数のプロセッサを備えていてもよい。検証装置30は、プロセッサ31を代替する複数のプロセッサを備えていてもよい。
これら複数のプロセッサは、各機能構成要素の機能を実現するプログラムの実行を分担する。それぞれのプロセッサは、プロセッサ11,21,31と同じように、演算処理を行うICである。
***動作の説明***
図5から図9を参照して、実施の形態1に係る署名システム1の動作を説明する。
実施の形態1に係る署名システム1の動作は、実施の形態1に係る署名方法に相当する。また、実施の形態1に係る署名システム1の動作は、実施の形態1に係る署名プログラムの処理に相当する。
**準備**
実施の形態1に係る署名システム1の動作の説明に必要な情報を説明する。
<記法>
以下の説明で用いる記法を説明する。
自然数の集合を数11で表し、整数の集合を数12で表す。以下、文章中では、自然数の集合をNと表し、整数の集合をZと表す。
Figure 0006818949
Figure 0006818949
任意の整数a,bに対して、(a,b)は、数13に示す集合を表し、[a,b]は、数14に示す集合を表す。
Figure 0006818949
Figure 0006818949
任意の正の整数d>0に対して、[d]は、集合{1,2,...,d}を表す。
Sをある集合とし、Pを集合S上の確率分布とする。このとき、数15は、a∈Sが集合Sから一様ランダムに選ばれていることを表す。また、数16は、b∈Sが確率分布Pに沿って選ばれていることを表す。
Figure 0006818949
Figure 0006818949
negl(λ)は、自然数λについて無視できる関数の集合を表す。
<ディジタル署名>
ディジタル署名は、KeyGenアルゴリズムと、Signアルゴリズムと、Verifyアルゴリズムとの3つのアルゴリズムからなる。
KeyGenアルゴリズムは、セキュリティパラメータλを入力として、秘密鍵skと公開鍵pkとのペア(sk,pk)を出力する。
Signアルゴリズムは、秘密鍵skと、メッセージμとを入力として、署名σを出力する。
Verifyアルゴリズムは、公開鍵pkと、メッセージμと、署名σとを入力として、署名σがメッセージμの有効な署名であれば1を出力し、そうでなければ0を出力する。
<Middle−Product Learning With Errors(MPLWE)>
MPLWEは、文献(Miruma Rosca, Amin Sakzad, Damien Stehle, and Ron Steinfeld. Middle−Product Learning with Errors. In CRYPTO, pages 283-297, 2017.)に記載されている。
次数が高々k−1>0で、係数がZの多項式の集合をR<kで表し、係数がZの多項式の集合をR <kで表す。多項式rのLノルムとLノルムとをそれぞれ数17に示すように表す。
Figure 0006818949
自然数αに対して、数18を満たす要素wの集合をSα <kで表す。
Figure 0006818949
ある多項式r+rx+...+rk−1k−1∈R<k(または、r∈S<k)に対して、数19と書く。
Figure 0006818949
ベクトルr∈Zに対して、r[i:j](0<i<j<k)は、rのi番目からj番目の係数のベクトルを表す。
(Toeplitz行列の定義)
任意のd,k>0と、a∈R<kとに対して、i行目(i=1,...,d)がxi−1・aの係数ベクトルであるようなRd×(k+d−1)の行列をToepd,k(a)で表し、Toeplitz行列と呼ぶ。
(Middle−Productの定義)
,d,d,kをd+d−1=d+2kを満たす整数とする。数20に示すMiddle−Productの写像は、数21に示す写像である。
Figure 0006818949
Figure 0006818949
ここで、d+d−1−dが負でなく、かつ偶数であるような全てのd,dに対して、数22に示す記法が用いられる。
Figure 0006818949
以下のように、Middle−ProductをToeplitz行列を用いて表すことができる。Toeplitz行列とベクトルとの積はO(nlogn)で計算することができる。
(補題1)
d,k>0とする。数23であるとする。
Figure 0006818949
このとき、数24が成立する。
Figure 0006818949
(系1)
数24は、数25のように変換することができる。
Figure 0006818949
対応する次元をもつ多項式に対して、Middle−Productと多項式との積は、結合法則のような以下の性質を満たす。
(補題2)
d,k,n>0とする。全てのr∈R<k+1,a∈R<n,s∈R<n+d+k−1に対して、数26が成立する。
Figure 0006818949
補題2と同じ次数を持つ多項式について、Middle−Productが部分的に可換性を持つことを多項式の積の可換性から示すことができる。
(系2)
補題2と同じr∈R<k+1,a∈R<n,s∈R<n+d+k−1に対して、数27が成立する。
Figure 0006818949
(MPLWE分布の定義)
n,d>0、q≧2、χをR<d上の分布とする。s∈Zに対して、Z <n[x]×R <d上の分布MPLWEq,n,d,χ(s)は、数28に示すように、a,eをサンプルし、数29を返す分布である。
Figure 0006818949
Figure 0006818949
決定性のMPLWE問題の定義を説明する。MPLWE問題は、MPLWE分布と一様分布とのどちらの確率分布からサンプルされた要素かを識別する問題である。決定性のMPLWE仮定とは、MPLWE問題が任意の効率的なアルゴリズムによって解くことが困難であるという仮定である。
(MPLWE問題の定義)
n,d>0、q≧2、χをR<d上の分布とする。MPLWEn,d,q,χ問題は、MPLWEn,d,q,χ(s)からの任意個のサンプルと、Z <n[x]×R <dからの同じ個数のサンプルとを識別する問題である。
任意の攻撃者Aに対して、MPLWEn,d,q,χ問題についての攻撃者Aの優位性は、数30のように定義される。
Figure 0006818949
ここで、確率は、数31と攻撃者の乱数上で取られる。
Figure 0006818949
任意の確率的多項式時間アルゴリズムAに対して、MPLWEn,d,q,χ問題を解くことが困難であるとき、つまり、Adv MPLWE(λ)=negl(λ)であるとき、MPLWE仮定が成立しているという。
<付随アルゴリズム>
実施の形態1に係る署名システム1によって実現されるディジタル署名で用いられるアルゴリズムを説明する。
(記法)
アルゴリズムで用いられる記法を説明する。
任意の整数rと、任意の偶数(または奇数)である整数α>0とについて、r’=r mod± αをr’=r mod αを満たす一意の要素r’∈(−α/2,α/2](整数αが奇数の場合には、r’∈[−(α−1)/2,(α−1)/2))とする。また、r’=r mod αをr’=r mod αを満たす一意な整数r’∈[0,α)とする。
Bが真であれば1、そうでなければ0となるビットを数32で表す。
Figure 0006818949
(アルゴリズム)
このアルゴリズムは、文献(Leo Ducas, Eike Kiltz, Tancrede Lepoint, Vadim Lyubashevsky, Peter Schwabe, Gregor Seiler,and Damien Stehle. CRYSTALS − Dilithium: A Lattice−based Digital Signature Scheme. In CHES, pages 238-268, 2018.)に記載されている。
アルゴリズムは整数上で定義されている。しかし、係数毎にアルゴリズムを適用することで多項式に対しても簡単に一般化することができる。
(Prower2Round(r,d)アルゴリズム)
Prower2Round(r,d)アルゴリズムは、rを2で区切った上位ビットを出力するアルゴリズムである。
具体的には、Prower2Round(r,d)アルゴリズムでは、r:=r mod qが計算され、さらにr:=r mod±が計算される。そして、(r−r)/2が出力される。
(Decompose(r,α)アルゴリズム)
Decompose(r,α)アルゴリズムは、rをαで区切った上位ビットrと下位ビットrとを出力するアルゴリズムである。
具体的には、Decompose(r,α)アルゴリズムでは、r:=r mod qが計算され、さらにr:=r mod± αが計算される。もし、r−r=q−1なら、r:=0が設定され、r:=r−1が設定される。そうでなければ、r:=(r−r)/αが設定される。そして、r及びrが出力される。
(HighBits(r,α)アルゴリズム)
HighBits(r,α)アルゴリズムは、rをαで区切った上位ビットrを出力するアルゴリズムである。
具体的には、HighBits(r,α)アルゴリズムでは、(r,r):=Decompose(r,α)が計算され、rが出力される。
(LowBits(r,α)アルゴリズム)
LowBits(r,α)アルゴリズムは、rをαで区切った下位ビットrを出力するアルゴリズムである。
具体的には、LowBits(r,α)アルゴリズムでは、(r,r):=Decompose(r,α)が計算され、rが出力される。
(UseHint(h,r,α)アルゴリズム)
UseHint(h,r,α)アルゴリズムは、後述するMakeHint(z,r,α)アルゴリズムの情報に応じて、r+zの上位ビットを復元する。
具体的には、UseHint(h,r,α)アルゴリズムでは、m:=(q−1)/αが設定され、(r,r):=Decompose(r,α)が計算される。h=1かつr>0であれば、(r+1) mod mが出力される。h=1かつr≦0であれば、(r−1) mod mが出力される。
(MakeHint(z,r,α)アルゴリズム)
MakeHint(z,r,α)アルゴリズムは、rに小さい値zを足した場合に、rの上位ビットが変化するか否かを示す情報を出力する。
具体的には、MakeHint(z,r,α)アルゴリズムでは、r:=HighBits(r,α)と、v:=HighBits(r+z,α)とが計算される。そして、数33が出力される。
Figure 0006818949
(補題3)
qとαとは、q>2αと、数34とを満たし、αは偶数である正の整数とする。rとzとはR <nの要素であり、数35であり、h,h’は二進ベクトルであるとする。
Figure 0006818949
Figure 0006818949
このとき、HighBits(r,α)アルゴリズムと、UseHint(h,r,α)アルゴリズムと、MakeHint(z,r,α)アルゴリズムとは、以下の性質を満たす。
性質1:UseHint(MakeHint(z,r,α),r,α)=HighBits(r+z,α)である。
性質2:v:=UseHint(h,r,α)とすると、数36となる。
Figure 0006818949
性質3:任意のh,h’に対して、UseHint(h,r,α)=UseHint(h’,r,α)であれば、h=h’である。
(補題4)
数37かつ数38であれば、数39となる。
Figure 0006818949
Figure 0006818949
Figure 0006818949
**署名システム1の動作**
以下では、Cは多項式の集合である。要素のLノルムは、1であり、Lノルムは多項式がλビットのmin−エントロピーを持つように制限される。また、以下の説明におけるβ、β’、γ、γ’、δは、安全性を考慮して決定される値であり、高い安全性を設定するほど、大きい値が設定される。
<鍵生成装置10の動作>
図5を参照して、実施の形態1に係る鍵生成装置10の動作を説明する。
実施の形態1に係る鍵生成装置10の動作は、実施の形態1に係る鍵生成方法に相当する。また、実施の形態1に係る鍵生成装置10の動作は、実施の形態1に係る鍵生成プログラムの処理に相当する。
鍵生成装置10は、ディジタル署名の3つのアルゴリズムのうち、KeyGenアルゴリズムを実現する。
(ステップS11:受付処理)
受付部111は、セキュリティパラメータλの入力を受け付ける。
具体的には、受付部111は、鍵生成装置10の利用者によって入力装置が操作され入力されたセキュリティパラメータλを受け付ける。受付部111は、セキュリティパラメータλをメモリ12に書き込む。
(ステップS12:鍵生成処理)
鍵生成部112は、セキュリティパラメータλをメモリ12から読み出す。鍵生成部112は、セキュリティパラメータλを入力として、秘密鍵skと、公開鍵pkとのペアを生成する。
図6を参照して、実施の形態1に係る鍵生成処理を説明する。
(ステップS121:パラメータ設定処理)
鍵生成部112は、セキュリティパラメータλをメモリ12から読み出す。鍵生成部112は、n=n(λ)、d=d(λ)、k=k(λ)、q=q(λ)を設定する。つまり、n,d,k,qはセキュリティパラメータλによって決まる値である。
(ステップS122:乱数生成処理)
鍵生成部112は、一様ランダムにa∈R <nを生成する。
具体的には、鍵生成部112は、数40に示すようにランダムにシードρを選択する。
Figure 0006818949
そして、鍵生成部112は、シードρを入力として疑似乱数生成アルゴリズムによりa∈R <nを生成する。
(ステップS123:秘密鍵要素生成処理)
鍵生成部112は、数41に示すように、秘密鍵skの要素s及び要素sを一様ランダムに生成する。
Figure 0006818949
(ステップS124:公開鍵要素生成処理)
鍵生成部112は、数42に示すように、公開鍵pkの要素t及び要素tを生成する。
Figure 0006818949
(ステップS125:鍵設定処理)
鍵生成部112は、秘密鍵sk:=(a,s,s,t)を設定する。また、鍵生成部112は、公開鍵pk:=(a,t,t)を設定する。鍵生成部112は、秘密鍵sk及び公開鍵pkをメモリ12に書き込むとともに、鍵記憶部131に書き込む。
(ステップS13:送信処理)
送信部113は、秘密鍵sk及び公開鍵pkをメモリ12から読み出す。送信部113は、秘密鍵skを通信インタフェース14及び通信路40を介して署名装置20に秘密裡に送信する。すると、署名装置20の受付部211は、秘密鍵skを受け付け、鍵記憶部231に書き込む。また、送信部113は、公開鍵pkを通信インタフェース14及び通信路40を介して検証装置30に送信する。すると、検証装置30の受付部311は、公開鍵pkを受け付け、鍵記憶部331に書き込む。
ここで、密裡に送信するとは、例えば、既存の暗号化方式により暗号化した上で送信することである。なお、秘密鍵sk及び公開鍵pkは、可搬記憶媒体に記憶した上で郵送などにより直接的に送信してもよい。公開鍵と秘密鍵は外部の装置で生成されてもよい。
<署名装置20の動作>
図7を参照して、実施の形態1に係る署名装置20の動作を説明する。
実施の形態1に係る署名装置20の動作は、実施の形態1に係る署名生成方法に相当する。また、実施の形態1に係る署名装置20の動作は、実施の形態1に係る署名生成プログラムの処理に相当する。
署名装置20は、ディジタル署名の3つのアルゴリズムのうち、Signアルゴリズムを実現する。
(ステップS21:受付処理)
受付部211は、メッセージμの入力を受け付ける。
具体的には、受付部211は、署名装置20の利用者によって入力装置が操作され入力されたメッセージμを受け付ける。受付部211は、メッセージμをメモリ22に書き込む。
(ステップS22:署名生成処理)
署名生成部212は、秘密鍵skを鍵記憶部231から読み出すとともに、メッセージμをメモリ22から読み出す。署名生成部212は、秘密鍵sk及びメッセージμを入力として、メッセージμに対する署名σを生成する。
図8を参照して、実施の形態1に係る署名生成処理を説明する。
(ステップS221:乱数生成処理)
署名生成部212は、数43に示すように、乱数yを生成する。
Figure 0006818949
(ステップS222:ハッシュ値c生成処理)
署名生成部212は、数44に示すように、要素wを生成する。
Figure 0006818949
署名生成部212は、数45に示すように要素wを生成する。
Figure 0006818949
署名生成部212は、要素w及びメッセージμ入力として、ハッシュ関数Hによりハッシュ値cを計算する。つまりc:=H(w,μ)∈Cである。
(ステップS223:要素z生成処理)
署名生成部212は、ハッシュ値cと、秘密鍵skの要素sと、乱数yとを入力として、数46に示すように、署名σの要素zを生成する。
Figure 0006818949
つまり、署名生成部212は、メッセージμのハッシュ値cと秘密鍵skの要素sとのMiddle−Productを計算して署名要素zを生成する。より詳しくは、署名生成部212は、ハッシュ値cと秘密鍵とのMiddle−Productを計算して得られた値に小さな係数を持つランダムな値yを加えて署名要素zを生成する。
(ステップS224:要素h生成処理)
署名生成部212は、数47と数48とのいずれかであるか否かを判定する。
Figure 0006818949
Figure 0006818949
署名生成部212は、数47と数48とのいずれかである場合には、署名要素z及び署名要素hに署名生成不可を示す⊥を設定する。つまり、(z,h):=(⊥,⊥)である。
一方、署名生成部212は、数47と数48とのいずれでもない場合には、数49に示すように署名要素hを生成する。
Figure 0006818949
(ステップS225:署名設定処理)
署名生成部212は、署名σ:=(h,z,c)を設定する。署名生成部212は、署名σをメモリ22に書き込む。
(ステップS23:出力処理)
出力部213は、署名生成部212によって生成された署名要素hと署名要素zとハッシュ値cとを含む署名σ及びメッセージμを出力する。
具体的には、出力部213は、通信インタフェース24及び通信路40を介して、署名σ及びメッセージμを検証装置30に送信する。すると、検証装置30の受付部311は、署名σ及びメッセージμを受け付け、メモリ32に書き込む。
<検証装置30の動作>
図9を参照して、実施の形態1に係る検証装置30の動作を説明する。
実施の形態1に係る検証装置30の動作は、実施の形態1に係る検証方法に相当する。また、実施の形態1に係る検証装置30の動作は、実施の形態1に係る検証プログラムの処理に相当する。
検証装置30は、ディジタル署名の3つのアルゴリズムのうち、Verifyアルゴリズムを実現する。
(ステップS31:読出処理)
検証部312は、公開鍵pkを鍵記憶部331から読み出すとともに、署名σ及びメッセージμをメモリ32から読み出す。
(ステップS32:要素w’生成処理)
検証部312は、数50に示すように要素w’を生成する。
Figure 0006818949
つまり、検証部312は、署名σに含まれる署名要素zと公開鍵pkの要素aとのMiddle−Productを計算するとともに、署名σに含まれるハッシュ値cと公開鍵pkの要素tとのMiddle−Productを計算して、要素w’を生成する。
(ステップS33:ノルム判定処理)
検証部312は、数51が成立するか否かを判定する。
Figure 0006818949
検証部312は、数51が成立するなら処理をステップS34に進める。一方、検証部312は、数51が成立しないなら処理をステップS36に進める。
(ステップS34:ハッシュ値判定処理)
検証部312は、要素w’及びメッセージμ入力として、ハッシュ関数Hによりハッシュ値c’を計算する。つまりc:=H(w’,μ)である。検証部312は、署名σに含まれるハッシュ値cと、計算されたハッシュ値c’とが等しいか否かを判定する。
検証部312は、ハッシュ値cとハッシュ値c’とが等しい場合には、処理をステップS35に進める。一方、検証部312は、ハッシュ値cとハッシュ値c’とが等しくない場合には、処理をステップS36に進める。
(ステップS35:正当判定処理)
検証部312は、メッセージμが正当であると判定する。メッセージμが正当であるとは、メッセージμが改ざんされておらず、かつ、メッセージμが秘密鍵skの保有者によって送信されたという意味である。
そして、検証部312は、メッセージμが正当であることを示す値1を出力する。
(ステップS36:不当判定処理)
検証部312は、メッセージμが不当であると判定する。メッセージμが不当であるとは、メッセージμが改ざんされている場合と、メッセージμが秘密鍵skの保有者以外によって送信された場合との少なくともいずれかの場合であるという意味である。
そして、検証部312は、メッセージμが不当であることを示す値0を出力する。
検証装置30の動作の正当性を説明する。
図8のステップS222で生成された要素wと、図9のステップS32で生成された要素w’とが等しければ、ハッシュ値cとハッシュ値c’とが等しくなる。そこで、ここでは、要素wと要素w’とが等しくなることを説明する。
数50のUseHint(h,r,α)アルゴリズムにおけるrに相当する部分は、数52に示すようになる。
Figure 0006818949
ここで、数53に示すz及びtに基づき、数52の1行目から2行目に変形される。
Figure 0006818949
括弧を展開することにより、数52の2行目から3行目に変形される。
数54に示すtを代入することにより、数52の3行目から4行目に変形される。
Figure 0006818949
括弧を展開することにより、数52の4行目から5行目に変形される。
数52における数55及び数56をキャンセルすることにより、数52の5行目から6行目に変形される。ここで、補題2に基づき、数55及び数56はキャンセル可能である。
Figure 0006818949
Figure 0006818949
数57に基づき、数52の6行目から7行目に変形される。
Figure 0006818949
次に、数50は、数58に示すようになる。
Figure 0006818949
ここで、補題3の性質1に示すUseHint(MakeHint(z,r,α),r,α)=HighBits(r+z,α)におけるz,r,aは数59に示す通りである。
Figure 0006818949
なぜなら、数52に示すように、UseHint(h,r,α)アルゴリズムにおけるrに相当する部分は、数60であり、図8のステップS224では、署名要素hを数61に示すように生成しているためである。
Figure 0006818949
Figure 0006818949
これにより、数58の1行目から2行目に変形される。
数62と数63とをキャンセルすることにより、数58の2行目から3行目に変形される。
Figure 0006818949
Figure 0006818949
数58の3行目における数64は小さい値である。そのため、上位ビットを出力するHighBits(r,α)アルゴリズムでは、無視し得る。したがって、数58の3行目から4行目に変形される。
***実施の形態1の効果***
以上のように、実施の形態1に係る署名システム1では、署名装置20は、メッセージμのハッシュ値cと秘密鍵skの要素sとのMiddle−Productを計算して署名σの要素である署名要素zを生成する。また、検証装置30は、署名σの要素である署名要素zと公開鍵pkの要素aとのMiddle−Productを計算するとともに、署名σの要素であるハッシュ値cと公開鍵pkの要素tとのMiddle−Productを計算して、署名σを検証する。
これにより、MPLWE仮定を安全性の根拠とすることが可能となり、量子コンピュータに対しても安全性が保証可能なディジタル署名方式を構成可能にすることができる。
***他の構成***
<変形例1>
実施の形態1では、各機能構成要素がソフトウェアで実現された。しかし、変形例1として、各機能構成要素はハードウェアで実現されてもよい。この変形例1について、実施の形態1と異なる点を説明する。
図10を参照して、変形例1に係る鍵生成装置10の構成を説明する。
各機能構成要素がハードウェアで実現される場合には、鍵生成装置10は、プロセッサ11とメモリ12とストレージ13とに代えて、電子回路15を備える。電子回路15は、各機能構成要素と、メモリ12と、ストレージ13との機能とを実現する専用の回路である。
図11を参照して、変形例1に係る署名装置20の構成を説明する。
各機能構成要素がハードウェアで実現される場合には、署名装置20は、プロセッサ21とメモリ22とストレージ23とに代えて、電子回路25を備える。電子回路25は、各機能構成要素と、メモリ22と、ストレージ23との機能とを実現する専用の回路である。
図12を参照して、変形例1に係る検証装置30の構成を説明する。
各機能構成要素がハードウェアで実現される場合には、検証装置30は、プロセッサ31とメモリ32とストレージ33とに代えて、電子回路35を備える。電子回路35は、各機能構成要素と、メモリ32と、ストレージ33との機能とを実現する専用の回路である。
電子回路15,25,35としては、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ロジックIC、GA(Gate Array)、ASIC(Application Specific Integrated Circuit)、FPGA(Field−Programmable Gate Array)が想定される。
各機能構成要素を1つの電子回路15,25,35で実現してもよいし、各機能構成要素を複数の電子回路15,25,35に分散させて実現してもよい。
<変形例2>
変形例2として、一部の各機能構成要素がハードウェアで実現され、他の各機能構成要素がソフトウェアで実現されてもよい。
プロセッサ11,21,31とメモリ12,22,32とストレージ13,23,33と電子回路15,25,35とを処理回路という。つまり、各機能構成要素の機能は、処理回路により実現される。
1 署名システム、10 鍵生成装置、11 プロセッサ、12 メモリ、13 ストレージ、14 通信インタフェース、15 電子回路、111 受付部、112 鍵生成部、113 送信部、131 鍵記憶部、20 署名装置、21 プロセッサ、22 メモリ、23 ストレージ、24 通信インタフェース、25 電子回路、211 受付部、212 署名生成部、213 出力部、231 鍵記憶部、30 検証装置、31 プロセッサ、32 メモリ、33 ストレージ、34 通信インタフェース、35 電子回路、311 受付部、312 検証部、331 鍵記憶部、40 通信路。

Claims (8)

  1. メッセージμのハッシュ値cと秘密鍵とのMiddle−Productを計算して得られた値にランダムな値yを加えて署名要素zを生成し、数1に示す署名要素hと前記署名要素zと前記ハッシュ値cとを含む署名σを生成する署名生成部と、
    前記署名生成部によって生成された前記署名要素zを含む署名σを出力する出力部と
    を備える署名装置。
    Figure 0006818949
  2. メッセージμのハッシュ値cと秘密鍵とのMiddle−Productを計算して生成された署名要素zと、前記ハッシュ値cとを含む署名σであって、数2に示す署名要素hと前記署名要素zと前記ハッシュ値cとを含む署名σを受け付ける受付部と、
    前記受付部によって受け付けられた前記署名要素zと公開鍵とのMiddle−Productを数3に示すように計算して得られた値w’ と、前記メッセージμとを入力として、ハッシュ値c’を計算し、計算されたハッシュ値c’と、前記署名σに含まれるハッシュ値cとが一致するか否かを判定することにより、前記署名σを検証する検証部と
    を備える検証装置。
    Figure 0006818949
    Figure 0006818949
  3. 前記公開鍵は、ランダムな多項式aと秘密鍵とのMiddle−Productを計算して生成された
    請求項に記載の検証装置。
  4. メッセージμのハッシュ値cと秘密鍵とのMiddle−Productを計算して署名要素zを生成し、前記署名要素zと前記ハッシュ値cとを含む署名σであって、数4に示す署名要素hと前記署名要素zと前記ハッシュ値cとを含む前記署名σを出力する署名装置と、
    前記署名装置によって生成された前記署名要素zと公開鍵とのMiddle−Productを数5に示すように計算して得られた値w’ と、前記メッセージμとを入力として、ハッシュ値c’を計算し、計算されたハッシュ値c’と、前記署名σに含まれるハッシュ値cとが一致するか否かを判定することにより、前記署名σを検証する検証装置と
    を備える署名システム。
    Figure 0006818949
    Figure 0006818949
  5. 署名装置における署名生成部が、メッセージμのハッシュ値cと秘密鍵とのMiddle−Productを計算して得られた値にランダムな値yを加えて署名要素zを生成し数6に示す署名要素hと前記署名要素zと前記ハッシュ値cとを含む署名σを生成し、
    前記署名装置における出力部が、前記署名要素zを含む署名σを出力する署名方法。
    Figure 0006818949
  6. 署名生成部が、メッセージμのハッシュ値cと秘密鍵とのMiddle−Productを計算して得られた値にランダムな値yを加えて署名要素zを生成し、数7に示す署名要素hと前記署名要素zと前記ハッシュ値cとを含む署名σを生成する署名生成処理と、
    出力部が、前記署名生成処理によって生成された前記署名要素zを含む署名σを出力する出力処理と
    を行う署名装置としてコンピュータを機能させる署名プログラム。
    Figure 0006818949
  7. 検証装置における受付部が、メッセージμのハッシュ値cと秘密鍵とのMiddle−Productを計算して生成された署名要素zと、前記ハッシュ値cとを含む署名σであって、数8に示す署名要素hと前記署名要素zと前記ハッシュ値cとを含む署名σを受け付け、
    前記検証装置における検証部が、前記署名要素zと公開鍵とのMiddle−Productを数9に示すように計算して得られた値w’ と、前記メッセージμとを入力として、ハッシュ値c’を計算し、計算されたハッシュ値c’と、前記署名σに含まれるハッシュ値cとが一致するか否かを判定することにより、前記署名σを検証する検証方法。
    Figure 0006818949
    Figure 0006818949
  8. 受付部が、メッセージμのハッシュ値cと秘密鍵とのMiddle−Productを計算して生成された署名要素zと、前記ハッシュ値cとを含む署名σであって、数10に示す署名要素hと前記署名要素zと前記ハッシュ値cとを含む署名σを受け付ける受付処理と、
    検証部が、前記受付処理によって受け付けられた前記署名要素zと公開鍵とのMiddle−Productを数11に示すように計算して得られた値w’ と、前記メッセージμとを入力として、ハッシュ値c’を計算し、計算されたハッシュ値c’と、前記署名σに含まれるハッシュ値cとが一致するか否かを判定することにより、前記署名σを検証する検証処理と
    を行う検証装置としてコンピュータを機能させる検証プログラム。
    Figure 0006818949
    Figure 0006818949
JP2020540506A 2018-09-28 2018-09-28 署名装置、検証装置、署名システム、署名方法、署名プログラム、検証方法及び検証プログラム Active JP6818949B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2018/036338 WO2020065928A1 (ja) 2018-09-28 2018-09-28 署名装置、検証装置、署名システム、署名方法、署名プログラム、検証方法及び検証プログラム

Publications (2)

Publication Number Publication Date
JPWO2020065928A1 JPWO2020065928A1 (ja) 2021-01-07
JP6818949B2 true JP6818949B2 (ja) 2021-01-27

Family

ID=69952943

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020540506A Active JP6818949B2 (ja) 2018-09-28 2018-09-28 署名装置、検証装置、署名システム、署名方法、署名プログラム、検証方法及び検証プログラム

Country Status (4)

Country Link
US (1) US20210211303A1 (ja)
JP (1) JP6818949B2 (ja)
CN (1) CN112740618A (ja)
WO (1) WO2020065928A1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102444193B1 (ko) * 2020-04-29 2022-09-19 국방과학연구소 Ring-LWR기반 양자내성 서명 방법 및 그 시스템
CN112087294B (zh) * 2020-08-13 2022-03-18 中国电子科技集团公司第三十研究所 一种基于密态哈希标签防护的便携式安全计算机系统
CN112468292B (zh) * 2020-11-16 2022-09-23 南京大学 一种量子数字签名方法及系统

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
IL156606A (en) * 2003-06-23 2011-07-31 Aviad Kipnis Digital certificates
CN1954547B (zh) * 2005-04-18 2010-09-15 松下电器产业株式会社 签名生成装置和签名验证装置
JP6139469B2 (ja) * 2014-06-12 2017-05-31 日本電信電話株式会社 署名生成装置、署名検証装置、検証システム、およびプログラム

Also Published As

Publication number Publication date
CN112740618A (zh) 2021-04-30
US20210211303A1 (en) 2021-07-08
WO2020065928A1 (ja) 2020-04-02
JPWO2020065928A1 (ja) 2021-01-07

Similar Documents

Publication Publication Date Title
JP7107670B2 (ja) ビットミキサにより暗号ラウンド鍵を生成するためのシステム及び方法
EP3577642B1 (en) Methods and devices for protecting data
EP2526505B1 (en) Device and method for obtaining a cryptographic key
JP5419056B2 (ja) Cartier対形成の暗号化適用
US11349668B2 (en) Encryption device and decryption device
JP6818949B2 (ja) 署名装置、検証装置、署名システム、署名方法、署名プログラム、検証方法及び検証プログラム
EP3661115B1 (en) Encryption device, decryption device, encryption method, decryption method, encryption program, and decryption program
WO2020188906A1 (ja) 署名装置、検証装置、署名方法、検証方法、署名プログラム及び検証プログラム
US8325913B2 (en) System and method of authentication
Rahman et al. Design and security-mitigation of custom and configurable hardware cryptosystems
JP5489115B2 (ja) 原本性保証装置、原本性保証プログラム、及びこのプログラムを記録する記録媒体
WO2021157003A1 (ja) 暗号化装置、復号装置、暗号化方法、復号方法、暗号化プログラム及び復号プログラム
WO2019016916A1 (ja) 暗号化装置、復号装置、暗号化方法、暗号化プログラム、復号方法及び復号プログラム
Suresh et al. VLSI implementation of text to image encryption algorithm based on private key encryption
JP2018092010A (ja) 暗号化装置と暗号化方法、暗号化プログラム及び鍵生成装置と鍵生成方法、鍵生成プログラム
JP6797337B2 (ja) メッセージ認証装置、メッセージ認証方法及びメッセージ認証プログラム
KR20190052605A (ko) 적어도 두 개의 알고리즘을 이용하여 랜덤 넘버를 생성하는 랜덤 넘버 생성기 및 이를 포함하는 보안 장치
CN114422130B (zh) 一种基于量子幂函数混淆的量子加密方法
JP3908107B2 (ja) 量子情報分散検証方法、その装置
Tedla Reduced Vector Technique Homomorphic Encryption with Versors A Survey and a Proposed Approach
JP2004347885A (ja) 暗号化装置処理方法、暗号復号装置処理方法、これらの装置及びプログラム
Raj et al. Hybrid Cryptographic Processor for Secure Communication Using FPGA
PUFs SECURITY ANALYSIS OF STRONG PHYSICAL UNCLONABLE FUNCTIONS

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200721

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20200721

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20200908

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20201027

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20201120

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: 20201201

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20201228

R150 Certificate of patent or registration of utility model

Ref document number: 6818949

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250