JP2008545163A - セキュアハッシュ関数の強化 - Google Patents

セキュアハッシュ関数の強化 Download PDF

Info

Publication number
JP2008545163A
JP2008545163A JP2008519339A JP2008519339A JP2008545163A JP 2008545163 A JP2008545163 A JP 2008545163A JP 2008519339 A JP2008519339 A JP 2008519339A JP 2008519339 A JP2008519339 A JP 2008519339A JP 2008545163 A JP2008545163 A JP 2008545163A
Authority
JP
Japan
Prior art keywords
block
sub
message
medium
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.)
Pending
Application number
JP2008519339A
Other languages
English (en)
Other versions
JP2008545163A5 (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.)
Microsoft Corp
Original Assignee
Microsoft 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 Microsoft Corp filed Critical Microsoft Corp
Publication of JP2008545163A publication Critical patent/JP2008545163A/ja
Publication of JP2008545163A5 publication Critical patent/JP2008545163A5/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • 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
    • H04L9/0631Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04KSECRET COMMUNICATION; JAMMING OF COMMUNICATION
    • H04K1/00Secret communication
    • H04K1/04Secret communication by frequency scrambling, i.e. by transposing or inverting parts of the frequency band or by inverting the whole band
    • 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/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

Abstract

セキュアハッシュ関数を強化するシステムおよび/または方法を説明する。いくつかの実施形態では、これらのシステムおよび/または方法は、メッセージに基づいて、かつあるプロセスを用いて、無作為に現れる要素を生成し得る。次いで、この要素とメッセージを組み合わせることができる。セキュアハッシュ関数を用いてこのアセンブリをハッシュすることができる。同じプロセスおよびセキュアハッシュ関数を用いて、このメッセージを後で認証することができる。

Description

