JP4455661B2 - エクスパンダグラフからのハッシュ関数構築 - Google Patents

エクスパンダグラフからのハッシュ関数構築 Download PDF

Info

Publication number
JP4455661B2
JP4455661B2 JP2008538904A JP2008538904A JP4455661B2 JP 4455661 B2 JP4455661 B2 JP 4455661B2 JP 2008538904 A JP2008538904 A JP 2008538904A JP 2008538904 A JP2008538904 A JP 2008538904A JP 4455661 B2 JP4455661 B2 JP 4455661B2
Authority
JP
Japan
Prior art keywords
graph
vertices
hash function
expander
expander graph
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.)
Expired - Fee Related
Application number
JP2008538904A
Other languages
English (en)
Other versions
JP2009514036A5 (ja
JP2009514036A (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 JP2009514036A publication Critical patent/JP2009514036A/ja
Publication of JP2009514036A5 publication Critical patent/JP2009514036A5/ja
Application granted granted Critical
Publication of JP4455661B2 publication Critical patent/JP4455661B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
    • 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
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9014Indexing; Data structures therefor; Storage structures hash tables
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Security & Cryptography (AREA)
  • Power Engineering (AREA)
  • Mathematical Physics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

ハッシュ関数構築は、多くのアルゴリズムおよび暗号プロトコルにおいて使用されている。これらは、そのイメージを「均一に」分布する関数f:U→S(ただし、|U|≧|S|)である。言い換えれば、多くの場合、x∈U,|{y∈U|f(x)=y}|は、|U|/|S|に近似している。
衝突するペア、すなわちペア(x,y)の数をf(x)=f(y)のように最小限にするハッシュ関数は非常に有用である。ハッシュ関数の暗号アプリケーションでは、一般的に、衝突を巧みに処理する問題を困難にすることが望まれている。このことは、f(x)=f(y)のように離散的エレメント(distinct elements)xおよびyを見つけるタスクが計算量的に困難であることを意味している。次のような弱いプロパティ、すなわち、xが与えられているとき、f(x)=f(y)のように別のyを見つけることを困難にすることが関心事になっていることがよくある。
以下の簡単な説明は、下述する詳細な説明の個所で詳しく説明されている概念のいくつかを簡単に紹介したものである。この簡単な説明は、特許請求の範囲に記載の主題の重要な特徴または基本的特徴を特定するものではなく、また特許請求の範囲に記載の主題の範囲を判定する際の一助として使用されるものでもない。
以上の観点から、本明細書では、エクスパンダグラフ(expander graphs)からのハッシュ関数構築が説明されている。一態様では、エクスパンダグラフはハッシュ関数への入力として探索(walk)される。このエクスパンダグラフは、入力メッセージのそれぞれのサブセットを使用して探索される。ハッシュ関数の出力は最後に探索された頂点のラベルである。
図面において、コンポーネントの参照符号の左端の数字はそのコンポーネントが最初に現れる特定の図面を示している。
概要
以下では、エクスパンダグラフからのハッシュ関数構築のためのシステム(例:システム、装置、コンピュータ可読記憶媒体など)および方法について、図1乃至図4を参照して説明する。ハッシュ関数は、特定のエクスパンダグラフ(expander graph)上で探索(walk)を行なうことにより構築される。エクスパンダグラフ上でのランダムな探索は非常に高速にミックスするので、ハッシュ関数の出力は入力メッセージが均一(uniform)にランダムであるとき均一であるのが一般的である。一実施形態では、システムおよび方法は、エクストラクタ(extractor)をエクスパンダグラフと併用してハッシュ関数を構築している。この実装において、入力メッセージは最小エントロピー(min-entropy)で一定の下限を有している。例えば、メッセージを暗号で署名することは(これはハッシングによって行なわれる)、そのメッセージに「ランダムなパッド(random pad)」を付加したあとで行なわれる(このプロセスにより、エントロピーがその署名に注入される)。入力メッセージはある程度の少量のエントロピーを有しているとの想定の下で、エクストラクタはそのランダム度(randomness)度を抽出し、そのあとでエクストラクタの出力に従って探索を実行するために利用されている。
エクスパンダグラスからのハッシュ関数構築ためのシステムおよび方法の上記およびその他の態様について、ここでより詳細に説明する。
例示的なシステム
必ずしも必要でないが、エクスパンダグラフからのハッシュ関数構築のためのシステムおよび方法は、パーソナルコンピュータなどのコンピューティングデバイスによって実行されるコンピュータ実行可能命令(プログラムモジュール)の一般的コンテキストの中で説明されている。プログラムモジュールには、特定のタスクを実行し、または特定の抽象データ型を実現するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などが一般的に含まれる。システムおよび方法は上記コンテキストの中で説明されているが、以下に説明されている動作および操作は、ハードウェアにおいて実装されることもありうる。
図1は、一実施形態によるエクスパンダグラフからのハッシュ関数構築のための例示的なシステム100を示している。システム100はコンピューティングデバイス102を含み、このコンピューティングデバイス102はシステムメモリ106に結合された1または2以上の処理ユニット104を含む。プロセッサ104は、プログラムモジュール108からコンピュータプログラム命令を取ってきて実行し、システムメモリ106のプログラムデータ110の一部分へ/からデータを取ってきて、格納する。プログラムモジュール108には、例えば、エクスパンダグラフのハッシュ関数構築モジュール(「EGHF構築モジュール」)112および他のプログラムモジュール114が含まれている。他のプログラムモジュール114は、例えば、オペレーティングシステム、およびモジュール112によって生成されたエクスパンダグラフベースのハッシュ関数構築116を利用する1または2以上のアプリケーションを含んでいる。このようなハッシュ関数構築116を利用すると便利であるアプリケーションは多い。例えば、このような構築は、暗号(cryptography)、ハッシュテーブル、エラー訂正、オーディオ識別、Rabin-Karp文字列探索アルゴリズム(Rabin-Karp string search algorithm)などを実現する1または2以上のアプリケーションにおいて利用されることがある。
EGHF構築モジュール112は、入力メッセージ118およびn個の頂点(vertex)のエクスパンダグラフ120からハッシュ関数構築を生成する。エクスパンダグラフ120は高い頂点(high vertex)または辺の拡張(edge expansion)をもつ疎グラフ(sparse graph)であり、言い換えれば高度に結合されている。一実装では、エクスパンダグラフ120はRamanujanグラフである。一実装では、入力メッセージはあるランダム度(またはエントロピー)を有している。
例えば、一実装では、エクスパンダグラフ120は次のように判定される。pを素数(prime number)、l(≠p)を別の素数とする。エクスパンダグラフG(p,l)は、その頂点集合Vとして有限フィールドFq,q=p2上の超特異j不変量(supersingular j-invariants) の集合を有している。そのj不変量がj1およびj2である超楕円曲線間がl度のisogenyであれば、頂点j1およびj2の間に辺が存在する。グラフG(p,l)は、l+1正規Ramanujanグラフであることが知られている。G(p,l)の頂点の番号は、約p/12である四元数代数(quaternion algebra)Bp,∞のクラス番号である。G(p,l)はエクスパンダグラフ120である。
別の実施形態では、エクスパンダグラフ120は、以下に「代替的実施形態」という名前の項目で説明されているようにLubotzky-Phillips-Sarnakエクスパンダグラフである。
ハッシュ関数構築116を生成するために、エクスパンダグラフのハッシュ関数構築モジュール112はメッセージ118を特定する。一実装では、メッセージはエントロピー度(degree of entropy)を有している。EGHF構築モジュール112は、エクスパンダグラフ120を含むn個の頂点の各頂点に、それぞれ名前またはラベルを割り当てる。入力メッセージにエントロピー度がそこと関連付けられているとき、EGHF構築モジュール112は、エクストラクタ関数(extractor function)でそのランダム度を抽出または判定する。このようなメッセージからランダム度を抽出する抽出関数および手法の例は、下述する「入力からランダム度の抽出」という名前の項目で詳しく説明されている。
構築モジュール112は、ランダムに探索(または訪問(visit))するエクスパンダグラフ120の頂点を特定する構成可能頂点辺規則(configurable vertex edge convention)の観点で、抽出したエントロピー度(存在するとき)または他の基本基準(下述する)に基づいて、入力メッセージ118のk長ビットセグメントを特定する。探索する操作の例およびエクスパンダグラフ120は、「例示的な手順」という名前の項目において以下でより詳細に説明される。頂点のうち最後に探索された頂点に関連付けられたそれぞれの名前/ラベルはハッシュ関数構築114の出力を表わしている。
入力からのランダム度の抽出
最小エントロピー:Xを{0, 1}nの中で値を受け入れるランダム変数であるとする。Xの最小エントロピーは次の量であると定義される。
Figure 0004455661
分布の近似性:XとYを{0,1}n上の2つの分布であるとする。これらは、
Figure 0004455661
の場合に、εだけ近似していると言われる(ただし、εは実数である)。
エクストラクタ:関数Ext:{0,1}n x {0,1}d →{0,1}mは、{0,1}n上の均一分布の少なくともkとUdの最小エントロピーの{0,1}n上の任意のランダム変数Xについて、分布Ext(X,Ud)がεだけUmに近似している場合、(k,ε)エクストラクタと呼ばれる。
命題:Ext:{0,1}nx{0,1}d→{0,1}mが(k,ε)エクストラクタである場合、ランダムシード(random seed)σ∈{0,1}dの大部分の選択は、分布Ext(X,σ)はUmにεだけ近似している。
証明:分布Ext(X,Ud)は、Xd=Ext(X,σ)で定義されたσ∈{0,1}dによってインデックスされた分布のファミリXdの中からランダムに分布を均一に選択するものと記述することができる。Extがエクストラクタであるということは、これらの分布の多くがUmにεだけ近似していることを意味している(証明の終わり)。
多項式の時間エクストラクタの構築は、dが少なくともlog2nおよびm=k1-α(ただし、αは任意の実数)の場合、k>nγ(γ<1)およびε>0については知られている。
ハッシュ関数の構築
ランダム変数M(すなわち、入力メッセージ118)は、ハッシュ関数構築116への入力を示しており、少なくともlog1+βnの最小エントロピーを有している。ただし、nはG(p,l)およびβ>0の頂点の数である。{0,1}Nを入力空間とする。Mのエントロピー度122を判定するために、構築モジュール112はエクストラクタ関数Extを実現し、パラメータをk=log1+βn, εを非常に小さくし、m=Θ(log1+αn)として関数Ext:{0,1}N x {0,1}d→{0,1}mを固定している。例示的に説明するために、このようなパラメータは「他のデータ」124のそれぞれの部分として示されている。システム100はN=k0(1)と想定している。構築モジュール112は{0,1}dからランダムにαを均一に選択する。入力x∈{0,1}Nが与えられているとき、構築モジュール112はω=Ext(x,a)(すなわチェーントロピー度122)を計算する。この構築の結果はサイズmのストリングである。構築モジュール112は、ωによって与えられた指示に従って一定の頂点v0から始まってmの探索を実行し、ハッシュ関数116の出力は最後に探索された頂点のラベルである。
そのノードが超特異楕円曲線モジューロ素数p、および辺が楕円曲線間のl度のisogenyであるエクスパンダグラフでは、グラフ周りの探索ステップを次のように行なうことができる。
楕円曲線Eに対応するノードから始まって、最初にE[l]のlトーションのジェネレータPとQを見つける。この目的のために、
1.nを
Figure 0004455661
とする。
2.
Figure 0004455661
とする。
Figure 0004455661
の数はE上の有理点である(オリジナル)
3.s = S/lkをセットする。ただし、lkはSを除算するlの最大倍数である(注:k ≧ 2)。
4.E[l]から2点PとQをランダムに選択する:
(a)
Figure 0004455661
から2点U、Vをランダムに選択する。
(b) P'=sUおよびQ'=sVをセットする。P‘またはQ’のどちらかが0に等しいときは、ステップ(i)を繰り返す。
(c)
Figure 0004455661
および
Figure 0004455661
であるが、
Figure 0004455661
および
Figure 0004455661
となるような最小i1,i2を見つける。
(d)
Figure 0004455661
および
Figure 0004455661
をセットする。
5.周知のShanks Baby-steps-Giant-stepsアルゴリズムを使用して、QがPによって生成されたグループに属しているかどうかを判定する。属していれば、ステップ(d)を繰り返す。
Eにisogenyであるl+1楕円曲線の
Figure 0004455661
におけるj不変量はj1,…,jl+1である。これらを見つけるために、
(a) G1=<Q>およびG1+i=<P+(i-1)*Q>とする。ただし、1≦i≦l
(b) 各iについて(ただし、1≦i≦l+1)、Veluの公式を使用して楕円曲線E/Gのj不変量を計算する。
例えば、2isogenyをもつ超特異楕円曲線のグラフを使用すると、次のような明示的方法でランダムな探索を行なうことができる。各ステップにおいて、Eの3非トリビアル2トーション点を見つけたあと、それらを事前に指定したようにそのx座標となるように配列する。次に、ハッシュ関数への入力ビットを使用して、次に探索するノードに到達するためにどの点を選択して楕円曲線を割る(quotient)かを判定する。
ハッシュ関数の出力は殆ど均一であるとの証明
命題によって、エクスパンダグラフのハッシュ関数構築モジュール112によって実現されたエクストラクタ関数の出力は均一に近似しており、エクスパンダグラフ120について行なう探索はランダムな探索であることに非常に近似している(探索がランダムであることは、グラフ上のある頂点vにいるとき、次のステップでは等しくその近隣のいずれかにいる可能性があることを意味している)。グラフG(p,l)はn個の頂点を有していて、m=Ω(log1+αn)である以上、探索は高速にミックスし、出力頂点は均一に非常に近似している。次に、上記の表現を正確にする。n個の頂点のd正規グラフGについてのO(log n)のランダム探索が高速にミックスすると言う1つの方法は、次のように言うことである。
Figure 0004455661
上記において、εは小さく、AはGの隣接マトリックスであり、vは標準単位ベクトルのいずかにすることができ、1はベクトル(1,1,…,1)である。次のマトリックス
Figure 0004455661
は、グラフ120上の均一にランダムなMarkovチェーンの遷移マトリックス(transition matrix)と考えることができる。この実施形態では、システム100は、グラフ120について殆どランダムな探索を実現している。これは、マトリックスBを次のように遷移マトリックスとして使用するものと考えることができる。すなわち、
Figure 0004455661
およびδは小さな実数である(ただし、記号‖‖はマトリックスノルム(matrix norm)を意味している)。言い換えれば、構築モジュール112はランダム探索を少量だけ混乱させる。以下の命題は、δを十分に小さくすることができれば、この新しいランダム探索は高速にミックスすることを示している。
命題:AとBを2つのサブ確率論的マトリックス(sub-stochastic matrix)であるとすると、‖Ak-Bk‖≦‖A-B‖
証明:差Ak-Bkは次のように書くことができる。
Figure 0004455661
両辺にノルムをとり、‖A‖=‖B‖=1の事実を使用すると(これらはサブ確率論的マトリックスであるので)、結果が得られる(証明の終わり)。
ここで行なうランダム探索の長さはO (log n)であるので、パラメータδを次になるように整理できる場合、
Figure 0004455661
結果として得られるおおよそのランダム探索も高速にミックスすることになる。これは、エクストラクタのパラメータεを次に等しくなるようにセットすることによって整えることができる。
Figure 0004455661
衝突に対する耐性
このハッシュ関数116の下で衝突を明示的に見つけることは、同じlパワー度のペアの超特異楕円曲線間の2つのisogeny (isogenies)を見つけるのと同じである。グラフG(p,l)に小さな円がなければ、この問題が非常に困難であるのは、曲線間の高度のisogenyを構築することが周知の計算量的に困難な問題であるからである。
代替的実施形態
上述したグラフG(p,l)を使用することの代替的方法として、システム100は、lubotzky-Phillips-Sarnakエクスパンダグラフ120を利用している。lとpを2つの離散的素数とし、lが小さな素数で、pが相対的に大であるとする。また、pとlは≡1 mod 4、lは二次式の残余mod pであると想定する(このケースが該当するのはl(p-1)/2≡1 mod pの場合である)。パラメータlとpをもつLPSグラフをXl,pとする。次に、グラフXを構成する頂点と辺を定義する。Xl,pの頂点はPSL(2,Fp)におけるマトリックスである。すなわち、任意のマトリックスAに対する等価関係式A=−Aと共に行列式(determinant)1をもつエントリがFpにある可逆2x2マトリックスである。行列式1をもつ2x2マトリックスAが与えられているとき、頂点の名前は、集合{0,...、p-1}4の通常の配列においてどちらが語彙論的に小さいかに応じてAのエントリまたは−Aのエントリの4タプル(4-tuple)となる。次にグラフを構成する辺を記述する。マトリックスAはマトリックスgiAに結合され、ここでgiは以下で明示的に定義されたマトリックスである。iをi2 ≡-1 mod pを満足する整数とする。方程式g0 2+g2 2+g3 2=lに対する8(l+1)の解は正確にg=(g0,g1,g2,g3)である。これらの間には、正確にはg0>0および奇数で、gj(ただし、j=1,2,2)が偶数であるl+1が存在する。その各々のgにマトリックス
Figure 0004455661
を関連付ける。
これにより、PSL(2,Fp)においてl+1マトリックスの集合Sが得られる。gjはこの集合Sにおけるマトリックスである。これは、gがSにあれば、g-1もそうであるという事実である。さらに、lは小であるので、マトリックスの集合Sは徹底的なサーチ(exhaustive search)によって非常に高速で見つけることができる。
例示的な手順
図2は、一実施形態によるエクスパンダグラフからのハッシュ関数構築のための例示的な手順を示している。具体例を示して説明するために、手順200の操作は図1のシステム100のコンポーネントと関連付けて説明されている。コンポーネントの参照符号の左端の数字は、そのコンポーネントが最初に現われた特定の図を示している。
ブロック202において、EGHF構築モジュール112(図1)は入力メッセージ118をセグメントに分割する。例えば、入力メッセージは長さがNになっている。k正規エクスパンダグラフにn個の頂点があるとすると(各頂点には名前/ラベルが付けられている)、いずれか1つの頂点から出た各辺の名前はlog kビットになっている。入力メッセージ118は長さがlog kのチャンク(chunk)に分割される。ブロック204において、EGHF構築モジュール112は、ハッシュ関数への入力としてエクスパンダグラフ120を探索(walk)する。この探索は次のようにして判定される。すなわち、ある頂点vにいるとすると、探索の次の頂点はlog kビットの次のチャンクを入力から読み取って、頂点vから通り抜けようとする辺を判定することによって判定され、その辺の他方のエンドポイントが探索上の次の頂点となる。例えば、EGHF構築モジュールは112は、入力メッセージ118の最初のkビット(セグメント/チャンク)によって指定された最初の頂点からエクスパンダグラフ120内の辺をランダムに探索することを開始する。エクスパンダグラフ120内で次に探索される頂点はlog kビットの次のチャンクによって指定される。これらの操作は、辺の名前がエクスパンダグラフ内の頂点にどのように対応付けられるかを規定している規則に鑑みて繰り返し実行される。このような規則の例として、各々の頂点vについて、関数fv:{1,..,k}→Eが存在することがある。従って、fv(1)はvからの最初の辺であり、fv(2)はvからの二番目の辺であり、以下同様である。
ブロック206において、EGHF構築モジュール112は、最後に探索された頂点のラベルを判定する。ブロック208において、EGHF構築モジュール112はハッシュ関数の結果としてそのラベルを出力する。
図3は、一実施形態によるエクスパンダグラフからのハッシュ関数構築のための例示的な手順を示す図である。具体例を示して説明するために、手順300の操作は図1のシステム100のコンポーネントと関連付けて説明されている。ブロック302において、エクスパンダグラフのハッシュ関数構築モジュール(EGHF構築モジュール)112(図1)はエントロピー度をもつメッセージ118を特定する。ブロック304において、EGHF構築モジュール112は、エクスパンダグラフ120の中の各頂点にそれぞれのラベルを割り当てる。ブロック306において、EGHF構築モジュール112は、エクストラクタ関数を使用して入力メッセージ118におけるエントロピー度を判定する。判定されたエントロピー度は、抽出されたエントロピー度として示される。ブロック308において、EGHF構築モジュールは、抽出されたエントロピー度に基づいてエクスパンダグラフ120を探索する。ブロック310において、EGHF構築モジュール112は、最後に探索された頂点に県連付けられたラベルとエクスパンダグラフ120を、ハッシュ関数構築116の結果として出力する。すなわち、ブロック302から310までの操作は、ハッシュ関数構築116の操作に対応している。
例示動作環境
図4は、エクスパンダグラフからのハッシュ関数構築を完全にまたは部分的に実現できる適当なコンピューティング環境の例を示す図である。例示コンピューティング環境400は、図1の例示システムおよび図2と図3の例示的な操作のための適当なコンピューティング環境の単なる一例であり、本明細書に説明されているシステムおよび方法の使用または機能の範囲に関してなんらかの制限があることを示唆しない。また、コンピューティング環境400は、コンピューティング環境400に図示されているコンポーネントのいずれについても、またはその組み合わせについても、任意の依存関係または要求条件があるものと解釈されるべきではない。
本明細書に説明されている方法およびシステムは、他の多数の汎用または特定目的コンピューティングシステム、環境または構成と共に動作可能である。使用するのに適した周知コンピューティングシステム、環境、および/または構成の例としては、パーソナルコンピュータ、サーバコンピュータ、マルチプロセッサシステム、マイクロプロセッサベースのシステム、ネットワークPC、ミニコンピュータ、メインフレームコンピュータ、上記システムまたはデバイスのいずれかを含む分散コンピューティング環境などがあるが、これらに限定されない。ハンドヘルドコンピュータや他のコンピューティングデバイスのように、リソースが限られたクライアントでは、このフレームワークのコンパクトバージョンまたはサブセットバージョンを実現することも可能である。本発明は、通信ネットワークを通してリンクされたリモート処理デバイスによってタスクが実行されるような分散コンピューティング環境で実施される。分散コンピューティング環境では、プログラムモジュールはローカルとリモートの両方のメモリストレージデバイスに位置づけられているかもしれない。
図4を参照して説明すると、エクスパンダグラフからのハッシュ関数構築のための例示システムは、例えば、図1のシステム100を実現するコンピュータ410の形体をした汎用コンピューティングデバイスを含んでいる。コンピュータ410の以下に説明する態様は図1のコンピューティングデバイス102の実現例である。コンピュータ410のコンポーネントには、1または2以上の処理ユニット420、システムメモリ430、およびシステムメモリを含む種々のシステムコンポーネントを処理ユニット420に結合するシステムバス421が含まれていることがあるが、これらに限定されない。システムバス421は、数種タイプのバス構造のいずれかにすることができ、その中には、種々のバスアーキテクチャを使用したメモリバスやメモリコントローラ、周辺バス、およびローカルバスが含まれている。例を挙げると、そのようなアーキテクチャとしては、ISA(Industry Standard Architecture)バス、MCA(Micro Channel Architecture)バス、EISA(Enhanced ISA)バス、VESA(Video Electronics Standards Association)ローカルバス、およびMezzanineバスとも呼ばれるPCI(Peripheral Component Interconnect)バスがあるが、これらに限定されない。
コンピュータ410は、様々なコンピュータ可読記憶媒体を含むのが通常である。コンピュータ可読記憶媒体は利用可能であれば、コンピュータ410によってアクセス可能などの媒体にすることもでき、その中には、揮発性および不揮発性媒体で、取り外し可能および取り外し不能媒体の両方が含まれている。例を挙げると、コンピュータ可読記憶媒体には、コンピュータストレージ媒体と通信媒体が含まれるが、これらに限定されない。コンピュータストレージ媒体には、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータなどの情報を格納するためのいずれかの方法またはテクノロジで実現された揮発性および不揮発性取り外し可能および取り外し不能媒体が含まれている。コンピュータストレージ媒体には、RAM、ROM、EEPROM、フラッシュメモリや他のメモリテクノロジ、CD−ROM、DVD(digital versatile disk)や他の光ディスクストレージ、磁気カセット、磁気テープ、磁気ディスクストレージや他の磁気ストレージデバイス、または必要とする情報を格納するために使用可能で、コンピュータ410によってアクセス可能である他の媒体が含まれているが、これらに限定されない。
通信媒体は、コンピュータ可読命令、データ構造、プログラムモジュールまたは他のデータを搬送波などの変調データ信号または他のトランスポートメカニズムを組み込んでいるのが一般的であり、その中には任意の情報配信媒体が含まれている。ここで「変調データ信号(modulated data signal)」という用語は、情報を信号の中で符号化するような形でその特性の1つまたは2つ以上がセットまたは変更されている信号を意味している。例を挙げると、通信媒体には有線ネットワークや直接有線接続などの有線媒体、および音響、RF、赤外線および他の無線媒体などの無線媒体が含まれているが、これらに限定されない。上記に挙げたものを任意に組み合わせたものも、コンピュータ可読記憶媒体の範囲に当然含まれるべきである。
システムメモリ430としては、ROM(read only memory)431およびRAM(random access memory)432などの揮発性および/または不揮発性メモリの形状をしたコンピュータストレージ媒体がある。スタートアップ期間のように、コンピュータ410内のエレメント間で情報を転送するのを支援する基本ルーチンで構成された基本入出力システム433(BIOS)は、ROM431に格納されているのが代表的である。RAM432は、処理ユニット420に即時にアクセス可能であり、および/または処理ユニット420によって現在操作の対象になっているデータおよび/またはプログラムモジュールを収めているのが代表的である。例を挙げると、図4にはオペレーティングシステム434、アプリケーションプログラム433、他のプログラムモジュール436、およびプログラムデータ437が示されているが、これらに限定されない。
コンピュータ410は、他の取り外し可能/取り外し不能で揮発性/不揮発性のコンピュータ記憶媒体を含んでいることもある。図4には、取り外し不能で不揮発性の磁気媒体との間で読み書きを行なうハードディスクドライブ441、取り外し可能で不揮発性の磁気ディスク432との間で読み書きを行なう磁気ディスクドライブ431、およびCD−ROMや他の光媒体などの取り外し可能で不揮発性の光ディスク436との間で読み書きを行なう光ディスクドライブ433が示されているが、これらは単なる例示である。例示動作環境で使用できる他の取り外し可能/取り外し不能で揮発性/不揮発性のコンピュータストレージ媒体としては、磁気テープカセット、フラッシュメモリカード、デジタルバーサタイルディスク、デジタルビデオテープ、ソリッドステートRAM、ソリッドステートROMなどがあるが、これらに限定されない。ハードディスクドライブ441は、インタフェース440などの取り外し不能メモリインタフェースを通してシステムバス421に接続されているのが代表的であり、磁気ディスクドライブ431と光ディスクドライブ433は、インタフェース430などの取り外し可能メモリインタフェースによってシステムバス421に接続されているのが一般的である。
上述し、図4に図示のドライブおよびその関連コンピュータストレージ媒体は、コンピュータ可読命令、データ構造、プログラムモジュールおよびその他のデータをコンピュータ410のストレージを提供する。図4において、例えば、ハードディスクドライブ441は、オペレーティングシステム444、アプリケーションプログラム443、他のプログラムモジュール446およびプログラムデータ447を格納するものとして示されている。なお、これらのコンポーネントは、オペレーティングシステム434、アプリケーションプログラム433、他のプログラムモジュール436、およびプログラムデータ437と同じのこともあれば、異なっていることもある。アプリケーションプログラム433には、例えば、図1のコンピューティングデバイス102のプログラムデータ110が含まれている。ここでオペレーティングシステム444、アプリケーションプログラム443、他のプログラムモジュール446、およびプログラムデータ447に異なる番号が付けられているのは、これらが少なくとも異なるコピーであることを示すためである。
ユーザは、キーボード462などの入力デバイスおよび一般にマウス、トラックボールまたはタッチパッドとも呼ばれるポインティングデバイス461を通してコマンドおよび情報をコンピュータに入力することができる。他の入力デバイス(図示せず)としては、マイクロホン、ジョイスティック、ゲームパッド、サテライトディッシュ、スキャナなどがある。これらおよび他の入力デバイスは、システムバス421に結合されたユーザ入力インタフェース460を通して処理ユニット420に接続されていることがよくあるが、パラレルポート、ゲームポートまたはUSB(universal serial bus)などの他のインタフェースによって接続されていることもある。
モニタ491または他のタイプのディスプレイデバイスも、ビデオインタフェース490などのインタフェースを介してシステムバス421に接続されている。モニタのほかに、コンピュータは、プリンタ496およびオーディオデバイス497などの他の周辺出力デバイスを含むこともあり、これらのデバイスは出力周辺インタフェース493を通して接続されていることがある。
コンピュータ410は、リモートコンピュータ480などの1または2以上のリモートコンピュータとの論理的接続を使用したネットワーキング環境で動作することができる。一実施形態では、リモートコンピュータ480は図1のコンピューティングデバイス102またはネットワーク構築デバイス104を表わしている。リモートコンピュータ480は、パーソナルコンピュータ、サーバ、ルータ、ネットワークPC、ピアデバイスまたは他の共通ネットワークノードであることがあり、図4にはメモリストレージデバイス481だけが示されているが、その具体的な実施形態に応じて、コンピュータ410に関連して上述したエレメントの多くまたはすべてを含んでいることがある。図4に図示の論理的接続にはLAN(local area network)471およびWAN(wide area network)473が含まれているが、他のネットワークが含まれることもある。このようなネットワーキング環境はオフィス、企業内コンピュータネットワーク、イントラネットおよびインターネットで一般的である。
LANネットワーキング環境で使用されるときは、コンピュータ410はネットワークインタフェースまたはアダプタ470を通してLAN471に接続されている。WANネットワーキング環境で使用されるときは、コンピュータ410は、インターネットなどのWAN473上の通信を確立するためのモデム472または他の手段を備えているのが一般的である。モデム472は内蔵型と外付け型があり、ユーザ入力インタフェース460または他の該当メカニズムを介してシステムバス421に接続されていることがある。ネットワーキング環境では、コンピュータ410に関連して図示したプログラムモジュールまたはその一部は、リモートメモリストレージデバイスに格納されていることがある。例を挙げると、図4はリモートアプリケーションプログラム483がメモリデバイス481に置かれているものとして示しているが、これに限定されない。図示のネットワーク接続は例示であり、コンピュータ間の通信リンクを確立する他の手段が使用されることもある。
結論
以上、エクスパンダグラフからのハッシュ関数構築のためのシステムおよび方法を、構造上の特徴および/または方法に基づく操作または動作に特有の用語で説明してきたが、当然に理解されるように特許請求の範囲に定義された実施形態は、上述した特定の特徴または動作に必ずしも限定されるものではない。むしろ、システム100の特定の特徴および操作は、特許請求の範囲に記載の主題を実現する形態例として開示されたものである。
一実施形態によるエクスパンダグラフからのハッシュ関数構築のための例示システムを示している図である。 一実施形態によるエクスパンダグラフからのハッシュ関数構築のための例示手順を示している図である。 一実施形態によるエクスパンダグラフからのハッシュ関数構築のための例示手順を示している図である。 エクスパンダグラフからのハッシュ関数構築を完全にまたは部分的に実現できる適当なコンピューティング環境の例を示している図である。

Claims (15)

  1. 処理ユニットと、処理ユニットに結合された入力デバイス、出力デバイス及びコンピュータ読み取り可能記憶媒体とを備えたコンピューティングデバイスによってハッシュ関数を構築するための方法であって、
    前記処理ユニットが、前記入力デバイスから入力され、一定のエントロピー度を有する入力メッセージを複数のセグメントに分割するステップと、
    前記処理ユニットが、前記入力メッセージに含まれるエントロピー度を使用して、前記記憶媒体に格納されたエクスパンダグラフのn個の頂点を探索するステップであって、前記エクスパンダグラフは、特性pの有限フィールド上での超特異楕円曲線のグラフを備えるステップと、
    前記処理ユニットが、前記入力メッセージについて、前記探索されたエクスパンダグラフのn個の頂点の次の頂点への経路を、前記分割されたセグメントの態様に基づいて判定するステップと、
    前記処理ユニットが、前記グラフの頂点に複数のラベルを割り当てるステップと、
    前記処理ユニットが、前記探索されたエクスパンダグラフのn個の頂点のうち最後に探索された頂点に割り当てられたラベルを判定するステップと、
    前記処理ユニットが、ハッシュ関数の結果として前記判定されたラベルを前記出力デバイスに出力するステップであって、前記ハッシュ関数は衝突に対する耐性を有しているステップと
    を備えたことを特徴とする方法。
  2. 前記エクスパンダグラフはRamanujanグラフをさらに備えることを特徴とする請求項1に記載の方法。
  3. 前記エクスパンダグラフはLubotzky-Phillips-Sarnakエクスパンダグラフをさらに備えることを特徴とする請求項1に記載の方法。
  4. 前記結果は暗号ハッシュであることを特徴とする請求項1に記載の方法。
  5. 前記ハッシュ関数の衝突を見つけることは計算量的に困難であることを特徴とする請求項1に記載の方法。
  6. 前記エクスパンダグラフのn個の頂点を探索するステップが、前記エントロピー度を使用して前記n個の頂点を探索して、完全にランダムな頂点出力を特定するステップをさらに備えことを特徴とする請求項1に記載の方法。
  7. 前記入力メッセージを分割するステップは、エクストラクタ関数を使用して前記入力メッセージに関連するランダム度を判定するステップをさらに備えたことを特徴とする請求項に記載の方法。
  8. プロセッサと、プロセッサに結合された入力デバイス、出力デバイス及びコンピュータ読み取り可能記憶媒体とを備えたコンピューティングデバイスによってハッシュ関数を構築するための方法を実行するコンピュータプログラムの命令を格納する前記コンピュータ読み取り可能記憶媒体であって、前記方法は、
    前記プロセッサが、前記入力デバイスから入力され、一定のエントロピー度を有する入力メッセージを複数のセグメントに分割するステップと、
    前記プロセッサが、前記入力メッセージに含まれるエントロピー度を使用して前記記憶媒体に格納されたエクスパンダグラフのn個の頂点を探索し、n個の頂点の次の頂点への経路を判定するステップであって、前記エクスパンダグラフはLubotzky-Phillips-Sarnakエクスパンダグラフである、ステップと、
    前記プロセッサが、前記グラフの頂点にそれぞれのラベルを割り当てるステップと、
    前記プロセッサが、前記探索されたエクスパンダグラフのn個の頂点のうち最後に探索された頂点に割り当てられたラベルを判定するステップと、
    前記プロセッサが、ハッシュ関数の結果として前記判定されたラベルを前記出力デバイスに出力するステップと
    を備えたことを特徴とするコンピュータ読み取り可能記憶媒体。
  9. 前記エクスパンダグラフはRamanujanグラフであることを特徴とする請求項に記載のコンピュータ可読記憶媒体。
  10. 前記結果は暗号ハッシュであることを特徴とする請求項に記載のコンピュータ読み取り可能記憶媒体。
  11. 前記ハッシュ関数は衝突に対する耐性を有しており、前記ハッシュ関数の衝突を見つけることは計算量的に困難であることを特徴とする請求項に記載のコンピュータ読み取り可能記憶媒体。
  12. 前記エクスパンダグラフのn個の頂点を探索するステップは、前記エントロピー度を使用して前記n個の頂点を探索して、完全にランダムな頂点出力を特定するステップをさらに備えことを特徴とする請求項に記載のコンピュータ読み取り可能記憶媒体。
  13. 前記入力メッセージを分割するステップは、エクストラクタ関数を使用して前記入力メッセージに関連するランダム度を判定するステップをさらに備えることを特徴とする請求項に記載のコンピュータ読み取り可能記憶媒体。
  14. プロセッサと、プロセッサに結合された入力デバイス、出力デバイス及びコンピュータプログラム命令を備えたメモリとを備え、ハッシュ関数を構築するコンピューティングデバイスであって、
    前記メモリに格納されたエクスパンダグラフの中のn個の頂点にそれぞれのラベルを割り当てる手段と、
    前記入力デバイスから入力され、一定のエントロピー度を有する入力メッセージを複数のセグメントに分割する手段と、
    前記入力メッセージに含まれるエントロピー度を使用して、前記エクスパンダグラフのn個の頂点を探索する手段であって、前記分割された複数のセグメントのそれぞれを使用して前記エクスパンダグラフの中のn個の頂点の次の頂点への経路を判定し、次のセグメントからビットを読み取ってどの辺が現在の頂点から通り抜けたかを判定し、前記エクスパンダグラフは、特性pの有限フィールド上での超特異楕円曲線のグラフ、Ramanujanグラフ、及びLubotzky-Phillips-Sarnakエクスパンダグラフからなるグループから選択される手段と、
    前記探索されたエクスパンダグラフのn個の頂点のうち最後に探索された頂点に割り当てられたラベルを判定する手段と、
    ハッシュ関数の結果として、前記判定されたラベルを前記出力デバイスに出力する手段と
    を備えることを特徴とするコンピューティングデバイス。
  15. 記出力する手段は、ハッシュ関数の結果として暗号ハッシュを出力することを特徴とする請求項14に記載のコンピューティングデバイス。
JP2008538904A 2005-11-01 2006-10-16 エクスパンダグラフからのハッシュ関数構築 Expired - Fee Related JP4455661B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/263,701 US7382876B2 (en) 2005-11-01 2005-11-01 Hash function constructions from expander graphs
PCT/US2006/040538 WO2007053295A1 (en) 2005-11-01 2006-10-16 Hash function constructions from expander graphs

Publications (3)

Publication Number Publication Date
JP2009514036A JP2009514036A (ja) 2009-04-02
JP2009514036A5 JP2009514036A5 (ja) 2009-10-01
JP4455661B2 true JP4455661B2 (ja) 2010-04-21

Family

ID=37996294

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008538904A Expired - Fee Related JP4455661B2 (ja) 2005-11-01 2006-10-16 エクスパンダグラフからのハッシュ関数構築

Country Status (6)

Country Link
US (1) US7382876B2 (ja)
EP (1) EP1949255A4 (ja)
JP (1) JP4455661B2 (ja)
KR (1) KR101292927B1 (ja)
CN (1) CN101300569B (ja)
WO (1) WO2007053295A1 (ja)

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6842459B1 (en) 2000-04-19 2005-01-11 Serconet Ltd. Network combining wired and non-wired segments
US7680871B2 (en) * 2006-01-19 2010-03-16 Microsoft Corporation Approximating function properties with expander graphs
US8130955B2 (en) * 2007-12-21 2012-03-06 Spansion Llc Random number generation through use of memory cell activity
US8114117B2 (en) * 2008-09-30 2012-02-14 Tyco Healthcare Group Lp Compression device with wear area
US8798057B1 (en) 2008-09-30 2014-08-05 Juniper Networks, Inc. Methods and apparatus to implement except condition during data packet classification
US8804950B1 (en) 2008-09-30 2014-08-12 Juniper Networks, Inc. Methods and apparatus for producing a hash value based on a hash function
US7738454B1 (en) 2008-09-30 2010-06-15 Juniper Networks, Inc. Methods and apparatus related to packet classification based on range values
US7835357B2 (en) * 2008-09-30 2010-11-16 Juniper Networks, Inc. Methods and apparatus for packet classification based on policy vectors
US8675648B1 (en) 2008-09-30 2014-03-18 Juniper Networks, Inc. Methods and apparatus for compression in packet classification
US7961734B2 (en) * 2008-09-30 2011-06-14 Juniper Networks, Inc. Methods and apparatus related to packet classification associated with a multi-stage switch
US7796541B1 (en) 2008-09-30 2010-09-14 Juniper Networks, Inc. Methods and apparatus for range matching during packet classification based on a linked-node structure
US20100115276A1 (en) * 2008-10-31 2010-05-06 Apple Inc. System and method for derivating deterministic binary values
US8184803B2 (en) * 2008-12-29 2012-05-22 King Fahd University Of Petroleum And Minerals Hash functions using elliptic curve cryptography
US8111697B1 (en) 2008-12-31 2012-02-07 Juniper Networks, Inc. Methods and apparatus for packet classification based on multiple conditions
US7889741B1 (en) 2008-12-31 2011-02-15 Juniper Networks, Inc. Methods and apparatus for packet classification based on multiple conditions
US8488588B1 (en) 2008-12-31 2013-07-16 Juniper Networks, Inc. Methods and apparatus for indexing set bit values in a long vector associated with a switch fabric
US8363825B1 (en) 2009-05-21 2013-01-29 The United States Of America As Represented By The Director, National Security Agency Device for and method of collision-free hashing for near-match inputs
US20110055581A1 (en) * 2009-08-31 2011-03-03 Apple Inc. Hash function based on painting techniques
US8953603B2 (en) * 2009-10-28 2015-02-10 Juniper Networks, Inc. Methods and apparatus related to a distributed switch fabric
US9282060B2 (en) 2010-12-15 2016-03-08 Juniper Networks, Inc. Methods and apparatus for dynamic resource management within a distributed control plane of a switch
US8731187B2 (en) * 2010-12-21 2014-05-20 Microsoft Corporation Computing genus-2 curves using general isogenies
US9230548B2 (en) * 2012-06-06 2016-01-05 Cypress Semiconductor Corporation Hybrid hashing scheme for active HMMS
US8812935B2 (en) 2012-08-02 2014-08-19 Oracle International Corporation Using a data ECC to detect address corruption
JP6614979B2 (ja) * 2016-01-15 2019-12-04 三菱電機株式会社 暗号装置、暗号方法及び暗号プログラム
CA2984390A1 (en) * 2016-11-07 2018-05-07 Infosec Global Inc. Elliptic curve isogeny-based cryptographic scheme
KR101878213B1 (ko) * 2017-03-24 2018-07-13 경희대학교 산학협력단 가중치 그래프를 요약하는 방법, 장치 및 컴퓨터 프로그램
US11531859B2 (en) * 2017-08-08 2022-12-20 Samsung Electronics Co., Ltd. System and method for hashed compressed weighting matrix in neural networks
KR102009216B1 (ko) * 2018-05-14 2019-08-09 경희대학교 산학협력단 그래프 요약 및 압축 방법 및 시스템
WO2023287427A1 (en) * 2021-07-16 2023-01-19 Pqsecure Technologies, Llc A method and system for computing large-degree isogenies with an odd degree
US20240004933A1 (en) * 2022-06-29 2024-01-04 Tigergraph, Inc. Minhash signatures as vertices for fuzzy string match on graph

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5515307A (en) * 1994-08-04 1996-05-07 Bell Communications Research, Inc. Pseudo-random generator
US6104811A (en) 1996-08-16 2000-08-15 Telcordia Technologies, Inc. Cryptographically secure pseudo-random bit generator for fast and secure encryption
US6014733A (en) * 1997-06-05 2000-01-11 Microsoft Corporation Method and system for creating a perfect hash using an offset table
US6757686B1 (en) 2000-06-14 2004-06-29 International Business Machines Corporation Method and apparatus for representing database and query information using interval hash tree
US7120856B2 (en) * 2002-09-25 2006-10-10 Leanics Corporation LDPC code and encoder/decoder regarding same
US6988180B2 (en) 2003-09-29 2006-01-17 Microsoft Corporation Method and apparatus for lock-free, non-blocking hash table
US7289629B2 (en) * 2004-02-09 2007-10-30 Microsoft Corporation Primitives for fast secure hash functions and stream ciphers

Also Published As

Publication number Publication date
EP1949255A4 (en) 2009-12-23
CN101300569B (zh) 2010-06-16
KR20080063785A (ko) 2008-07-07
EP1949255A1 (en) 2008-07-30
CN101300569A (zh) 2008-11-05
JP2009514036A (ja) 2009-04-02
KR101292927B1 (ko) 2013-08-02
WO2007053295A1 (en) 2007-05-10
US20070098150A1 (en) 2007-05-03
US7382876B2 (en) 2008-06-03

Similar Documents

Publication Publication Date Title
JP4455661B2 (ja) エクスパンダグラフからのハッシュ関数構築
US11843687B2 (en) Systems, devices, and processes for homomorphic encryption
US11177944B1 (en) Method and system for confidential string-matching and deep packet inspection
Karmakar et al. Pushing the speed limit of constant-time discrete Gaussian sampling. A case study on the Falcon signature scheme
US10127244B2 (en) Systems and methods for dynamic data storage
Andrade et al. Lyra2: Efficient password hashing with high security against time-memory trade-offs
Ye et al. Revisit division property based cube attacks: key-recovery or distinguishing attacks?
Pal et al. Automated reassembly of fragmented images
Gakhov Probabilistic data structures and algorithms for big data applications
Li et al. A image encryption algorithm based on coexisting multi-attractors in a spherical chaotic system
Bernard et al. Log-s-unit lattices using explicit stickelberger generators to solve approx ideal-svp
CN110990829B (zh) 在可信执行环境中训练gbdt模型的方法、装置及设备
CN115580390A (zh) 一种安全多方计算下的多场景模式计算方法及系统
Lee On some graph densities in locally dense graphs
CN108370312B (zh) 加密装置、检索装置、计算机能读取的记录介质、加密方法和检索方法
US8824677B1 (en) Provably secure and efficient pseudorandom number generation
Alon et al. Cycle lengths in sparse random graphs
JP6844696B2 (ja) 認証タグ生成装置、認証タグ検証装置、方法及びプログラム
Guyeux et al. A Topological Study of Chaotic Iterations Application to Hash Functions
US12019781B2 (en) Method and system for confidential string-matching and deep packet inspection
Rajkumar et al. Fuzzy-Dedup: A secure deduplication model using cosine based Fuzzy interference system in cloud application
CN116192379A (zh) 密钥分段存储方法、装置、计算机设备和存储介质
Gbashi et al. Privacy Security System for Video Data Transmission in Edge-Fog-cloud Environment.
Horsley Small embeddings of partial Steiner triple systems
Zaman et al. Implementation aspects of supersingular isogeny-based cryptographic hash function

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090811

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090811

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20090811

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20090903

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090925

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091224

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100203

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130212

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130212

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140212

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees