JP7430923B2 - 暗号化ハッシュ関数の原像要素を決定するための方法、コンピュータプログラム、およびデータ処理システム - Google Patents

暗号化ハッシュ関数の原像要素を決定するための方法、コンピュータプログラム、およびデータ処理システム Download PDF

Info

Publication number
JP7430923B2
JP7430923B2 JP2021186248A JP2021186248A JP7430923B2 JP 7430923 B2 JP7430923 B2 JP 7430923B2 JP 2021186248 A JP2021186248 A JP 2021186248A JP 2021186248 A JP2021186248 A JP 2021186248A JP 7430923 B2 JP7430923 B2 JP 7430923B2
Authority
JP
Japan
Prior art keywords
hash function
optimization problem
determining
variable
cryptographic hash
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
JP2021186248A
Other languages
English (en)
Other versions
JP2022083992A (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.)
Terra Quantum AG
Original Assignee
Terra Quantum AG
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 Terra Quantum AG filed Critical Terra Quantum AG
Publication of JP2022083992A publication Critical patent/JP2022083992A/ja
Application granted granted Critical
Publication of JP7430923B2 publication Critical patent/JP7430923B2/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/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
    • H04L9/3242Cryptographic 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 involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
    • 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
    • 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
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • 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
    • G06N10/60Quantum algorithms, e.g. based on quantum optimisation, quantum Fourier or Hadamard transforms
    • 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
    • H04L9/3239Cryptographic 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 involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • 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/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • 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/122Hardware reduction or efficient architectures
    • 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/30Compression, e.g. Merkle-Damgard construction

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Power Engineering (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Artificial Intelligence (AREA)
  • Condensed Matter Physics & Semiconductors (AREA)
  • Evolutionary Computation (AREA)
  • Computing Systems (AREA)
  • Complex Calculations (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本開示は、特に量子アニーリングデバイスなどの量子コンピュータで、暗号化ハッシュ関数の原像要素を決定するための技術に関する。
反転の暗号化ハッシュ関数は、それぞれの暗号強度の分析に関する。式中Xが入力値の集合(入力ビットシーケンス、メッセージ)であり、Yが出力値の集合(ハッシュの値、固定の長さのビットシーケンス)であるハッシュ関数H:X→Yについて、Yにおける要素yのサイズ|y|は通常、|x|よりもはるかに小さい。したがって、ハッシュ関数は全単射ではなく、次式
H(x)=y (1)
は一般に、多くの解を有し、すなわち、集合H(-1)(y)={x:H(x)=y}(特定のハッシュの値yに対応する原像要素または逆像要素の集合)は多くの要素を含むことができる。それにもかかわらず、それらのいずれかの模索は、「強力な」ハッシュ関数の計算上困難な問題である。近年、ハッシュ関数は、ブロックチェーン技術における重要な要素として使用されている。最も計算電力を消費する段階、いわゆるマイニングはまた、以下の不等式を解くと理解され得る。
H({x,xfixed})≦y (2)
式中、{x,xfixed}は、未知の部分x(いわゆるノンス、通常は4バイトのフィールド)と、ブロックヘッダを伴う固定された残りの部分xfixedとを含むハッシュ関数Hの引数であり、ハッシュの値yは、所定の閾値に対応する。式(2)の左辺および右辺はビットシーケンスであるが、整数のバイナリ表現として解釈することもできる。これにより、式(2)から、ハッシュの値yの事前定義された先頭ビット数はすべて0に等しい。例えば、ハッシュ関数が128ビットのハッシュ関数Hである場合、ハッシュの値yは、yがシーケンス(y(k=1,…,128)内の最初の(左から)ゼロ以外のビットである(有限)シーケンスy=(y(k=1,…,128)として書くことができる。したがって、式(2)は、以下に相当する。
[H({x,xfixed})]=0(k=1:(m-1)) (2’)
ハッシュ関数Hの先頭ビット(m-1)は0である。これにより、原像要素の集合のうちの1つを決定することができる。
暗号化ハッシュ関数によって処理される入力にアクセスするか、またはそれを変更する主なタイプは、衝突攻撃と原像攻撃の2つである。衝突攻撃では、目標は、2つの異なるメッセージx,xを見つけ、H(x)=H(x)とすることである。MD5の暗号化ハッシュ関数に対するこのタイプの攻撃は既に知られており、約218MD5の圧縮を必要とし、これは依然として網羅的な探索(264MD5の圧縮を必要とする)よりもはるかに少ない。したがって、そのような攻撃は通常のPCで実行することができる。一方、原像攻撃は、より複雑であるが、衝突攻撃よりも強力である。原像攻撃の間、xは所与のyに対して決定され、H(x)=yである。MD5の場合、そのような攻撃は現在、理論的なものに過ぎず、すなわち、網羅的な探索よりも少ないMD5圧縮が必要とされるが(2123.4対2128)、既知の原像攻撃は、利用可能なコンピュータ上で完了することが、依然として事実上不可能である。
本開示の目的は、効率的かつリソースを節約する方法で、暗号化ハッシュ関数によって処理されたハッシュの値に対応する原像要素を決定するための方法を提供することである。
問題を解決するために、請求項1に記載の、データ処理システムで実行される、暗号化ハッシュ関数の原像要素を決定するための方法が提供される。さらに、コンピュータプログラムおよびデータ処理システムが、それぞれ独立請求項14および15に従って提供される。さらなる実施形態は、従属請求項に開示されている。
一態様によれば、データ処理システムで実行される、暗号化ハッシュ関数の原像要素を決定するための方法が提供される。本方法は、暗号化ハッシュ関数の出力値および暗号化ハッシュ関数のハッシュ関数演算を提供することを含み、ハッシュ関数演算の各々について、式および/または不等式を含む少なくとも1つのハッシュ関数関係を決定することと、最適化問題を決定するステップとを含む。最適化問題は、出力値と、暗号化ハッシュ関数の反復に割り当てられた少なくとも1つの制約(最適化関係)と、暗号化ハッシュ関数の内部状態変数および少なくとも1つの原像変数を含む最適化変数とを含む。少なくとも1つの制約は、少なくとも1つのハッシュ関数関係から決定され、先行する反復に割り当てられた先行する内部状態変数を含む。本方法は、最適化問題を解き、少なくとも1つの原像変数の最適化した値から暗号化ハッシュ関数の原像要素を決定するステップをさらに含む。
別の態様によれば、コンピュータプログラムおよび/またはコンピュータプログラム製品が提供され、コンピュータプログラムおよび/またはコンピュータプログラム製品がデータ処理システムで実行されると、データ処理システムに、暗号化ハッシュ関数の原像要素を決定するための方法のステップを実行させる命令を含む。
さらなる態様によれば、以下の暗号化ハッシュ関数の出力値および暗号化ハッシュ関数のハッシュ関数演算をもたらすステップ、ハッシュ関数演算の各々について、方程式および/または不等式を含む少なくとも1つのハッシュ関数関係を決定するステップ、最適化問題を決定するステップ、および最適化問題を解き、少なくとも1つの原像変数の最適化した値から暗号化ハッシュ関数の原像要素を決定するステップを実行することによって、暗号化ハッシュ関数の原像要素を決定するように構成されたデータ処理システムが提供される。最適化問題は、出力値と、暗号化ハッシュ関数の反復に割り当てられた少なくとも1つの制約と、暗号化ハッシュ関数の内部状態変数および少なくとも1つの原像変数を含む最適化変数とを含む。少なくとも1つの制約は、少なくとも1つのハッシュ関数関係から決定され、先行する反復に割り当てられた先行する内部状態変数を含む。
少なくとも1つのハッシュ関数関係は、直前の反復に割り当てられた先行する内部状態変数を含むことができる。最適化問題は、複数の制約を含むことができる。暗号化ハッシュ関数は、複数の反復、特に48、64、80、または128の反復を含むことができる。好ましくは、制約の各々を反復のうちの1つに割り当てることができる。さらに、反復の各々は、制約のうちの少なくとも1つを割り当てられてもよい。反復の各々は、制約のうちの少なくとも1つを割り当てることができ、その各々は、直前の反復に割り当てられた先行する内部状態変数のうちの少なくとも1つを含むことができる。制約は、最適化方程式、最適化不等式、および目的関数のうちの少なくとも1つを含むことができる。特に、式(1)または式(2)を最適化問題に対して用いるとき、明示的な目的関数(例えば、最小化されるべきである)が必要ない場合がある。したがって、最適化問題は、ダミー0定数の目的関数を含むことができる。複数の制約のいくつかは、ペナルティ項として目的関数要素に変換することもできる。
少なくとも1つの原像変数の最適化した値は、最適化問題の最小値および/または最大値が決定されたときに仮定され得る。最適化問題は、複数の原像変数、例えば16個の原像変数を含むことができる。原像要素は、原像変数の最適化した値を連結することによって決定され得る。最小値および/または最大値は、大域的および/または局在的であってもよい。
暗号化ハッシュ関数の出力値は、好ましくは128または160ビットのサイズを有するハッシュの値(ダイジェスト)とすることができる。
ハッシュ関数演算は、非線形ブール関数、左ビット回転、右ビット回転、およびモジュラ加算のうちの少なくとも1つ、特に、以下のうちの1つを含み得る。
Figure 0007430923000001
ハッシュ関数演算のうちの少なくとも1つ、好ましくは関数演算の各々は、暗号化ハッシュ関数の反復および/またはラウンドに割り当てられ得る。
左ビット回転は、1つの桁または複数の桁によって左ビットを回転させることを含んでもよい。右ビット回転は、1つの桁または複数の桁によって右ビットを回転させることを含んでもよい。回転させる桁の数は、左ビットの回転および/または右ビットの回転に割り当てられた反復および/またはラウンドに依存し得る。
方法は、ハッシュ関数演算のうちの少なくとも1つの要素的演算を決定するステップと、要素的演算の各々について、要素方程式および/または要素不等式を含む少なくとも1つの要素的関係を決定するステップと、少なくとも1つのハッシュ関数演算の要素的関係から少なくとも1つのハッシュ関数関係を決定するステップとを含み得る。好ましくは、要素的演算は、NOT、AND、OR、およびXORのうちの少なくとも1つを含み得る。
実施形態では、ハッシュ関数関係のすべては、要素的関係から決定されてもよい。代わりに、ハッシュ関数関係の少なくとも1つまたはすべては、ハッシュ関数演算から直接決定される。
ハッシュ関数関係のうちの少なくとも1つおよび/または要素的関係のうちの少なくとも1つは、双線形方程式および/または線形方程式を含み、好ましくは連続変数、バイナリ変数、および整数の変数のうちの少なくとも1つを含み得る。
ハッシュ関数関係のうちの少なくとも1つおよび/または要素的関係のうちの少なくとも1つは、
Figure 0007430923000002
の形式を有し、バイナリ変数および/または整数の変数が
Figure 0007430923000003
を含み、連続変数が、
Figure 0007430923000004
を含み、qは、ハッシュ関数演算および/または要素的演算のうちの1つである。
連続および/またはバイナリ変数の少なくとも1つが、初期の最適化問題(補助的最適化問題)、好ましくは制約付き二次問題を解くことによって決定され得る。
特に、変数
Figure 0007430923000005
は、初期最適化問題を解くことによって決定され得る。初期最適化問題は、(с-1)の形式の目的関数を含むことができ、ここではc
Figure 0007430923000006
の第1の成分である。この形態は、正規化を可能にする。初期最適化問題は、
Figure 0007430923000007
のうちの少なくとも1つを含む補助的制約を含むことができる。特に、初期の最適化問題は次のようになり得る。
Figure 0007430923000008
ここで、fは実行可能な構成のセットを示し、Nは式(4)での補助変数の数を示す。
好ましくは初期最適化問題によって決定される、ハッシュ関数関係の少なくとも1つおよび/または要素的関係の少なくとも1つは、連続的な係数、好ましくは整数の値の係数、およびバイナリ変数の線形方程式を含み得る。
例えば、要素的関係の少なくとも1つは、x+y-1=0、x+y-2z-a=0、x+y-2z+a=0、およびx+y-z-2a=0の少なくとも1つを含むことができ、ここで、x、y、z、およびaは、バイナリ変数である。さらに、要素的関係の少なくとも1つは、x+3y+2z-6F+2a-3a+2a=0、3x+2y-z-6G-3a+2a+2a=0、x+y+z-H-2a=0、x+2y-z-2I+a-4a=0,および(x+y+z-2J-a=0)の少なくとも1つを含むことができ、x、y、z、FからJ、およびaからaは、バイナリ変数である。
要素的関係のうちの少なくとも1つはまた、以下の要素不等式{z≦x,z≦y,z≧x+y-1}、{x≦z,y≦z,z≦x+y,z≦1};および{z≦x+y,z≧x-y,z≧y-x,z≦2-x-y}の集合のうちの少なくとも1つを含むことができ、式中、xおよびyは、バイナリ変数であり、zは連続変数である。ハッシュ関数関係の不等式は、要素不等式の集合のうちの少なくとも1つから決定され得る。
最適化問題を解くときに、初期内部状態の値および/または、好ましくは最後の反復に割り当てられる最終的な内部状態の値、が固定され得る。最適化変数は、最後の反復に割り当てられた内部状態変数を含まなくてもよい。
方法は、最適化問題を解く前に、最適化問題を少なくとも部分的に事前に解くステップをさらに含み得る。最適化問題を事前に解くことにより、制約および/または最適化変数の数を減らすことができる。最適化問題を事前に解くことは、最適化問題の値、好ましくは最適の値を決定することを含んでもよい。事前に解くことはまた、制約のうちの少なくとも1つの他の制約を代替する少なくとも1つの代替の制約を決定することを含むことができる。
最適化問題は、整数混合線形プログラム(MILP)、整数混合非線形プログラム(MINLP)、または二次の非制約バイナリ最適化(QUBO)問題であり得る。最適化問題はまた、制約付き整数プログラムであり得る。QUBO問題の目的関数は、MILPおよび/または、MINLPに対して決定された制約から、好ましくは制約を二乗することによって決定することができる。最適化問題は、別個の探索空間を含むことができる。
最適化問題は、データ処理システムの量子処理デバイス、好ましくは量子アニーリングデバイスにおいて(少なくとも部分的に)解くことができる。
例えば、量子アニーリングデバイスは、D波アニーリングデバイスであってもよい。最適化問題は、汎用量子コンピュータ上で解くこともできる。この目的のために、量子近似最適化アルゴリズムを使用して最適化問題を解くことができる。
あるいは、最適化問題は、古典的な処理デバイス、好ましくはデータ処理システムにおいてのみ解くことができる。古典的な処理デバイスは、プロセッサおよびメモリを備えることができる。要素的関係を決定すること、ハッシュ関数関係を決定すること、最適化問題を決定すること、および/または少なくとも1つの原像変数の最適化した値から暗号ハッシュ関数の原像要素を決定することは、古典的なデータ処理デバイスにおいて、特に古典的な処理デバイスのプロセッサによって実行され得る。
データ処理システムは、量子処理デバイス、特に量子アニーリングデバイスを備えてもよい。あるいは、量子処理デバイスは、データ処理システムから分離されてもよい。
少なくとも1つの制約、好ましくはすべての制約は、量子処理デバイス、好ましくは古典処理デバイス、特に古典処理デバイスのメモリから転送されてもよい。制約を転送することは、最適化中に固定値、例えば暗号化ハッシュ関数の出力値を転送することを含むことができる。
最適化変数は量子状態の重ね合わせに割り当てられ、および/またはオプティマイザは、最適化問題の最小値、好ましくは大域的最小値であり得る。
特に、最適化変数の可能な各々の値の割り当ては、好ましくは量子処理デバイスによって生成される量子状態のうちの1つに対応することができる。初期において、重畳の量子状態の各々は同じ重みを有することができる。重畳は、制約から決定された処方に従って量子処理デバイスによって時間的に発展させることができる。処方は、例えばハミルトニアンによって表されてもよい。少なくとも1つの原像変数の最適化した値(割り当て)は、最終時刻における重畳から決定されてもよい。最後に、最適化した値割の当てに対応する量子状態の最適化量子状態は、重畳の量子状態の最大重みを有することができる。最適化量子状態は、例えば、ハミルトニアンの基底状態に対応し得る。
少なくとも1つの原像変数の最適化した値は、最適化量子状態を決定することによって決定され得る。最適化した値は、古典的なデータ処理デバイスに転送されてもよい。これにより、原像要素は、古典的なデータ処理デバイス、特に古典的な処理デバイスのメモリに設けられてもよい。
暗号化ハッシュ関数は、好ましくは認証および/またはデータ破損検出のための情報のセキュリティをもたらすことができる。暗号化ハッシュ関数は、さらに、MD4、MD5、SHA-1、およびSHA-2のうちの1つであってもよい。
原像要素は、好ましくはデータの完全性および/またはプルーフオブワークのために、デジタル署名および/または検証されるメッセージおよび/またはデータファイルを含み得る。プルーフオブワークにより、ブロックチェーン内のトランザクションを確認することができ、および/またはブロックチェーンの新しいブロックを生成することができる。
暗号化ハッシュ関数の原像要素を決定するための方法に関する前述の実施形態は、暗号化ハッシュ関数の原像要素を決定するように構成されたデータ処理システムに対応して提供することができる。
以下では、例として、図面を参照して実施形態を説明する。
MD5ハッシュ関数の図形による表示を示す。 SHA-1ハッシュ関数の図形による表示を示す。 暗号化ハッシュ関数の原像要素を決定するための方法の図形による表示を示す。 データ処理システムの図形による表示を示す。
図1は、MD5ハッシュ関数の図形による表示を示す。ハッシュ関数の入力データ、例えばメッセージは、ハッシュ関数の異なる反復kに対応する固定されたブロック長(MD5の場合32ビット)のメッセージブロック(原像データブロック)Mに分割される。ハッシュ関数は、反復kごとの内部状態を含み、各内部状態は、4つの32ビットのブロックA,B,C,Dからなる。
初期内部状態(A,B,C,D)から開始して、ハッシュ関数の演算が第1の反復の中の初期内部状態(A,B,C,D)に適用され、その結果、第1の内部状態(A,B,C,D)が得られ、これにより、ひいては、ハッシュ関数の演算を適用する第2の反復の開始点が得られる。図1に示す図は、反復kのためのハッシュ関数演算の適用を示す。各反復kの中で、メッセージブロックMが処理され、内部状態を修正するために使用される。最大反復回数(MD5の場合は64)に達した後、最後の内部状態の32ビットブロックが連結され、暗号化ハッシュ関数の出力値が生成される。
MD5ハッシュ関数(MD4、SHA-1、およびSHA-2などの広く使用されている暗号化ハッシュ関数の大半と同様に)は、以下のハッシュ関数演算を含む。
-ビット単位の論理演算に基づく非線形ブール関数F
-16、32ビットの整数のモジュロ216または232の加算、
-ビット数分のビットシーケンスのシフト。
MD5ハッシュ関数の64回の反復は、16回の演算の4回にグループ化される。各ラウンドについて、異なるブール関数Fが使用され、Kは32ビットの定数からなり、反復kごとに異なる。記号
Figure 0007430923000009
は、反復ごとにsが変化するsの桁による、左ビット回転を示す。記号
Figure 0007430923000010
は、加算モジュロ232を示す。
反復kに対して、内部状態(A(k-1),B(k-1),C(k-1),D(k-1))から開始して、図1に従い、内部状態の値は以下のように処理される。
Figure 0007430923000011
この関数μは、以下のように定義される。
Figure 0007430923000012
非線形ブール関数Fは、反復kに応じて、以下のように定義される。
Figure 0007430923000013
第1の16の反復kは第1のラウンドを構成し、その後の16の反復は第2のラウンドを構成し、第3の16の反復は第3のラウンドを構成し、最後の16の反復は第4のラウンド兼最後のラウンドを構成する。記号
Figure 0007430923000014
は、論理演算OR、AND、XOR、およびNOTをそれぞれ示す。変数B、C、およびDは、32ビットのワードである。
,B,C,D,Mμ(k),Kすべてが32ビットの符号なしの整数として扱われ得る。A64,B64,C64,D64は、最終的なハッシュの値の32ビットブロックである。k∈0...15であるMは、求められる入力メッセージを構成し、最適化変数(原像変数)として用いられる。式(1)および(2)に示される変数yは、内部状態/データブロックA64,B64,C64,D64の和集合である。
したがって、所与のハッシュの値yに対する原像要素xを求めることは、所与のA64,B64,C64,D64に対する原像変数Mを求めることに相応する。
図2は、反復kのためのハッシュ関数演算の適用を示す、SHA-1ハッシュ関数の対応する図形による表示である。各反復の内部状態は、5つの32ビットデータブロックA,B,C,D,Eからなる。Mは反復kのメッセージブロックを表し、Kは反復kごとに異なる定数である。
MD5およびSHA-1で使用される非線形ブール関数Fは、以下のように定義される。
Figure 0007430923000015
上記のブール関数のうちの2つのみがMD5およびSHA-1の両方で使用されるが、すべてのブール関数は、バイナリ変数
Figure 0007430923000016
に対する要素的なブール演算の合成である。
ビットレベルでは、NOTの演算は、0と1との間の切り替え、すなわち、!1=0および!1=0に相当する。他の3つの要素的演算は、以下のように定義される(なお、
Figure 0007430923000017
は加算モジュロ2に対応する)。
Figure 0007430923000018
左ビット回転演算および加算モジュロ演算は、以下の式で表すことができる。Nビット数xのs桁ごとの左シフト回転yは、以下のように定義される。
Figure 0007430923000019
式中、記号「//」はフロアの分割を示し、記号「<<」および「>>」はそれぞれ左シフトおよび右シフトを示す。右シフトの回転は、y=x>>>=(x>>s)|(x<<(N-s))=x//2+x・2N-smod2と定義される。加算モジュロ2は、加算に続いて2除算後の剰余を計算することを意味する。
a.原像要素を決定するための方法
式(2)H({x,xfixed})≦yの左辺および右辺がバイナリ表記で表される場合、式(2)は、H({x,xfixed})の先頭ビットの数n(yの値によって事前定義される)が0に等しい場合に限り成立する。式(2)を満たす原像要素xを決定することは、nが大きいほど困難である。(b)で表すと、(バイナリ)有限シーケンスbのk番目のビットとされ、式(2)は、以下の方程式系で定式化することができる。
(H({x,xfixed}))=0,k=1,…,n (9)
式(1)、H(x)=y、および式(9)は、バイナリ変数を有する整数混合計画問題、特に制約として線形方程式および/または線形不等式を含む制約を有する整数混合線形計画問題(MILP)としてさらに再定式化することができる。
式(1)および(9)は、双一次関数を含み、バイナリ変数の実現可能な値に対する追加の制約なしの二次制約なしバイナリ最適化問題(QUBO)として定式化することもできる。MILPおよびQUBOの両方は、利用可能な古典的なソルバ(例えば、CPLEX、Gurobi、XPRESS、またはSCIP)を使用して解くことができるが、量子処理デバイスで解くことも可能である。特に、D-Waveなどの量子アニーリングデバイスを使用してQUBOを解くことができる。QUBOは、最適化変数のすべての可能な値の割り振りを含む離散探索空間を含むことができるので、可能な値の割り振りは並列に処理することができ(量子並列度)、原像要素を決定する際の実質的な高速化を達成することができる。
式(1)および(9)などの方程式系を解く任意の顕著な加速は、特に、ブロックチェーンシステムなどのデータの完全性またはプルーフオブワークに依存するシステムのパフォーマンスを大幅に向上させる。現在、ノンス探索には10分の制限時間が許容されている。特にこの状況において、量子アニーリングデバイスは、必要な計算時間を数秒に短縮するのに役立ち得る。
図3は、データ処理システムで実行される、暗号化ハッシュ関数の原像要素を決定するための方法の図形による表示を示す。
最初のステップ10では、式(8)の暗号化ハッシュ関数(MD5またはSHA-1など)で定義される場合のハッシュ関数の演算F,…,Jが得られる。各ハッシュ関数演算F,…,Jについて、1つの対応するハッシュ関数関係または複数の対応するハッシュ関数関係が決定される(ステップ11)。各ハッシュ関数関係は方程式とすることができる。あるいは、複数の対応するハッシュ関数は、不等式の集合であり得る。方程式は、好ましくは低次元の補助的な(初期の)最適化問題を解くことによって決定することができる。
ハッシュ関数関係は、ハッシュ関数演算から直接、または任意選択の中間ステップ11aを介して決定される。ステップ11aにおいて、ハッシュ関数演算F,…,JのNOT、AND、OR、および/またはXORを含む要素的演算が決定され、各要素的演算について、対応する要素方程式および/または要素不等式の集合が決定される。
ハッシュ関数関係を決定した後、MILP、QUBOなどの最適化問題が決定される(ステップ12)。最適化問題は、ハッシュ関数関係から確立されたハッシュ関数の反復ごとの最適化方程式または最適化不等式(制約)の集合を含む。最適化問題は、ハッシュ関数の内部状態(MD5の場合A,B,C,D)および(SHA-1の場合A,B,C,D,E)))および原像変数Mを、最適化変数としてさらに含む。 初期内部状態(A,B,C,…)および最終的内部状態(結果として得られるハッシュの値に対応する)は既知であり、最適化中固定されたままである。特定の反復に割り当てられた制約は、先行する反復に割り当てられた内部状態変数を含む。
任意選択のステップ12aでは、制約および/または最適化変数の数を減らすことができる。これは、制約および/または最適化変数を事前に解くことによって達成することができる。
最適化問題を決定した後、最適化問題が解かれ、最適化問題の最適化変数の集合(オプティマイザ)からハッシュ関数の原像要素が決定される(ステップ13)。
図4は、データ処理システム20の図形による表示を示す。データ処理システム20は、古典的処理デバイス21を備える。さらに、データ処理システム20は、量子処理デバイス22、例えば量子アニーリングデバイスを備えてもよい。古典処理デバイス21と量子処理デバイス22との間でデータの授受が行われてもよい。特に、D-Wave量子アニーリングデバイスを使用する場合、D-Wave Python APIをデータ交換に使用することができる。ステップ10から12は、古典的処理デバイス21内で実行されることが好ましい。また、ステップ13は、古典的処理デバイス21内で実行されてもよい。しかし、ステップ13は、最適化問題が量子処理デバイス22において解かれるときに著しく加速される。
b.要素的演算の要素的関係の決定
ステップ11aに従って要素的関係を決定することは、各要素的演算!x=y,x∧y=z,x∨y=z,および
Figure 0007430923000020
について(要素的)方程式または不等式の集合を確立することを含む。
MILP制約に対する基本的なブール関数での方程式の削減を考慮する。
NOT演算は、バイナリ変数x,yについて、減算の演算を含む式に対応し、以下の等価性をもたらす。
!x=y⇔y=1-x (10)
より一般的には、(ブール関数である)他の要素的演算のうちの1つに対応する線形方程式系を決定するために、それぞれの初期の最適化問題が解かれる。以下では、
Figure 0007430923000021
は、要素的演算q、入力変数の集合
Figure 0007430923000022
および出力
Figure 0007430923000023
のためのジョイントベクトル
Figure 0007430923000024
として定義される。さらに、fは、実現可能な構成の集合を示す。決定される式は、以下の形式を有する。
Figure 0007430923000025
式中、
Figure 0007430923000026
はバイナリ係数の補助ベクトルであり、bは連続係数であり、
Figure 0007430923000027
は連続的な係数のベクトルであり、
Figure 0007430923000028
はバイナリ変数のベクトルである。ベクトルの転置は(・)で表される。特に、式(11)は
Figure 0007430923000029
において線形である。
線形系は、以下を満たさなければならない。
Figure 0007430923000030
初期の最適化問題によって決定されるべき求められる係数は、連続変数
Figure 0007430923000031
である。初期の最適化問題は、MILPとして定式化することができ、以下のように式(12)から求められる。まず、式(12)の付随
Figure 0007430923000032
の数Nが選択される。元の問題における変数の数はNで示される。MILPは、補助制約の集合と目的の関数とからなる。実現可能な構成からの各ベクトルは、連続変数
Figure 0007430923000033
およびN、新しいバイナリ変数
Figure 0007430923000034
の補助制約のうちの1つをもたらす。
Figure 0007430923000035
実行不可能な構成からの各ベクトル
Figure 0007430923000036
に対して、2Naの新しい補助制約が追加される。
Figure 0007430923000037
補助制約の数は指数関数的に増加するが、最も一般的なハッシュ関数は、少数の入力変数および出力変数のみを有する関数を有する。これは、MDハッシュ関数およびSHAハッシュ関数を含んでいた。総和は考慮しない。そのための対応する線形方程式を本発明者らが発明したからである。
結果として、|f|+2Na|f|の補助制約(|f|および|f|はそれぞれ実現可能な構成および実現不可能な構成の数である)およびN+N+1+|f|・Nの変数のMILPが確立される。そのような均一のMILPは多くの解を有する(すべての係数に同じ数を乗算すると解がまた得られる)。したがって、
Figure 0007430923000038
の第1の係数cは1に設定され、追加の補助制約または対応するペナルティ項c=1をもたらす。
次いで、初期の最適化問題は次のようになる。
Figure 0007430923000039
実数値変数を含む
Figure 0007430923000040
およびバイナリ変数を含む
Figure 0007430923000041
を伴う。以下では、例として、要素的演算z=x∧yの要素方程式の決定について説明する。演算の実現可能な構成および実現不可能な構成は以下の通りである。
Figure 0007430923000042
式(13)はcx+cy+cz+ca=bに簡略化され、係数c,c,c,c,bは次のように決定される。
z=x∧y⇔(∃a∈{0,1}:cx+cy+cz+ca=b) (16)
次いで、初期の最適化問題は次のようになる。
Figure 0007430923000043
上記の初期の最適化問題は、最先端のソルバ(CPLEXなど)に直接移されてもよく、あるいは古典的なMINLP(不等式の制約なし)またはMILPに変換されてもよい。
最適化問題は、要素的演算z=x∧yに対して、補助変数aを有する以下の要素方程式をもたらす。
x+y-2z-a=0 (18)
式(18)は、式(18)が成立するようにバイナリaが存在する場合、およびその場合にのみ、バイナリ変数x,y,zのトリプルは、z=x∧yを満たすという意味でz=x∧yに相当する。これは、以下の表(x,y,zの実行可能なトリプルに対する太字の点のゼロ)により分かるように保持されている。
Figure 0007430923000044
式でz=x∧yを表す代わりに、要素的演算は不等式の集合で表すこともできる。
z≦x,z≦y,z≧x+y-1 (19)
重要なことに、x,yがバイナリである場合、およびzが式(19)を満たす場合は、zは別個の値0および1のみをとることができ、zがバイナリであることを明示的に必要としない。これにより、原像のMILP表現の複雑さ、および/またはマイニングの問題を低減することができる。
これに対応して、さらなる要素的演算ORは、
x∨y=z (20)
であり、以下の要素方程式をもたらす。
x+y-2z+a=0 (21)
これは、以下の表を介して確認することができる。
Figure 0007430923000045
(要素的)不等式の集合に関して、要素的演算ORは、以下のように表される。
x≦z,y≦z,z≦x+y,z≦1 (22)
x,yがやはりバイナリであり、zが式(22)を満たしている場合、zは、zがバイナリであることを明示的に要求することなく、別個の値0および1のみをとることができる。
要素的関係XORが、次式の場合
Figure 0007430923000046
対応する要素方程式は、以下となり、
x+y-z-2a=0 (24)
これは、以下の表によって確認することができる。
Figure 0007430923000047
XOR演算は、不等式の集合によって表すこともできる。
z≦x+y,
z≧x-y,
z≧y-x,
z≦2-x-y (25)
上述したように、連続変数zがバイナリxおよびyを伴う以下の式(25)を満たす場合、依然、値0および1をとることしかできない。
c.ハッシュ関数関係の決定
ステップ11で決定されるハッシュ関数関係は、要素的関係と同様に、方程式または不等式であり得る。方程式の場合、式は、式(15)のような形式で初期の最適化問題を解くことによって決定することができる。あるいは、各ハッシュ関数演算を構成する要素的演算に対応する不等式の集合から、不等式の集合を決定することができる。
ハッシュ関数演算F(式(8.1)参照)の場合、
F(x,y,z)=(x∧y)∨(!x∧z) (26)
x,y,zは32ビットワードB、C、およびDからの相互ビットに対応して、以下の式が決定される。
x+3y+2z-6F’+2a-3a+2a=0 (27)
バイナリ変数F’およびバイナリ補助変数、a、a、およびaを含む。要素不等式からハッシュ関数演算のための不等式の集合を決定するために、式(26)は次のように再定式化される。
F(u,v)=u∨v (28)
連続補助変数u=(x∧y)およびv=(!x∧z)を伴う、ただし、実際にはバイナリ値のみをとる。ハッシュ関数演算Fのための不等式の集合は、次のように決定される。
≦x,u≦y,u≧x+y-1,
≦1-x,v≦z,v≧z-x,v≧0,
≦F’,u≦F’,F’≦u+v,F’≦1 (29)
バイナリ変数F’を伴う。式(27)および式(29)は、最適化問題における制約、好ましくはMILPを決定するためにそれぞれ使用することができる。
ハッシュ関数演算Gの場合、
G(x,y,z)=(x∧z)∨(y∧!z) (30)
x,y,zは32ビットワードB、C、およびDからの相互ビットに対応して、以下の式が決定される。
3x+2y-z-6G’-3a+2a+2a=0 (31)
バイナリ変数G’’およびバイナリ補助変数a、a、およびaを含む。要素不等式からハッシュ関数演算のための不等式の集合を決定するために、式(30)は次のように再定式化される。
G(u,v)=u∨v (32)
連続した補助変数u=(x∧z)およびv=(y∧!z)を伴い、バイナリ値をとる。ハッシュ関数演算Gのための不等式の集合は、次のように決定される。
≦x,u≦z,u≧x+z-1,
≦1-z,v≦y,v≧y-z,v≧0,
≦G’,u≦G’,G’≦u+v,G’≦1 (33)
バイナリ変数G’を伴う。
ハッシュ関数演算H(式(8.3)参照)の場合、
Figure 0007430923000048
x,y,zは32ビットワードB、C、およびDからの相互ビットに対応して、以下の式が決定される。
x+y+z-H’-2a=0 (35)
バイナリ変数H’’およびバイナリ補助変数aを含む。要素不等式からハッシュ関数演算のための不等式の集合を決定するために、式(34)は次のように再定式化される。
Figure 0007430923000049
連続した補助変数
Figure 0007430923000050
を伴い、バイナリ値をとる。ハッシュ関数演算Hのための不等式の集合は、次のように決定される。
≦x+y,H’≦u+z,
≧x-y,H’≧u-z,
≧y-x,H’≧z-u
≦2-x-y,H’≦2-u-z (37)
バイナリ変数H’を伴う。
ハッシュ関数演算Iの場合、
Figure 0007430923000051
x,y,zは32ビットワードB、C、およびDからの相互ビットに対応して、以下の式が決定される。
x+2y-z-2I’+a-4a=0 (39)
バイナリ変数I’’およびバイナリ補助変数a、およびaを含む。要素不等式からハッシュ関数演算Iのための不等式の集合を決定するために、式(38)は次のように再定式化される。
Figure 0007430923000052
連続した補助変数u=x∨!zを伴って、バイナリ値をとる。ハッシュ関数演算Iのための不等式の集合は、次のように決定される。
x≦u,1-z≦u,u≦x-z+1,u≦1.
I’≦y+u,I’≧y-u,I’≧u-y,I’≦2-y-u, (41)
バイナリ変数I’を伴う。
ハッシュ関数演算Jの場合、
J(x,y,z)=(x∧y)∨(x∧z)∨(y∧z), (42)
x,y,zは32ビットワードB、C、およびDからの相互ビットに対応して、以下の式が決定される。
x+y+z-2J’-a=0, (43)
バイナリ変数J’’およびバイナリ補助変数aを含む。要素不等式からハッシュ関数演算Jのための不等式の集合を決定するために、式(42)は次のように再定式化される。
J(u,v)=u∨v (44)
連続した補助変数p=(x∧y),q=(x∧z),u=(p∨q),およびv=(y∧z)を伴い、バイナリ値をとる。ハッシュ関数演算Jのための不等式の集合は、次のように決定される。
≦x,p≦y,p≧x+y-1,
≦x,q≦z,q≧x+z-1,
≦y,v≦z,v≧y+z-1,
≦u,q≦u,u≦p+q,u≦1,
≦J’,v≦J’,J’≦u+v,J’≦1 (45)
バイナリ変数J’を伴う。式(43)および式(45)は、最適化問題における制約、好ましくはMILPを決定するためにそれぞれ使用することができる。
ハッシュ関数演算が線形方程式系
Figure 0007430923000053
に作用するシフト演算で、式中
Figure 0007430923000054
が変数のベクトルで、
Figure 0007430923000055
はパラメータの固定ベクトル(最適化中の定数)である場合、対応する変数のリネーミングのみが行われる。
Figure 0007430923000056
に関し、シフトされたベクトル
Figure 0007430923000057
は、右回転(x’=x>>>s)の場合は
Figure 0007430923000058
左回転(x’=x<<<s)の場合は
Figure 0007430923000059
で示す。したがって、シフト演算を適用した後の線形方程式系は、単なる別の再指数化線形方程式系
Figure 0007430923000060
である。
ハッシュ関数演算が加算モジュロ演算である場合、a∈Zに作用する、すなわち、
Figure 0007430923000061
被加数b∈Zに関し、式(46)の各ビットの桁が考慮されるべきである。aj,bがaとbの第jビットである式
Figure 0007430923000062
それぞれを展開すると、式(46)は、以下に相当する。
Figure 0007430923000063
式中Cは、aおよびbの第iビットのキャリービット数である。
ハッシュ関数演算F,G,H,I,およびJのためのMILP制約のための決定されたハッシュ関数式から開始して、対応するQUBOペナルティ項を決定することができる、すなわち、
(F,B,C,D,A,A)=-2BC+2BD+4BF+4BA+4BA-4CF
-4CA+4DA+4FA+4FA-4B+4C-2D-2F-4A+4
(G,B,C,D,A,A)=2BD-4BG+4BA-2CD-4CG
+4CA+4DA-4DA-4GA-4GA+2C+6G+4A
=(H,B,C,D,A,A)=4BD-4BA-4BA-4CH-4CA+4CA
-4DA-4DA+4HA-4HA+2B+2C+2D+2H+4A+4A
=(I,B,C,D,A,A)=-2BD+4BA+4BA+4CI+4CA
-4CA-4DA-4DA+4IA-4IA-2C+2D-2I+8A+2
(J,B,C,D)=2BC+2BD-4BJ+2CD-4CJ-4DJ+6J (48)
式(48)のQUBOペナルティは、対応する決定されたハッシュ関数方程式をMILP形式で二乗することによって直接得られるものよりも効率的な最適化を必ずしももたらさない。上記のQUBOペナルティは、例えば、より多くのバイナリ補助変数を含むことができる。
一般に、離散的な変数が多いほど、使用される潜在可能性がある分岐の限定されたアルゴリズム探索木のサイズが大きくなるため、付加的なバイナリ変数は、回避するべきである。一方、最先端のMILPソルバは、パフォーマンスを著しく損なうことなく、数千の連続変数を許容することができる。
さらに、1つのハッシュ関数演算に対して1つの方程式の代わりに不等式の集合を使用する場合、実行可能な不等式の集合を作成する異なる代替的な方法がある。
d.最適化問題の決定
ハッシュ関数関係を決定した後、ステップ12に従って最適化問題を決定する。この目的のために、暗号化ハッシュ関数の各反復内でのハッシュ関数関係は、図1または2に示すように、ハッシュの値を計算するときに、それらの(時系列の)順序に対応して結合される。
MD5の場合、および、初期内部状態のデータブロック(内部状態変数)B,C,およびDから始まって、ハッシュ関数関係として方程式を使用するとき、最適化問題の第1の制約は、
Figure 0007430923000064
,C,D,Fおよび補助変数ベクトル
Figure 0007430923000065
を、それぞれ式(27)における変数x,y,z,F,および(a,a,a)について(第1ラウンドの)ハッシュ関数演算子Fの式に挿入することによって、決定される。続いて、図1に従って、原像変数Mμ(1)および定数Kを用いたモジュラ加算F=F(B,C,D)が実行される。式(47)の対応するハッシュ関数関係にF、Mμ(1)、およびKを挿入し、方程式の左辺にあるすべての項を配置し、制約
Σ(F,A,Mμ(1),K,FM,ξ1,1)=0 (50)
は、補助変数ξ1,1を伴って決定される。これに続いて、得られた項FMがシフトされて、Bに追加され、次の制約が得られる。
Figure 0007430923000066
これは、補助変数ξ1,2を伴う。結果として得られるモジュラ加算の項は、次の反復に割り当てられる内部状態変数Bに対応する。内部状態変数B,C,およびDを、次の反復に割り当てられるそれぞれの内部状態変数C,D,およびAに割り当てることを表すために、さらなる制約が決定される。
要約すると、最初の反復に割り当てられた以下の制約が決定される。
Figure 0007430923000067
後続の反復に割り当てられる制約は同様に決定され、以下の制約の集合(ここでは最適化方程式)が得られる。
Figure 0007430923000068
式(53)は、式(53)のすべての制約を満たす実現可能な解を決定する制約充足問題(CSP)をもたらす。特に、A64、B64、C64、D64は、ハッシュの値yの一部であり、k=1、...、16の場合のMは、ハッシュ関数の引数の一部(原像要素)である。
一般に、変数A,B,C,D,A64,B64,C64,D64,およびKfork=1,…,64は既知であり、最適化の最中固定される。残りの変数は、最適化変数を構成する。
最適化方程式の場合、すべてのMは事前に未知であり、A64、B64、C64、D64は固定である。
最適化不等式(式(9)を参照)の場合、Mの一部(例えば、k=3、...、16)は固定され、残りのもの(例えば、M、M)のみが未知の変数である。さらに、A64、B64、C64、D64の各々を有限シーケンスとして扱う場合、例えば、A64は0ビットシーケンスに固定され、残りの変数は任意の値をとることができる。
次いで、最適化問題、すなわち制約(式(53))のMILPが解かれ、最適化変数の最適値が得られる。メッセージブロックMの最適値は、暗号化ハッシュ関数MD5の原像要素の1つを構成する。SHA-1および他の暗号化ハッシュ関数の場合、制約は同様に決定することができる。
任意選択の事前に解くステップ12aでは、制約および/または最適化変数の数を減らすことができる。制約を解析することにより、全体として最適化問題を解く前に、一部の最適化変数の値を決定することができる。例えば、以下を含む制約で開始すると、
Figure 0007430923000069
関係x+y=1-z≦1を決定することができ、このことから、x+y=1およびz=0の関係を決定することができる。続いて、より少ない最適化変数/制約を伴う修正された制約の集合が決定される。
Figure 0007430923000070
事前に解くことはまた、SCIPの中のPaPILOといった事前に解く際のライブラリーを使用することによって、行うことができる。
最適化問題をMILPとして決定して解く代わりに、最適化問題をQUBO問題として決定して解くこともできる。特に、MILP(式(53)および(54))をQUBOに変換することができる。これに対して、制約(式(53))がそれぞれ二乗され、合計され、その結果、QUBO目的関数fQUBOが最小化される。
Figure 0007430923000071
最適化問題は、利用可能なソルバを使用して解くこともできる。MILPおよびMINLPは、例えばCPLEX、Gurobi、Fico XPRESS、ParaSCIP、FiberSCIP、および/またはオープンソースSCIPを使用して古典的に解くことができる。QUBO問題は、一般的なアニーリングソルバ、例えば、デジタルアニールおよび/またはSimulated Bifurcation Machineを使用して、古典的に解決することができる。
量子処理デバイスを用いてQUBO問題を解く場合、量子アニーリングデバイス(例えば、D-Waveアニールデバイス)を用いることができる。この目的のために、QUBO目的関数fQUBOが量子アニーリングデバイスに伝達される。次に、量子アニーリングデバイスでQUBOが解かれ、最適化変数、特に原像変数Mの最適値の最適値割り当てが得られる。これにより、暗号化ハッシュ関数の原像要素を決定することができる。
本明細書、図および/または特許請求の範囲に開示された特徴は、単独でまたはそれらの様々な組み合わせで解釈される、様々な実施形態の実現のための材料であり得る。

Claims (15)

  1. データ処理システム(20)で実行される、暗号化ハッシュ関数の原像要素を決定するための方法であって、
    -暗号化ハッシュ関数の出力値および前記暗号化ハッシュ関数のハッシュ関数演算をもたらすステップ(10)と、
    -前記ハッシュ関数演算の各々について、方程式および/または不等式を含む少なくとも1つのハッシュ関数関係を決定するステップ(11)と、
    -最適化問題を決定するステップ(12)であって、
    -前記出力値と、
    -前記暗号化ハッシュ関数の反復に割り当てられた少なくとも1つの制約と、
    -前記暗号化ハッシュ関数の内部状態変数と少なくとも1つの原像変数とを含む最適化変数であって、
    前記少なくとも1つの制約は、前記少なくとも1つのハッシュ関数関係から決定され、先行する反復に割り当てられた先行する内部状態変数を含む、最適化変数を含む、最適化問題を決定するステップと、
    -前記最適化問題を解き(13)、前記少なくとも1つの原像変数の最適化した値から前記暗号化ハッシュ関数の原像要素を決定するステップと
    を含む、方法。
  2. 前記ハッシュ関数演算は、非線形ブール関数、左ビット回転、右ビット回転、およびモジュラ加算のうちの少なくとも1つ、特に、
    Figure 0007430923000072
    の少なくとも1つを含む、請求項1に記載の方法。
  3. -前記ハッシュ関数演算のうちの少なくとも1つの要素的演算を決定するステップと、
    -前記要素的演算の各々について、要素方程式および/または要素不等式を含む少なくとも1つの要素的関係を決定するステップ(11a)と、前記少なくとも1つのハッシュ関数演算の前記要素的関係から前記少なくとも1つのハッシュ関数関係を決定するステップと、をさらに含む、請求項1または2に記載の方法。
  4. 前記ハッシュ関数関係のうちの少なくとも1つおよび/または前記要素的関係のうちの少なくとも1つは、双線形方程式および/または線形方程式を含、請求項に記載の方法。
  5. 前記ハッシュ関数関係のうちの少なくとも1つおよび/または前記要素的関係のうちの少なくとも1つは、複数の連続変数、複数のバイナリ変数、および、複数の整数の変数のうちの少なくとも1つを含み、
    前記複数の連続変数のうちの少なくとも1つおよび/または前記複数のバイナリ変数のうちの少なくとも1つが、初期の最適化問題を解くことによって決定される、請求項4に記載の方法。
  6. 前記ハッシュ関数関係のうちの少なくとも1つおよび/または前記要素的関係のうちの少なくとも1つは、連続的な係数、およびバイナリ変数の線形方程式を含む、請求項に記載の方法。
  7. 前記最適化問題を解くときに、初期内部状態の値および/または最終的内部状態の値が固定される、請求項1から6のいずれか一項に記載の方法。
  8. 前記最適化問題を解く前に、前記最適化問題を少なくとも部分的に事前に解くステップ(12a)をさらに含む、請求項1から7のいずれか一項に記載の方法。
  9. 前記最適化問題は、整数混合線形プログラム、整数混合非線形プログラム、または二次の非制約バイナリ最適化問題である、請求項1から8のいずれか一項に記載の方法。
  10. 前記最適化問題は、前記データ処理システム(20)の量子処理デバイス(22)において少なくとも部分的に解かれる、請求項1から9のいずれか一項に記載の方法。
  11. 前記最適化変数は量子状態の重ね合わせに割り当てられ、および/またはオプティマイザは、前記最適化問題の最小値である、請求項10に記載の方法。
  12. 前記暗号化ハッシュ関数は、情報のセキュリティをもたらし、および/またはMD4、MD5、SHA-1、およびSHA-2のうちの1つである、請求項1から11のいずれか一項に記載の方法。
  13. 前記原像要素は、デジタル署名および/または検証されるメッセージおよび/またはデータファイルを含む、請求項1から12のいずれか一項に記載の方法。
  14. コンピュータプログラムであって、前記コンピュータプログラムがデータ処理システム(20)で実行されると、前記データ処理システム(20)に、請求項1から13のいずれか一項に記載の方法のステップを実行させる命令を含む、コンピュータプログラム。
  15. 暗号化ハッシュ関数の原像要素を決定するように構成されたデータ処理システム(20)であって、
    -暗号化ハッシュ関数の出力値および前記暗号化ハッシュ関数のハッシュ関数演算をもたらすステップ(10)と、
    -前記ハッシュ関数演算の各々について、方程式および/または不等式を含む少なくとも1つのハッシュ関数関係を決定するステップ(11)と、
    -最適化問題を決定するステップ(12)であって、
    -前記出力値と、
    -前記暗号化ハッシュ関数の反復に割り当てられた少なくとも1つの制約と、
    -前記暗号化ハッシュ関数の内部状態変数と少なくとも1つの原像変数とを含む最適化変数であって、
    前記少なくとも1つの制約は、前記少なくとも1つのハッシュ関数関係から決定され、先行する反復に割り当てられた先行する内部状態変数を含む、最適化変数を含む最適化問題を決定するステップと、
    -前記最適化問題を解き(13)、前記少なくとも1つの原像変数の最適化した値から前記暗号化ハッシュ関数の原像要素を決定するステップと
    を実行することによって、暗号化ハッシュ関数の原像要素を決定するように構成されたデータ処理システム。
JP2021186248A 2020-11-25 2021-11-16 暗号化ハッシュ関数の原像要素を決定するための方法、コンピュータプログラム、およびデータ処理システム Active JP7430923B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP20209837.2A EP4007205A1 (en) 2020-11-25 2020-11-25 Method for determining a preimage element of a cryptographic hash function, computer program, and data processing system
EP20209837 2020-11-25

Publications (2)

Publication Number Publication Date
JP2022083992A JP2022083992A (ja) 2022-06-06
JP7430923B2 true JP7430923B2 (ja) 2024-02-14

Family

ID=73597960

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021186248A Active JP7430923B2 (ja) 2020-11-25 2021-11-16 暗号化ハッシュ関数の原像要素を決定するための方法、コンピュータプログラム、およびデータ処理システム

Country Status (7)

Country Link
US (1) US20220166627A1 (ja)
EP (1) EP4007205A1 (ja)
JP (1) JP7430923B2 (ja)
KR (1) KR20220072760A (ja)
CN (1) CN114547638A (ja)
AU (1) AU2021269358B2 (ja)
CA (1) CA3139493A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR3140457A1 (fr) * 2022-10-04 2024-04-05 Marbeuf Conseil Et Recherche Méthode d’amélioration de hachage d’un fichier

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017515195A (ja) 2014-03-12 2017-06-08 テンポラル ディフェンス システムズ, エルエルシー 断熱量子計算を介してデジタル論理制約問題を解く
JP2019145970A (ja) 2018-02-19 2019-08-29 日本電信電話株式会社 検索装置、検索方法及び検索プログラム

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7424451B1 (en) * 2000-10-10 2008-09-09 International Business Machines Corporation System and method of solving optimization problems using prestored advanced bases
US10200390B2 (en) * 2016-02-29 2019-02-05 Palo Alto Networks, Inc. Automatically determining whether malware samples are similar
US20210256113A1 (en) * 2020-02-14 2021-08-19 Bank Of America Corporation Blockchain Validation of Software

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017515195A (ja) 2014-03-12 2017-06-08 テンポラル ディフェンス システムズ, エルエルシー 断熱量子計算を介してデジタル論理制約問題を解く
JP2019145970A (ja) 2018-02-19 2019-08-29 日本電信電話株式会社 検索装置、検索方法及び検索プログラム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
細部 博史,Chorus: モジュール機構を備えた幾何制約解消系,レクチャーノート/ソフトウェア学 24 インタラクティブシステムとソフトウェアVIII,株式会社近代科学社,2000年12月20日,第1版,pp. 91-100,ISBN4-7649-0285-0

Also Published As

Publication number Publication date
KR20220072760A (ko) 2022-06-02
JP2022083992A (ja) 2022-06-06
EP4007205A1 (en) 2022-06-01
AU2021269358B2 (en) 2024-02-01
CN114547638A (zh) 2022-05-27
AU2021269358A1 (en) 2022-06-09
CA3139493A1 (en) 2022-05-25
US20220166627A1 (en) 2022-05-26

Similar Documents

Publication Publication Date Title
EP0917047B1 (en) Apparatus for modular inversion for information security
JP4197710B2 (ja) 暗号装置、復号装置、プログラム及び方法
JP2017515195A (ja) 断熱量子計算を介してデジタル論理制約問題を解く
JP7430923B2 (ja) 暗号化ハッシュ関数の原像要素を決定するための方法、コンピュータプログラム、およびデータ処理システム
Ramos-Calderer et al. Quantum search for scaled hash function preimages
He et al. Improved cube attacks on some authenticated encryption ciphers and stream ciphers in the Internet of Things
Burek et al. Algebraic attacks on block ciphers using quantum annealing
Song et al. Grover on SM3
CN116318660B (zh) 一种消息扩展与压缩方法及相关装置
JP7069460B2 (ja) 暗号処理装置、暗号処理方法、及び暗号処理プログラム
WO2022079891A1 (ja) 秘匿msb正規化システム、分散処理装置、秘匿msb正規化方法、およびプログラム
Yadav et al. A practical-quantum differential attack on block ciphers
Chung et al. Encoding of rational numbers and their homomorphic computations for FHE-based applications
US7401110B1 (en) System, method and apparatus for an improved MD5 hash algorithm
JP7261502B2 (ja) 暗号処理装置、暗号処理方法、及び暗号処理プログラム
JP7185346B1 (ja) 暗号処理装置、暗号処理方法、及び暗号処理プログラム
da Silva et al. Experiments with Clifford geometric algebra applied to cryptography
WO2022270080A1 (ja) 暗号処理装置、暗号処理方法、及び暗号処理プログラム
WO2022044464A1 (ja) 暗号処理装置、暗号処理方法、及び暗号処理プログラム
Gong et al. Combining MILP Modeling with Algebraic Bias Evaluation for Linear Mask Search: Improved Fast Correlation Attacks on SNOW
WO2021144973A1 (ja) 秘密最大値計算装置、方法及びプログラム
Kumar et al. A secure structure for hiding information in a cryptosystem based on machine-learning techniques and content-based optimization using portfolio selection data
WO2024023366A1 (en) Method and apparatus for storing/recovering a plurality of secret shares
JP2021113956A (ja) 秘匿演算装置、秘匿演算方法及び秘匿演算プログラム
Martínez-Martínez et al. A matrix numerical methods comparative study in modular inverse computation with a symmetric cryptography perspective

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220308

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20230228

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230404

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20230627

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20231003

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240125

R150 Certificate of patent or registration of utility model

Ref document number: 7430923

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150