本発明はセキュアハッシュ関数の強化に関するものである。
セキュアハッシュ関数は、メッセージを認証するのにしばしば用いられる。例えば、デジタル署名は、セキュアハッシュ関数に依存している。ある人は、セキュアハッシュ関数を使用して計算したドキュメントのハッシュに署名することによって、そのドキュメントにデジタル的に署名することができる。その後、このデジタル署名は、その人が署名したということになっているドキュメントのハッシュを同じハッシュ関数を用いて計算することによって認証することができる。これら第1のハッシュと第2のハッシュが同じであれば、これらのドキュメントは同じものとみなされる。これらのドキュメントが同じであれば、このデジタル署名は信頼できる。
これら2つのドキュメントは、同じものとみなされるだけであり、同じものとわかっているわけではない。というのは、2つの異なるドキュメントのハッシュが同じになることがあり得るからである。これを「衝突」と呼ぶ。
衝突の例を数学用語で示すことができる。セキュアハッシュ関数「H(M)」は任意長のメッセージ「M」に対して演算を行うことができ、固定長のハッシュ「h」を戻すことができると仮定する。そのため、「h=H(M)」になる。ここで、「h」の長さは固定されている。しかし、この場合、メッセージ「M」が固定長ハッシュ「h」よりも大きければ、2つの異なるメッセージ「M」および「M」が等価なハッシュ「h」を有し、「H(M)=H(M)」となる可能性が残る。「H(M)=H(M)」となる場合、衝突が起こったことになる。
衝突の確率は、任意の特定のメッセージが信頼できる確率を確認するのに重要である。例えば、160ビットのハッシュを生成するセキュアハッシュ関数では、2つの無作為なメッセージが同じハッシュを有する確率は2160分の1である。しかし、一群の無作為なメッセージがあり、この中の任意の2つのメッセージのハッシュが同じになり得るには、このメッセージの集合の大きさは、思うほど大きくなくてよい。ある集合の任意の2つのメッセージが同じハッシュを有することがあり得るためには、この集合は、160ビットのハッシュでは、約280個のメッセージを有するだけでよい。
したがって、衝突を起こさせようとする場合、すなわち、2つのドキュメントが同じハッシュをもつようにしようとする場合、160ビットのハッシュでは、約280回またはそれよりも少ない試みでこのような衝突を1回起こすことができる。例えば、ウィリーがジョージを詐欺にかけたいとする。ウィリーは、2つの契約書を作成することができるはずである。一方はジョージに有利なものであり、他方はウィリーに極めて有利なものである。ウィリーは、これらのドキュメントにそれぞれ小さな変更を加え(例えば、スペースを追加し)、各ドキュメントについてハッシュを計算することができる。ウィリーは、このように変更を加えたウィリーに有利な契約書の1つについてのハッシュ値がジョージに有利な契約書の1つについてのハッシュ値と一致するまで、この操作を継続することができる。こうすることによって、ウィリーは、ジョージに有利な契約書「M」とウィリーに有利な契約書「M」の間で衝突を起こすことができ、その結果「H(M)=H(M)」になる。ウィリーは、そうした後で、ジョージに、ある手順を用いてジョージに有利な契約書に署名させ、ここでジョージはハッシュ値「h」に署名することになる。その後なんらかの時点で、ウィリーは、ジョージが署名したジョージに有利な契約書を、ジョージが署名していないウィリーに有利な契約書にすり替える。これで、ウィリーは、審判者(例えば、司法裁判所の裁判官)に、ウィリーに有利な契約書にジョージが署名したことを納得させることができる。というのは、ウィリーに有利な契約書のハッシュが、ジョージに有利な契約書についてのジョージの署名のハッシュ値「h」と一致するからである。
160ビットのハッシュのような大きなハッシュでこのような衝突を起こさせることは、最近まで極めて困難であると考えられていた。280個のメッセージについてハッシュを改変し計算するには、何百台ものコンピュータでも、現在の処理スピードでは何百年ないし何千年もかかる。しかし、最近では、制御された小さな変更をメッセージのビットに加えることによって、269個のメッセージで衝突は可能であると言う人もいる。これが本当なら、現在の処理スピードでも数ヶ月で、数百台のコンピュータを使用して衝突を起こすことが可能になり得る。今後、5年ないし10年のうちに、おそらくは、1台のコンピュータで1年もかからずに衝突を起こすことができるようになるかもしれない。
このようなことが具体的に可能であり、また、他の種類の攻撃では、潜在的には理想よりも簡単に衝突が起こるので、人々は、ある種のセキュアハッシュ関数の安全性および有用性を疑うようになった。
セキュアハッシュ関数を強化するシステムおよび/または方法(「ツール」)を説明する。いくつかの実施形態では、これらのツールは、メッセージに基づいて無作為に現れる要素を生成し得る。次いで、これらのツールは、要素とメッセージを組み合わせることができる。セキュアハッシュ関数を用いてこの組合せ体(アセンブリ)をハッシュすることができる。ここで、得られたハッシュは、同じセキュアハッシュ関数で、要素を伴わないメッセージから計算されたハッシュと同じ長さのものである。こうすることにより、これらのツールは、衝突を起こそうとするある種の攻撃の有効性を削減することによりセキュアハッシュ関数を強化することができる。
いくつかの他の実施形態では、これらのツールは、メッセージのサブブロックを暗号化し、これらのサブブロックと暗号化されたサブブロックの排他的論理和(XOR)を計算し、これらのサブブロックとXORサブブロックを組み合わせることができる。こうすることによって、メッセージのビット操作では容易に制御可能にならないビットの再現可能なアセンブリをハッシュすることができる。こうして得られたハッシュは、メッセージそのものから計算されたハッシュよりも安全になり得る。
この「発明の開示」は、「発明を実施するための最良の形態」で以下にさらに説明する概念を抜粋し簡略化して紹介するためのものである。この「発明の開示」は、特許請求の範囲に記載された主題の主要な、または不可欠な特徴を特定することを意図するものではなく、また、特許請求の範囲に記載された主題の範囲を決定する助けとして用いることを意図するものでもない。
以下の開示および図を通して、同じ番号を用いて同様の構成要素および特徴を参照する。
概要
以下、セキュアハッシュ関数を強化し得る1つ(または複数)のシステムおよび/または1つ(または複数)の方法(「ツール」)を説明する。これらのツールは、衝突を起こさせようとするある種の攻撃の有効性を削減することによってセキュアハッシュ関数を強化し得る。例えば、これらのツールは、制御された小さな変更をメッセージのビットに加えることに基づく攻撃に対してセキュアハッシュ関数を強化し得る。
いくつかの実施形態では、これらのツールは、メッセージに基づいて、かつ、あるプロセスを用いて、無作為に現れる要素を生成し得る。次いで、これらのツールは、この要素とメッセージを組み合わせることができる。このアセンブリはセキュアハッシュ関数を用いてハッシュすることができ、得られたハッシュは、同じセキュアハッシュ関数で、このメッセージから計算されたハッシュと同じ長さのものである。別のメッセージに基づいて、かつ、同じプロセスを用いて、別の無作為に現れる要素を生成することもでき、得られた別の無作為に現れる要素は、これらのメッセージが同じであれば、最初の無作為に現れる要素と同じある。こうすることによって、将来のある時点で、この別のメッセージから別のアセンブリを生成し得る。ここで、この別のアセンブリから計算されたハッシュは、これらのメッセージが同じ場合には、最初のアセンブリから計算されたハッシュと同じになる。こうすることによってメッセージが認証される。
別の実施形態では、これらのツールは、メッセージのブロックに対してブロック暗号を実施し、その結果、暗号化されたブロックが得られる。次いで、これらのツールは、暗号化されたブロックと上記ブロックの加算、減算、または排他的論理和(「XOR」)などの演算を行い、その結果、加算、減算、またはXORによるブロックが得られる。その後、これらのツールは、加算、減算、またはXORによるブロックと、上記ブロックとを組み合わせ、その結果、組み合わされたブロックが得られる。次いで、これらの組み合わされたブロックをハッシュすることができる。こうして組み合わされたブロックのビットは、メッセージのビットを改変することによって容易に制御できるようにはならず、メッセージのビットを注意深く改変することによって衝突を起こそうとする試みが潜在的に妨げられる。
別の実施形態では、これらのツールは、メッセージのブロックをサブブロックに分割することもできる。次いで、これらのツールは、これらのサブブロックの1つまたは複数に基づいて暗号キーを計算する。これらのツールは、このキーを含む暗号関数でサブブロックを暗号化し、それによって、暗号化されたサブブロックが提供される。ここで、このキーは、暗号化されるサブブロックとは異なるサブブロックから計算する。この操作は、暗号化されたサブブロックの数が上記サブブロックの数に等しくなるまで繰り返すことができる。次いで、暗号化されたサブブロックと上記サブブロックを連結する。この連結の結果、上記ブロックと同じサイズの2つの連結されたブロックが得られる。これらの連結されたブロックはそれぞれ、サブブロックおよび暗号化されたサブブロックを備える。これらのツールはまた、サブブロックと暗号化されたサブブロックを備えるように、連結された各ブロックを構築することができ、これら暗号化されたサブブロックは、これら2つの連結されたブロックの他方のブロックのサブブロックから計算されたキーを用いて暗号化される。これらの連結されたブロックをセキュアハッシュ関数でハッシュすることができる。
動作環境の例
これらのツールを詳細に説明する前に、以下に動作環境の例を論じて、どこで、かつどうやってこれらのツールを採用し得るかを理解する助けとする。以下の説明は一例を示しているが、これらのツールを1つの特定の動作環境にだけ限定して応用することを意図するものではない。
図1に、1つのこのような動作環境を全体的に100で示す。動作環境100は、1つ(または複数)のプロセッサ104およびコンピュータ可読媒体106を含むコンピュータ102を備える。これらのプロセッサは、コンピュータ可読媒体106にアクセスし、かつ/またはそれらを実行することができる。コンピュータ可読媒体は、セキュアハッシュを計算し得るハッシュ生成器108と、セキュアハッシュ関数を強化し得るハッシュプリプロセッサ110と、第1メッセージ112および第2メッセージ114の2つのメッセージとを備えるか、あるいはこれらにアクセスし得る。
メッセージの前処理
以下の説明では、動作環境100の要素が、あるメッセージのハッシュを計算する前に、このメッセージを処理することによってセキュアハッシュ関数を強化し得る方法の例を論じる。このプロセスは、敵対者によるハッシュ計算対象ビット制御を削減するのに有効である。
図2を参照すると、第1メッセージ112を処理するための流れ図の例200が示されている。流れ図200には、環境100の要素による1組の動作と、これらの動作に付随する要素間の通信とを示す。これらの動作および付随する通信を矢印で示す。この流れ図は、任意の適切なハードウエア、ソフトウエア、ファームウエア、またはこれらの組合せで実施し得る。ソフトウエアおよびファームウエアの場合、この図は、コンピュータが実行可能な命令として実施される演算の組を表す。
矢印1のところで、ハッシュプリプロセッサ110は、第1メッセージ112に基づいて、再現性があり、無作為に現れる要素202を計算する。この要素は、先のツールにより、このメッセージの一部およびこのメッセージの暗号化部分の論理演算、例えば、以下の実施形態で説明する論理演算を行うことによって計算することができる。要素202は、実際には無作為ではないが、第1メッセージのビットの変更では容易に制御されない程度に十分に無作為に現れる。この要素は再現可能である。すなわち、同じメッセージと、要素を生成するための同じ手順とに基づいて同じ要素を生成することができる。従って、2つの同じメッセージを同じやり方で処理し、得られるアセンブリを同じハッシュ関数を用いてハッシュすると、これらの同じメッセージのハッシュは同じになる。このようにして、このハッシュを用いてメッセージを認証することができる。
矢印2のところで、ハッシュプリプロセッサ110は、第1メッセージ112および要素202を含むアセンブリ204を構築する。このアセンブリは、容易には制御し得ないビットを含む。そのため、このアセンブリは、第1メッセージ112のビットと、これらのビットに依存するビット(要素202)とを含み、このアセンブリのビットは、第1メッセージを操作することによる悪意のある操作を容易には受けない。この実施形態では、このアセンブリは、第1メッセージに基づいてこのアセンブリが再現し得るように上記要素と第1メッセージを任意に組み合わせたものとし得る。
矢印3のところで、ハッシュ生成器108は、このアセンブリのハッシュを計算する。このハッシュは、ハッシュ生成器のハッシュ関数と同じハッシュ関数および同じ要素を用いて第1メッセージを認証するのに有効である。この要素は、ハッシュプリプロセッサによって同じやり方で同じ第1メッセージを処理することによって同じものになる。
この実施形態では、ハッシュ生成器108は改変されない。そうではなくて、ハッシュ計算の対象であるビットを改変するのであり、ハッシュ関数自体を改変するのではない。こうすると、標準のセキュアハッシュ関数およびシステム、例えば、セキュアハッシュアルゴリズム−1(「SHA−1」)およびセキュアハッシュシステム(SHS)を使用し続けることができる。
敵対者は、あるメッセージ自体のビットを完全に制御し得ることがあるが、流れ図200で説明したようにこのメッセージを前処理することによって、敵対者は、ハッシュ計算の対象であるこれらのビットの多くを制御することができなくなる。というのは、ハッシュは、メッセージそのものからではなく、前処理したメッセージから計算されるからである。現在は、衝突(2つの異なるメッセージで同じハッシュ)を起こしたい敵対者は、メッセージのハッシュ予定ブロックの開始ビットに、制御された小さな変更を加えることによって衝突を起こそうとし得る。しかし、先のツールは、流れ図200に従って、敵対者のメッセージと別のメッセージの衝突の確率を上げる敵対者の能力を削減することができる。敵対者がメッセージに小さな変更を加えると、前処理されたメッセージは大きく改変されることになり、敵対者の衝突生成能力は潜在的に減る。
ブロック暗号化および排他的論理和演算
以下の節では、先のツールがブロック暗号化および排他的論理和演算を用いてセキュアハッシュ関数を強化する方法の例を説明する。以下の説明は特許請求する主題の適用範囲を限定するものではないことを理解されたい。
図3に、プロセスの例300を示す。ここで、プロセスの例300は、個々の演算または動作を表す一連のステップとして示されている。以下で説明する実施形態では、ハッシュプリプロセッサ110などの図1の動作環境100の要素がこのプロセスを実施する。本明細書で開示する上記その他のプロセスは、任意の適切なハードウエア、ソフトウエア、ファームウエア、またはこれらの組合せで実施し得る。ソフトウエアおよびファームウエアの場合、これらのプロセスは、コンピュータが実行可能な命令として実施される1組の演算を表し、これらの命令は、コンピュータ可読媒体106に格納され、1つ(または複数)のプロセッサ104によって実行可能なものである。
ステップ302では、メッセージがブロックに分割される。これらのブロックは、セキュアハッシュ関数が扱い得るサイズのものとし得る。図4に示す実施形態では、ハッシュプリプロセッサ110は、第1メッセージ112を一連の512ビットのブロックに分割する。これらのブロックのうち3つを402で示す。
ステップ304では、メッセージがサブブロックに分割される。各サブブロックは、ブロック402などのより大きなブロックから分割することができる。図に示す実施形態では、各ブロック402から4つの128ビットのサブブロック404に分割される。これらのブロックの1つから分割されたサブブロックを「A」、「B」、「C」、および「D」と名付けて示す。
ステップ306では、メッセージのサブブロックが暗号化されて、暗号化されたサブブロックが得られる。一実施形態では、ステップ306で、メッセージのサブブロックが暗号化されて、暗号化されたサブブロックが得られるが、サブブロックの数は任意とし得る。
「K」、「L」、および「T」と称する3つの演算を実施し得る。関数Kはキーを生成する。関数Lは、このキーが公開された場合でも暗号を不可逆性にするパッドを生成する。関数Tは、サブブロックの変換が高い確率で1対1のままであることを保証するタグ(「t」)を生成する。上記は、4つのサブブロックA、B、C、およびDで数学的に以下のように表し得る。
K(A,B,C,D)=α,β,γ,δ
L(A,B,C,D)=A’,B’,C’,D’
key(A,B,C,D)=t
より一般には、上記は、次のように数学的に表し得る。
α(A)=R、Eβ(B)=S、Eγ(C)=P、Eδ(D)=Q
U=R+A’、V=S+B’、W=P+C’、X=Q+D’
U,V,W,X(A,B,C,D)=t
上記出力t、U、V、W、およびXを用いて、あるケースを示すことができる。ここで、
K(A,B,C,D)=CD,CD,AB,AB
L(A,B,C,D)=A,B,C,D
key(A,B,C,D)=A,B,C,D
である。
敵対者にキーとしてABを選択させないように、関数Kを次のようにし得る。
K(A,B,C,D)=CD,CD,RS,RS
これらのブロックをさらに混ぜ合わせるには、別の全単射関数を用いることもできる。
上記プロセスの例を以下に示す。ここで、ステップ306では、元のサブブロックA、B、C、およびDがブロック暗号で暗号化される。ステップ306では、ハッシュプリプロセッサ110を使用してそうすることができ、それによって、暗号キー「」を含む暗号関数「E」を用いてサブブロックAが暗号化される。ここで、「R」は、サブブロックAを暗号化した結果であり、暗号化されたサブブロックと呼ぶ。暗号キーは、同じブロックから分割された別のサブブロックのビットから導出され、この場合は、サブブロックB、C、D、またはB、C、および/またはDの組合せのいずれかである。この実施形態では、このキーは、サブブロックCおよびDから導出され、そのため、「cd」と名付ける。これは数学的に次のように表すことができる。
cd(A)=R
使用する暗号関数は、128ビットの新暗号規格(Advanced Encryption Standard)(「AES」)による暗号関数とし得る。このキーは、このキーが1つまたは複数の他のサブブロックに基づき、かつ再現可能にもなるように、他のサブブロックから導出し得る。
同様に、ステップ306では、他の暗号化されたサブブロックを提供するのに有効な他のサブブロックB、C、およびDを暗号化し得る。これらは数学的に以下のように表される。
cd(B)=S
ab(C)=P
ab(D)=Q
このように、いくつかの暗号化されたサブブロックが構築される。これらのサブブロックはそれぞれ、再現可能であり、1つまたは複数のサブブロックのビットに基づくものである。
ステップ308では、サブブロックと暗号化されたサブブロックの排他的論理和(XOR)が計算され、それによって、XORサブブロックが得られる。
ここでは、ハッシュプリプロセッサ110が、排他的論理和(数学的な表記ではXORまたは
Figure 2008545163
)を計算し、以下の結果が得られる。
Figure 2008545163
これらの結果はそれぞれ無作為に現れ、敵対者の制御下には簡単には入らない。そのため、敵対者が悪意をもってA、B、C、またはDのビットを、例えば、制御された小さな変更で改変したとしても、XORサブブロックを、A、B、C、またはDのビットを改変する際に許されるような制御レベルで悪意をもって選択することはできない。
ステップ310では、サブブロックとXORサブブロックが組み合わされて、組み合わされたブロックが得られる。組み合わされた各ブロックのビットサイズは、上記ブロックのビットサイズと同じとし得る。ただし、組み合わされたブロックの数は、それらの基になるブロックの数の2倍になり得る。
図に示すように、サブブロックA、B、C、およびDは、XORブロック
Figure 2008545163
に連結される。これらは組み合わされて、ここでは、
Figure 2008545163
および
Figure 2008545163
の2つの組み合わされたブロックになる。
図4に、これらのブロックを406で示す。これらの組み合わされたブロックはそれぞれ、メッセージのビットに加えられる制御された小さな変更では容易に制御可能にならない要素を含む。また、これらの要素により、メッセージのビットに制御された小さな変更を加えて衝突を起こそうとすることがより難しくなる。
これらの組み合わされたブロックはそれぞれ、これらのブロックの基となるメッセージのブロックと同じやり方でハッシュすることができるサイズのものとし得る。セキュアハッシュ関数の多くは、より長い計算時間が必要にはなるものの、同じサイズの追加のブロックを容易に扱うことができる。
ステップ304、306、308、および/または310は、メッセージの各ブロック、あるいは1つまたは複数の他のブロックに対して繰り返すことができる。これらの動作を繰り返すことによって、メッセージの大部分または全部を前処理して、図に示す実施形態のXORブロックなどの再現可能な無作為に現れる要素を備えることができる。
ステップ312では、サブブロックとXORサブブロックのアセンブリに対してセキュアハッシュ関数の計算を行う。メッセージが2つ以上のブロックを含む場合(そうなることが多いが)、セキュアハッシュ関数の計算は、サブブロックとXORサブブロックの複数のアセンブリに対して行われる。図に示す実施形態では、ハッシュ生成器108は、SHA−1を利用して、サブブロックとXORサブブロックのアセンブリの160ビットのハッシュを計算する。そうすることによって、メッセージに基づいており、かつこのメッセージから再現可能なハッシュを計算することができる。
例えば、図3に示したやり方で第2メッセージ114を処理する場合、第2メッセージについて得られるハッシュは、第2メッセージ114と第1メッセージ112が同じであれば、第1メッセージ112のハッシュと同じになる。これらのハッシュが同じに場合に、第1メッセージまたは第2メッセージを認証することができる。これらが同じでない場合、第1メッセージと第2メッセージは同じでないことがわかる。
暗号キー
以下の説明では、メッセージを前処理する際に用いる暗号キーに対する潜在的な制御性を削減することによって先のツールがセキュアハッシュ関数を強化する方法の例を論じる。図2または図3で説明したように、これらのツールは、1つには、ある要素を生成することによってセキュアハッシュ関数を強化する。この要素は、敵対者が、この要素を導出するメッセージのビットを操作することによっては容易に制御可能にならないものである。
図5に、暗号キーに対する制御を削減するためのプロセスの例500を示す。プロセス500は、ハッシュプリプロセッサ110などの図1の動作環境100の要素によって実施される個々の演算または動作を表す一連のステップとして示されている。
ステップ502では、メッセージから再現可能な無作為に現れる要素が導出される。図6に示す実施形態では、ステップ308から得られたXORサブブロック602が提供される。この実施形態では、これらのXORサブブロックおよびそれらの構成要素である暗号化されたサブブロックP、Q、R、およびSは中間物である。というのは、これらの中間物を用いて要素を構築し、これらの要素を組み合わせてハッシュするためのブロックにするが、これら自体はハッシュすることはできないからである。
そのため、以下のものを受け取ることができる。
Figure 2008545163
ステップ504では、メッセージから導出された再現可能な無作為に現れる要素から、無作為に現れる暗号キーが導出される。ここでは、ハッシュプリプロセッサ110が、図6に示すXORサブブロック602に基づいて無作為に現れる暗号キー「RAE−n」を構築する。ここで、「」は、キーを導出する1つ(または複数)の要素を表す。これは、次のように表し得る。
Figure 2008545163
ステップ506では、無作為に現れる暗号キー(「RAEキー」)を用いてメッセージの一部が暗号化される。ここでは、図3のステップ304から得られたサブブロック404 A、B、C、およびDが、ステップ504でXORサブブロック602から導出されたRAEキーを用いて暗号化される。これにより、RAEキーにより暗号化されたサブブロック604が得られ、これらをV、W、T、およびUと名付ける。このように、サブブロック404は、RAEキーRAE−nを含む暗号関数Eを用いて暗号化され、それによって、RAEキーにより暗号化されたサブブロックが得られる。
これは、数学的に次のように表される。
RAE−cpdq(A)=V
RAE−cpdq(B)=W
RAE−arbs(C)=T
RAE−arbs(D)=U
その結果、これらのRAEキーにより暗号化されたサブブロックは、図3のプロセス300に従う暗号化ブロックとして扱うことができる。ここで、P=T、Q=U、R=V、およびS=Wである。例えば、図3のステップ308およびステップ310に従って、以下の組み合わされたブロック606
Figure 2008545163
および
Figure 2008545163
が得られる。
結論
以上説明したシステムおよび方法により、セキュアハッシュ関数が強化される。これらのシステムおよび方法により、メッセージ間で衝突を起こさせようとするある種の攻撃の有効性を著しく低減し得る。そうすることによって、セキュアハッシュ関数を用いて、より高度の確かさでメッセージを認証することができる。構造的な特徴および/または方法上の動作に固有の用語でこうしたシステムおよび方法を説明してきたが、添付の特許請求の範囲で定義されるシステムおよび方法は、上記で説明した特定の特徴または動作に必ずしも限定されないことを理解されたい。そうではなくて、これら特定の特徴および動作は、特許請求の範囲に記載されたシステムおよび方法を実施する形態の例として開示されるものである。
様々な実施形態が動作し得る動作環境の例を示す図である。 メッセージを処理するための流れ図の例である。 ブロック暗号化および排他的論理和演算を用いてハッシュ関数を安全なものにするためのプロセスの例を示す図である。 メッセージのブロック、ブロックのサブブロック、および組み合わされたブロックの例を示す図である。 暗号キーに対する制御を削減するためのプロセスの例を示す図である。 メッセージのXORブロック、暗号化されたサブブロック、および組み合わされたブロックの例を示す図である。

Claims (20)

  1. コンピュータ可読命令を内部に有する1つまたは複数のコンピュータ可読媒体であって、前記命令がコンピュータによって実行されると、前記コンピュータに、
    メッセージに基づいて、かつ、あるプロセスを用いて無作為に現れる要素を生成する動作と、
    前記要素と前記メッセージとを組み合わせてアセンブリを提供する動作とを実行させ、前記アセンブリは、ハッシュを提供するためにセキュアハッシュ関数でハッシュすることができ、前記ハッシュは、同じセキュアハッシュ関数によって前記メッセージをハッシュして得られる第2のハッシュの長さと同じ長さを有し、
    前記プロセスは、第2のメッセージに基づいて第2の無作為に現れる要素を生成することができ、前記第2の無作為に現れる要素は、前記第2のメッセージが前記第1のメッセージと同じ場合には、前記第1の無作為に現れる要素と同じであることを特徴とする媒体。
  2. 前記無作為に現れる要素を生成する前記動作は、ブロック暗号を用いて前記メッセージの部分を暗号化して、暗号化された部分を提供する動作と、前記暗号化された部分と前記メッセージの部分との排他的論理和(XOR)を計算して、前記無作為に現れる要素を提供する動作とを含むことを特徴とする請求項1に記載の媒体。
  3. 組み合わせる前記動作は、前記無作為に現れる要素と前記メッセージとを連結する動作を含むことを特徴とする請求項1に記載の媒体。
  4. 前記プロセスは、ブロック暗号を用いて前記メッセージの部分を暗号化して、暗号化された部分を提供する動作と、前記暗号化された部分と前記メッセージの部分との排他的論理和(XOR)を計算して、前記無作為に現れる要素を提供する動作とを含むことを特徴とする請求項1に記載の媒体。
  5. 前記無作為に現れる要素を生成する前記動作は、
    前記メッセージに基づいて無作為に現れる中間要素を受け取る動作と、
    前記無作為に現れる中間要素から無作為に現れる暗号キーを導出する動作と、
    前記無作為に現れる暗号キーを利用する暗号関数で前記メッセージの部分を暗号化して暗号化された部分を提供する動作と、
    前記暗号化された部分と前記部分との排他的論理和(XOR)を計算して、前記無作為に現れる要素を提供する動作とを含むことを特徴とする請求項1に記載の媒体。
  6. 前記暗号関数は、128ビットのAES(Advanced Encryption Standard)のブロック暗号による暗号関数を含むことを特徴とする請求項5に記載の媒体。
  7. 前記セキュアハッシュ関数は、セキュアハッシュアルゴリズム−1を含むことを特徴とする請求項1に記載の媒体。
  8. コンピュータ可読命令を内部に有する1つまたは複数のコンピュータ可読媒体であって、前記命令がコンピュータによって実行されると、前記コンピュータに、
    データのブロックの第1のサブブロックおよび第2のサブブロックを暗号化して、暗号化された第1のサブブロックおよび暗号化された第2のサブブロックを提供する動作と、
    前記第1のサブブロックと前記暗号化された第1のサブブロックとの排他的論理和(XOR)を計算して、第1のXORサブブロックを提供する動作と、
    前記第2のサブブロックと前記暗号化された第2のサブブロックとのXORを計算して、第2のXORサブブロックを提供する動作と、
    前記第1のXORサブブロックおよび前記第2のXORサブブロックと、前記第1のサブブロックおよび前記第2のサブブロックとを組み合わせて、第1の組み合わされたブロックおよび第2の組み合わされたブロックを提供する動作とを実行させることを特徴とする媒体。
  9. 暗号化する前記動作は、前記第1のサブブロックおよび前記第2のサブブロックに対してブロック暗号を実施する動作を含むことを特徴とする請求項8に記載の媒体。
  10. 暗号化する前記動作は、
    前記第2のサブブロックから導出される第1の暗号キーを用いて前記第1のサブブロックを暗号化する動作と、
    前記第1のサブブロックから導出される第2の暗号キーを用いて前記第2のサブブロックを暗号化する動作とを含むことを特徴とする請求項8に記載の媒体。
  11. 暗号化する前記動作は、第3のサブブロックおよび第4のサブブロックを暗号化する動作を含み、前記第1、第2、または第4のサブブロックから導出される第3の暗号キーを用いて前記第3のサブブロックを暗号化する動作と、前記第1、第2、または第3のサブブロックから導出される第4の暗号キーを用いて前記第4のサブブロックを暗号化する動作とをさらに含むことを特徴とする請求項10に記載の媒体。
  12. 前記第1の組み合わされたブロックまたは前記第2の組み合わされたブロックは、前記第1のXORブロック、前記第2のXORブロック、前記第3のサブブロック、および前記第4のサブブロックの連結体であることを特徴とする請求項11に記載の媒体。
  13. 暗号化する前記動作は、AES(Advanced Encryption Standard)のブロック暗号による暗号関数を実施する動作を含むことを特徴とする請求項8に記載の媒体。
  14. 前記ブロックはメッセージの一部であり、前記媒体は、前記ブロックを前記第1のサブブロックおよび前記第2のサブブロックに分割する動作をさらに含むことを特徴とする請求項8に記載の媒体。
  15. 前記メッセージを複数のブロックに分割する動作をさらに含み、前記ブロックは、前記複数のブロックの1つであることを特徴とする請求項14に記載の媒体。
  16. 前記ブロックの長さは512ビットであり、前記サブブロックの長さは128ビットであることを特徴とする請求項8に記載の媒体。
  17. 前記第1および第2の組み合わされたブロックのハッシュを計算する動作をさらに含むことを特徴とする請求項8に記載の媒体。
  18. A、B、C、およびDそれぞれをメッセージのある部分とし、Eを暗号関数、cdを前記部分CおよびDから導出される暗号キー、abを前記部分AおよびBから導出される暗号キーとして、
    Figure 2008545163
    を計算する動作と、
    Hをセキュアハッシュ関数として、
    Figure 2008545163
    を計算してハッシュhを提供する動作とを含むことを特徴とする方法。
  19. Eは、128ビットのAES(Advanced Encryption Standard)による暗号関数を含むことを特徴とする請求項18に記載の方法。
  20. Hはセキュアハッシュアルゴリズム−1(SHA−1)を含むことを特徴とする請求項18に記載の方法。
JP2008519339A 2005-06-28 2006-06-13 セキュアハッシュ関数の強化 Pending JP2008545163A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/168,842 US7546461B2 (en) 2005-06-28 2005-06-28 Strengthening secure hash functions
PCT/US2006/022960 WO2007001829A2 (en) 2005-06-28 2006-06-13 Strengthening secure hash functions

Publications (2)

Publication Number Publication Date
JP2008545163A true JP2008545163A (ja) 2008-12-11
JP2008545163A5 JP2008545163A5 (ja) 2009-07-30

Family

ID=37569013

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008519339A Pending JP2008545163A (ja) 2005-06-28 2006-06-13 セキュアハッシュ関数の強化

Country Status (6)

Country Link
US (1) US7546461B2 (ja)
EP (1) EP1886432A2 (ja)
JP (1) JP2008545163A (ja)
KR (1) KR20080018182A (ja)
CN (1) CN101204035A (ja)
WO (1) WO2007001829A2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11843701B2 (en) 2020-07-10 2023-12-12 Fujitsu Limited Computer-readable recording medium storing generation program for generating aggregation hash value by aggregating hash values for blocks of content, and generation apparatus for generating aggregation hash value by aggregating hash values for blocks of content

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2552085A1 (en) * 2005-07-14 2007-01-14 Nikolajs Volkovs System and method of message authentication
KR100785810B1 (ko) * 2006-12-05 2007-12-13 한국전자통신연구원 Rfid 데이터 보호 장치 및 방법
US8086860B2 (en) * 2007-10-01 2011-12-27 Tata Consultancy Services Limited Method for preventing and detecting hash collisions of data during the data transmission
CN104012032B (zh) * 2011-12-22 2017-04-19 英特尔公司 处理sha‑1安全散列算法的方法和设备
KR102013841B1 (ko) 2012-08-06 2019-08-23 삼성전자주식회사 데이터의 안전한 저장을 위한 키 관리 방법 및 그 장치
US9935768B2 (en) 2012-08-06 2018-04-03 Samsung Electronics Co., Ltd. Processors including key management circuits and methods of operating key management circuits
CA2903830C (en) 2013-03-05 2021-08-24 Fasetto, Llc System and method for cubic graphical user interfaces
CN103209075A (zh) * 2013-03-15 2013-07-17 南京易司拓电力科技股份有限公司 一种密码交换方法
MX2016000616A (es) 2013-07-18 2017-05-17 Fasetto L L C Sistema y metodo para videos desde multiples angulos.
US10095873B2 (en) 2013-09-30 2018-10-09 Fasetto, Inc. Paperless application
US9584402B2 (en) 2014-01-27 2017-02-28 Fasetto, Llc Systems and methods for peer to peer communication
JP6847031B2 (ja) 2014-07-10 2021-03-24 ファセット・インコーポレーテッド メッセージを編集するためのシステムおよび方法
NZ730674A (en) 2014-10-06 2021-07-30 Fasetto Inc Systems and methods for portable storage devices
US10437288B2 (en) 2014-10-06 2019-10-08 Fasetto, Inc. Portable storage device with modular power and housing system
KR102308140B1 (ko) 2015-03-11 2021-10-05 파세토, 인크. 웹 api 통신을 위한 시스템 및 방법
WO2017096245A1 (en) 2015-12-03 2017-06-08 Fasetto, Llc Systems and methods for memory card emulation
EP3257191B1 (en) * 2016-02-23 2018-04-11 Nchain Holdings Limited Registry and automated management method for blockchain-enforced smart contracts
KR20230129589A (ko) 2016-11-23 2023-09-08 파세토, 인크. 미디어를 스트리밍하기 위한 시스템 및 방법
CA3054681A1 (en) 2017-02-03 2018-08-09 Fasetto, Inc. Systems and methods for data storage in keyed devices
WO2019079628A1 (en) 2017-10-19 2019-04-25 Fasetto, Inc. PORTABLE ELECTRONIC DEVICE CONNECTING SYSTEMS
TW201919361A (zh) * 2017-11-09 2019-05-16 張英輝 以雜文加強保護之區塊加密及其解密之方法
KR20210018217A (ko) 2018-04-17 2021-02-17 파세토, 인크. 실시간 피드백이 있는 디바이스 프레젠테이션
JP7226829B2 (ja) * 2018-05-25 2023-02-21 株式会社ZenmuTech データ処理装置、方法及びコンピュータプログラム
US11288663B1 (en) 2021-06-25 2022-03-29 Arri E. Manuel Blockring service, system, and method thereof
US11934667B1 (en) * 2021-06-30 2024-03-19 Amazon Technologies, Inc. Encrypted-data-only media operations

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5592483A (en) * 1978-12-29 1980-07-12 Ibm Key control coding system
JPH0627878A (ja) * 1991-03-20 1994-02-04 Internatl Business Mach Corp <Ibm> 暗号用キー入力の妥当性検査のための方法および装置
JPH06202558A (ja) * 1992-10-16 1994-07-22 Internatl Business Mach Corp <Ibm> 商用データ・マスキング
JPH09127868A (ja) * 1995-07-03 1997-05-16 General Instr Corp Of Delaware 二重フィードフォワードハッシュ機能を有する暗号装置
JP2001142394A (ja) * 1999-08-31 2001-05-25 Matsushita Electric Ind Co Ltd 暗号化方法、暗号化装置、復号化方法及び復号化装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5892829A (en) 1997-01-08 1999-04-06 Bell Communications Research, Inc. Method and apparatus for generating secure hash functions
KR100389902B1 (ko) 1997-06-23 2003-09-22 삼성전자주식회사 차분해독법과선형해독법에대하여안전성을보장하는고속블럭암호화방법
US6578144B1 (en) 1999-03-23 2003-06-10 International Business Machines Corporation Secure hash-and-sign signatures

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5592483A (en) * 1978-12-29 1980-07-12 Ibm Key control coding system
JPH0627878A (ja) * 1991-03-20 1994-02-04 Internatl Business Mach Corp <Ibm> 暗号用キー入力の妥当性検査のための方法および装置
JPH06202558A (ja) * 1992-10-16 1994-07-22 Internatl Business Mach Corp <Ibm> 商用データ・マスキング
JPH09127868A (ja) * 1995-07-03 1997-05-16 General Instr Corp Of Delaware 二重フィードフォワードハッシュ機能を有する暗号装置
JP2001142394A (ja) * 1999-08-31 2001-05-25 Matsushita Electric Ind Co Ltd 暗号化方法、暗号化装置、復号化方法及び復号化装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11843701B2 (en) 2020-07-10 2023-12-12 Fujitsu Limited Computer-readable recording medium storing generation program for generating aggregation hash value by aggregating hash values for blocks of content, and generation apparatus for generating aggregation hash value by aggregating hash values for blocks of content

Also Published As

Publication number Publication date
US7546461B2 (en) 2009-06-09
CN101204035A (zh) 2008-06-18
WO2007001829A3 (en) 2007-05-18
US20060294386A1 (en) 2006-12-28
WO2007001829A2 (en) 2007-01-04
EP1886432A2 (en) 2008-02-13
KR20080018182A (ko) 2008-02-27

Similar Documents

Publication Publication Date Title
JP2008545163A (ja) セキュアハッシュ関数の強化
CN109951296B (zh) 一种基于短签名的远程数据完整性验证方法
JP6144992B2 (ja) 検索可能暗号処理システム及び方法
US10693626B2 (en) Method and system for generating/decrypting ciphertext, and method and system for searching ciphertexts in a database
EP3134994B1 (en) Method of obfuscating data
WO2013150880A1 (ja) 暗号化装置、復号化装置、暗号化方法、復号化方法、及びプログラム
JP2008545163A5 (ja)
WO2014136386A1 (ja) タグ生成装置、タグ生成方法およびタグ生成プログラム
US10326589B2 (en) Message authenticator generating apparatus, message authenticator generating method, and computer readable recording medium
WO2018170963A1 (zh) 一种文件的加密、解密方法和装置
CN111066077B (zh) 加密装置、加密方法、解密装置以及解密方法
Duan et al. Secure and verifiable outsourcing of large-scale nonnegative matrix factorization (NMF)
JP7347501B2 (ja) Macタグリスト生成装置、macタグリスト検証装置、方法及びプログラム
US20140153725A1 (en) Low-power encryption apparatus and method
WO2016063512A1 (ja) Macタグリスト生成装置、macタグリスト検証装置、macタグリスト生成方法、macタグリスト検証方法およびプログラム記録媒体
Rajput et al. A novel image encryption and authentication scheme using chaotic maps
Sadeghi-Nasab et al. A comprehensive review of the security flaws of hashing algorithms
EP3298720B1 (en) Computing with encrypted values
JP2011523103A (ja) 対称暗号を実行するための技法
Churi et al. JSH algorithm: a password encryption technique using Jumbling-Salting-Hashing
Polpong et al. Authentication and password storing improvement using SXR algorithm with a hash function
Abad et al. Enhanced key generation algorithm of hashing message authentication code
JP2017038336A (ja) 復号方法
WO2022239163A1 (ja) 認証暗号化装置、認証復号装置、認証暗号システム、方法及びコンピュータ可読媒体
Agrawal et al. Securing confidential data in the cloud environment by using DNA computing

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090612

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090612

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120106

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20120601