JP5869053B2 - ハッシュアルゴリズムにおける圧縮演算を行うための装置および方法 - Google Patents

ハッシュアルゴリズムにおける圧縮演算を行うための装置および方法 Download PDF

Info

Publication number
JP5869053B2
JP5869053B2 JP2014126217A JP2014126217A JP5869053B2 JP 5869053 B2 JP5869053 B2 JP 5869053B2 JP 2014126217 A JP2014126217 A JP 2014126217A JP 2014126217 A JP2014126217 A JP 2014126217A JP 5869053 B2 JP5869053 B2 JP 5869053B2
Authority
JP
Japan
Prior art keywords
bit
message
state data
bits
chain variable
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
JP2014126217A
Other languages
English (en)
Other versions
JP2015026071A (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.)
Electronics and Telecommunications Research Institute ETRI
Original Assignee
Electronics and Telecommunications Research Institute ETRI
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 Electronics and Telecommunications Research Institute ETRI filed Critical Electronics and Telecommunications Research Institute ETRI
Publication of JP2015026071A publication Critical patent/JP2015026071A/ja
Application granted granted Critical
Publication of JP5869053B2 publication Critical patent/JP5869053B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/3059Digital compression and data reduction techniques where the original information is represented by a subset or similar information, e.g. lossy compression
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Description

本発明は、ハッシュアルゴリズムにおける圧縮演算を行うための装置および方法に関するものであって、より具体的には、1024ビットのメッセージおよび512ビットの連鎖変数データ、または2048ビットのメッセージおよび1024ビットの連鎖変数データを受信し、256ビットのレジスタ基盤の拡張メッセージ結合関数と段階関数とを繰り返し演算した後、最終拡張メッセージと結合して、ハッシュ値の基となる更新された512ビットまたは1024ビットの連鎖変数データを算出する、高速メッセージのハッシュアルゴリズムにおける圧縮演算を行うための装置および方法に関するものである。
メッセージに対する無欠性の提供は、各種機器の通信および資料格納のための暗号アプリケーションの主な機能である。ハッシュ(Hash)関数は、このようなメッセージの無欠性を保障するための関数であって、メッセージの署名、認証などにおいて広く活用される。一般的に、ハッシュ関数では、連鎖変数(Chain variable)データが用いられ、メッセージを特定の長さ単位に分割した後、各メッセージ単位を連鎖変数データと共に圧縮関数に入力して連鎖変数データを更新する。圧縮関数から出力される最終連鎖変数データは、多様なアルゴリズムによって加工され、当該メッセージのハッシュ値となる。
これに関連し、「256ビットの出力を有するハッシュアルゴリズム」を発明の名称とする韓国登録特許第10−0916805号は、任意の長さのメッセージのビット列を受信してワード列に変換し、入力されたメッセージを予め設定されたビットに変換して圧縮演算を行うことにより、連鎖変数を算出するハッシュアルゴリズム手法を提示している。
このような、ハッシュ関数の速度効率性を高めるためには、ハッシュ関数の核心アルゴリズムである圧縮関数が暗号アプリケーションに特化したチップまたはCPUに最適な実現が可能となるように設計される必要がある。
韓国登録特許第10−0916805号明細書
本発明の目的は、512ビットまたは1024ビットの出力値を有し、従来の攻撃に対する安全性を保障しながら、高速メッセージのハッシングが可能なハッシュ関数に適用される256ビットのレジスタ基盤の圧縮関数を演算する手法を提供することである。
上記の目的を達成するための、本発明にかかるハッシュアルゴリズムにおける圧縮演算を行うための装置は、メッセージおよび連鎖変数データを外部から受信するインタフェース部と、前記メッセージから、複数の拡張メッセージを生成するメッセージ拡張部と、連鎖変数データを、圧縮関数に対する初期状態データに変換する連鎖変数初期変換部と、初期状態データおよび複数の拡張メッセージに基づいて拡張メッセージ結合関数と段階関数とを繰り返した後、最終拡張メッセージと結合して最終状態データを算出する圧縮関数演算部と、最終状態データを用いて、連鎖変数データから更新された連鎖変数データを生成して出力する連鎖変数最終変換部とを含むことを特徴とする。
メッセージ拡張部は、32個の32ビットまたは64ビットのサブメッセージ(M[0],M[1],…,M[31])が連接されて構成された1024ビットまたは2048ビットのメッセージ(M=M[0]||M[1]||…||M[31])を受信し、下記の数式3に基づいて、それぞれ16個の32ビットまたは64ビットのサブ拡張メッセージ(W_r[0],W_r[1],…,W_r[15])が連接されて構成される27個の512ビットまたは1024ビットの拡張メッセージ(W_r=W_r[0]||W_r[1]||…||W_r[15]、0≦r≦26)を生成することを特徴とし、ここで、数式3は、W_0[i]=M[i]、0≦i≦15;W_1[i−16]=M[i]、16≦i≦31;W_r[i]=W_(r−2)[τ(i)]
Figure 0005869053
W_(r−1)[i]、2≦r≦26、0≦i≦15;τ(0)=3、τ(1)=2、τ(2)=0、τ(3)=1、τ(4)=7、τ(5)=4、τ(6)=5、τ(7)=6、τ(8)=11、τ(9)=10、τ(10)=8、τ(11)=9、τ(12)=15、τ(13)=12、τ(14)=13、τ(15)=14であり得る。
連鎖変数初期変換部は、16個の32ビットまたは64ビットのサブ連鎖変数データ(CV[0],CV[1],…,CV[15])が連接されて構成された512ビットまたは1024ビットの連鎖変数データ(CV=CV[0]||CV[1]||…||CV[15])を受信し、数式X_0[i]=CV[i]、0≦i≦15に基づいて、16個の32ビットまたは64ビットの初期サブ状態データ(X_0[0],X_0[1],…,X_0[15])が連接されて構成される512ビットまたは1024ビットの初期状態データ(X_0=X_0[0]||X_0[1]||…||X_0[15])に変換することを特徴とする。
圧縮関数演算部は、前記512ビットまたは1024ビットの初期状態データ(X_0=X_0[0]||X_0[1]||…||X_0[15])および前記27個の512ビットまたは1024ビットの拡張メッセージ(W_r[0],W_r[1],…,W_r[15];0≦r≦26)に基づいて前記最終状態データを算出するが、前記拡張メッセージ結合関数である下記の数式7と、前記段階関数である下記の数式8とを繰り返し演算した後、最終拡張メッセージと結合する下記の数式9を行うことで、前記最終状態データを算出することを特徴とする。ここで、数式7は、X_r[i]=X_r[i]
Figure 0005869053
W_r[i]、0≦i≦15であり、数式8は、X_r[i]=X_r[i]
Figure 0005869053
X_r[i+8]、0≦i≦7;X_r[i]=ROTL(X_r[i],a)、0≦i≦7;X_r[i]=X_r[i]
Figure 0005869053
C_r[i]、0≦i≦7;X_r[i]=X_r[i−8]
Figure 0005869053
X_r[i]、8≦i≦15;X_r[i]=ROTL(X_r[i],b)、8≦i≦15;X_r[i]=X_r[i]
Figure 0005869053
X_r[i+8]、0≦i≦7;X_r[9]=ROTL(X_r[9],c);X_r[10]=ROTL(X_r[10],2c);X_r[11]=ROTL(X_r[11],3c);X_r[13]=ROTL(X_r[13],c);X_r[14]=ROTL(X_r[14],2c);X_r[15]=ROTL(X_r[16],3c);X_(r+1)[i]=X_r[σ(i)]、0≦i≦15;σ(0)=6、σ(1)=4、σ(2)=5、σ(3)=7、σ(4)=12、σ(5)=15、σ(6)=14、σ(7)=13、σ(8)=2、σ(9)=0、σ(10)=1、σ(11)=3、σ(12)=8、σ(13)=11、σ(14)=10、σ(15)=9;であり、数式9は、X_26[i]=X_26[i]
Figure 0005869053
W_26[i]、0≦i≦15;を意味する。ここで、
Figure 0005869053
は、それぞれ32ビットまたは64ビットのx、yの排他的論理和を出力する演算、
Figure 0005869053
は、それぞれ32ビットまたは64ビットのx、yを正の整数で表した値の和を、232または264で割った時の余りを、32ビットまたは64ビットとして出力する演算、ROTL(x,j)は、32ビットまたは64ビットのxを左にjビットだけ循環移動させて出力する演算を意味する。
圧縮関数演算部は、前記拡張メッセージ結合関数と段階関数とを、rに対して0から25まで26回繰り返し演算した後、最終拡張メッセージと結合して、16個の32ビットまたは64ビットの最終サブ状態データ(X_26[0],X_26[1],…,X_26[15])が連接されて構成される512ビットまたは1024ビットの最終状態データ(X_26=X_26[0]||X_26[1]||…||X_26[15])を算出することを特徴とする。
連鎖変数最終変換部は、数式CV’[i]=X_26[i]、0≦i≦15に基づいて、512ビットまたは1024ビットの連鎖変数データ(CV=CV[0]||CV[1]||…||CV[15])を更新し、更新された512ビットまたは1024ビットの連鎖変数データ(CV’=CV’[0]||CV’[1]||…||CV’[15])を出力することを特徴とする。
上記の目的を達成するための、本発明にかかるハッシュアルゴリズムにおける圧縮演算を行うための方法は、メッセージおよび連鎖変数データを受信するステップと、前記メッセージから、複数の拡張メッセージを生成するステップと、前記連鎖変数データを、圧縮関数に対する初期状態データに変換するステップと、前記初期状態データおよび前記複数の拡張メッセージに基づいて拡張メッセージ結合関数と段階関数とを繰り返し演算した後、最終拡張メッセージと結合して最終状態データを算出するステップと、前記最終状態データを用いて、前記連鎖変数データから更新された連鎖変数データを生成して出力するステップとを含むことを特徴とする。
複数の拡張メッセージを生成するステップは、32個の32ビットまたは64ビットのサブメッセージ(M[0],M[1],…,M[31])が連接されて構成された1024ビットまたは2048ビットのメッセージ(M=M[0]||M[1]||…||M[31])を受信し、下記の数式3に基づいて、それぞれ16個の32ビットまたは64ビットのサブ拡張メッセージ(W_r[0],W_r[1],…,W_r[15])が連接されて構成される27個の512ビットまたは1024ビットの拡張メッセージ(W_r=W_r[0]||W_r[1]||…||W_r[15]、0≦r≦26)を生成することを特徴とする。ここで、数式3は、W_0[i]=M[i]、0≦i≦15;W_1[i−16]=M[i]、16≦i≦31;W_r[i]=W_(r−2)[τ(i)]
Figure 0005869053
W_(r−1)[i]、2≦r≦26、0≦i≦15;τ(0)=3、τ(1)=2、τ(2)=0、τ(3)=1、τ(4)=7、τ(5)=4、τ(6)=5、τ(7)=6、τ(8)=11、τ(9)=10、τ(10)=8、τ(11)=9、τ(12)=15、τ(13)=12、τ(14)=13、τ(15)=14であり得る。
連鎖変数データを、前記圧縮関数に対する前記初期状態データに変換するステップは、16個の32ビットまたは64ビットのサブ連鎖変数データ(CV[0],CV[1],…,CV[15])が連接されて構成された512ビットまたは1024ビットの連鎖変数データ(CV=CV[0]||CV[1]||…||CV[15])を受信し、数式X_0[i]=CV[i]、0≦i≦15に基づいて、16個の32ビットまたは64ビットの初期サブ状態データ(X_0[0],X_0[1],…,X_0[15])が連接されて構成される512ビットまたは1024ビットの初期状態データ(X_0=X_0[0]||X_0[1]||…||X_0[15])に変換することを特徴とする。
拡張メッセージ結合関数と段階関数とを繰り返し演算した後、最終拡張メッセージと結合して前記最終状態データを算出するステップは、前記512ビットまたは1024ビットの初期状態データ(X_0=X_0[0]||X_0[1]||…||X_0[15])および前記27個の512ビットまたは1024ビットの拡張メッセージ(W_r[0],W_r[1],…,W_r[15];0≦r≦26)に基づいて前記最終状態データを算出するが、前記拡張メッセージ結合関数である下記の数式7と、前記段階関数である下記の数式8とを繰り返し演算した後、最終拡張メッセージと結合する下記の数式9を行うことで、前記最終状態データを算出することを特徴とする。ここで、数式7は、X_r[i]=X_r[i]
Figure 0005869053
W_r[i]、0≦i≦15;であり、数式8は、X_r[i]=X_r[i]
Figure 0005869053
X_r[i+8]、0≦i≦7;X_r[i]=ROTL(X_r[i],a)、0≦i≦7;X_r[i]=X_r[i]
Figure 0005869053
C_r[i]、0≦i≦7;X_r[i]=X_r[i−8]
Figure 0005869053
X_r[i]、8≦i≦15;X_r[i]=ROTL(X_r[i],b)、8≦i≦15;X_r[i]=X_r[i]
Figure 0005869053
X_r[i+8]、0≦i≦7;X_r[9]=ROTL(X_r[9],c);X_r[10]=ROTL(X_r[10],2c);X_r[11]=ROTL(X_r[11],3c);X_r[13]=ROTL(X_r[13],c);X_r[14]=ROTL(X_r[14],2c);X_r[15]=ROTL(X_r[16],3c);X_(r+1)[i]=X_r[σi)]、0≦i≦15;σ(0)=6、σ(1)=4、σ(2)=5、σ(3)=7、σ(4)=12、σ(5)=15、σ(6)=14、σ(7)=13、σ(8)=2、σ(9)=0、σ(10)=1、σ(11)=3、σ(12)=8、σ(13)=11、σ(14)=10、σ(15)=9;であり、数式9は、X_26[i]=X_26[i]
Figure 0005869053
W_26[i]、0≦i≦15;を意味する。ここで、
Figure 0005869053
は、それぞれ32ビットまたは64ビットのx、yの排他的論理和を出力する演算、
Figure 0005869053
は、それぞれ32ビットまたは64ビットのx、yを正の整数で表した値の和を、232または264で割った時の余りを、32ビットまたは64ビットとして出力する演算、ROTL(x,j)は、32ビットまたは64ビットのxを左にjビットだけ循環移動させて出力する演算を意味する。
段階関数を繰り返し演算して前記最終状態データを算出するステップは、拡張メッセージ結合関数と段階関数とを、rに対して0から25まで26回繰り返し演算した後、最終拡張メッセージと結合して、16個の32ビットまたは64ビットの最終サブ状態データ(X_26[0],X_26[1],…,X_26[15])が連接されて構成される512ビットまたは1024ビットの最終状態データ(X_26=X_26[0]||X_26[1]||…||X_26[15])を算出することを特徴とする。
連鎖変数データから更新された連鎖変数データを生成して出力するステップは、数式CV’[i]=X_26[i]、0≦i≦15に基づいて、512ビットまたは1024ビットの連鎖変数データ(CV=CV[0]||CV[1]||…||CV[15])を更新し、更新された512ビットまたは1024ビットの連鎖変数データ(CV’=CV’[0]||CV’[1]||…||CV’[15])を出力することを特徴とする。
本発明によれば、単純なメッセージ拡張アルゴリズムを提供する一方、大部分のCPUにおいて普遍的に用いられるビット加算(Addition)、ビット循環移動(Rotation)、ビット排他的論理和(XOR:eXclusive−OR)演算子のみを組み合わせた圧縮演算アルゴリズムを提供することにより、256ビットのレジスタを用いた高速並列処理が可能であり、これにより、CPUが少ない演算量だけでも圧縮演算を行うことができる効果がある。
本発明の実施形態にかかるハッシュアルゴリズムにおける圧縮演算を行うための装置の構成を説明するためのブロック図である。 図1に示された拡張メッセージ結合関数および圧縮関数演算部で行われる演算を図式化した図である。 本発明にかかるハッシュアルゴリズムにおける圧縮演算を行うための方法を説明するためのフローチャートである。 図3に示された本発明にかかるハッシュアルゴリズムにおける圧縮演算を行うための方法において、拡張メッセージ結合関数と段階関数とを繰り返し演算する過程をより具体的に説明するためのフローチャートである。
以下、本発明を添付した図面を参照して詳細に説明する。ここで、繰り返される説明、本発明の要旨を不明にする可能性がある公知の機能、および構成に関する詳細な説明は省略する。本発明の実施形態は、当業界における平均的な知識を有する者に本発明をより完全に説明するために提供されるものである。したがって、図面における要素の形状および大きさなどは、より明確な説明のために誇張されることがある。
以下、図1および図2を参照して、本発明にかかるハッシュアルゴリズムにおける圧縮演算を行うための装置の構成およびその動作について説明する。
図1は、本発明の実施形態にかかるハッシュアルゴリズムにおける圧縮演算を行うための装置の構成を説明するためのブロック図である。
図1を参照すれば、本発明にかかる圧縮演算実行装置10は、外部からメッセージ(M)20および連鎖変数データ(CV)30を受信するインタフェース部100と、メッセージ(M)20から、複数の拡張メッセージを生成するメッセージ拡張部200と、連鎖変数データ(CV)30を、圧縮関数に対する初期状態データに変換する連鎖変数初期変換部300と、メッセージ拡張部200によって生成された複数の拡張メッセージと連鎖変数データ(CV)30との結合により連鎖変数データを更新する拡張メッセージ結合関数と、連鎖変数データ(CV)30を直接更新する段階関数とを繰り返し演算した後、連鎖変数データ(CV)30を最終拡張メッセージと結合して最終状態データを算出する圧縮関数演算部400と、圧縮関数演算部400によって算出された最終状態データを用いて、インタフェース部100に入力された連鎖変数データ(CV)30を更新した連鎖変数データ(CV’)40を出力する連鎖変数最終変換部500とを含む。
インタフェース部100は、使用者から、圧縮および暗号化の対象になるメッセージとして、1024ビット数または2048ビット数を有するメッセージ(M)20を受信する。また、インタフェース部100は、本発明にかかる圧縮演算実行装置10の外部に位置する連鎖変数生成手段(図示せず)から、512ビット数または1024ビットを有する連鎖変数データ(CV)30を受信する。この時、インタフェース部100は、入力されたメッセージ(M)20をメッセージ拡張部200に伝達する一方、連鎖変数データ(CV)30を連鎖変数初期変換部300に伝達する。
メッセージ拡張部200は、インタフェース部100から伝達された1024ビット数または2048ビット数を有するメッセージ(M)から、27個の512ビット数または1024ビット数を有する拡張メッセージ(W_0,W_1,…,W_26;W_r、0≦r≦26)を生成する。この時、メッセージ拡張部200に入力される1024ビットまたは2048ビットのメッセージ(M)は、下記の数式1で表されるように、それぞれ32ビット数または64ビット数を有する32個のサブメッセージ(M[0],M[1],…,M[31])が連接されて構成される。
Figure 0005869053
メッセージ拡張部200は、入力された1024ビットまたは2048ビットのメッセージ(M=M[0]||M[1]||…||M[31])から、下記の数式2で表されるように、16個の32ビット数または64ビット数を有するサブ拡張メッセージ(W_r[0],W_r[1],…,W_r[15])が連接されて構成される512ビット数または1024ビット数を有する27個の拡張メッセージ(W_r、0≦r≦26)を生成する。
Figure 0005869053
この時、メッセージ拡張部200は、下記の数式3に基づいて、1024ビットまたは2048ビットのメッセージ(M=M[0]||M[1]||…||M[31])から、計27個の512ビットまたは1024ビットの拡張メッセージ(W_0,W_1,…,W_26;W_r=W_r[0]||W_r[1]||…||W_r[15]、0≦r≦26)を生成する。
Figure 0005869053
また、メッセージ拡張部200は、1024ビットまたは2048ビットのメッセージ(M=M[0],M[1],…,M[31])から生成した27個の512ビットまたは1024ビットの拡張メッセージ(W_0,W_1,…,W_26;W_r=W_r[0]||W_r[1]||…||W_r[15]、0≦r≦26)を圧縮関数演算部400に出力する。
連鎖変数初期変換部300は、インタフェース部100から伝達された512ビット数または1024ビット数を有する連鎖変数データ(CV)を、512ビット数または1024ビット数を有する初期状態データ(X_0)に変換する。この時、連鎖変数初期変換部300に入力される512ビットまたは1024ビットの連鎖変数データ(CV)は、下記の数式4で表されるように、それぞれ32ビット数または64ビット数を有する16個のサブ連鎖変数データ(CV[0],CV[1],…,CV[15])が連接されて構成される。
Figure 0005869053
連鎖変数初期変換部300は、入力された512ビットまたは1024ビットの連鎖変数データ(CV=CV[0]||CV[1]||…||CV[15])を、下記の数式5で表されるように、16個の32ビット数または64ビット数を有する初期サブ状態データ(X_0[0],X_0[1],…,X_0[15])が連接されて構成される512ビット数または1024ビット数を有する初期状態データ(X_0=X_0[0]||X_0[1]||…||X_0[15])に変換する。
Figure 0005869053
この時、連鎖変数初期変換部300は、下記の数式6に基づいて、512ビットまたは1024ビットの連鎖変数データ(CV=CV[0]||CV[1]||…||CV[15])を、512ビットまたは1024ビットの初期状態データ(X_0=X_0[0]||X_0[1]||…||X_0[15])に変換する。
Figure 0005869053
連鎖変数初期変換部300は、入力された512ビットまたは1024ビットの連鎖変数データ(CV=CV[0]||CV[1]||…||CV[15])から変換した512ビットまたは1024ビットの初期状態データ(X_0=X_0[0]||X_0[1]||…||X_0[15])を圧縮関数演算部400に出力する。
圧縮関数演算部400は、連鎖変数初期変換部300から入力された512ビットまたは1024ビットの初期状態データ(X_0=X_0[0]||X_0[1]||…||X_0[15])を初期値として、メッセージ拡張部200から入力された27個の512ビットまたは1024ビットの拡張メッセージ(W_0,W_1,…,W_26;W_r=W_r[0]||W_r[1]||…||W_r[15]、0≦r≦26)を用いて、下記の拡張メッセージ結合関数である数式7と、段階関数である数式8との演算を順次に繰り返し行った後、数式9を行うことで、最終状態データを算出する。
Figure 0005869053
Figure 0005869053
ここで、rが偶数の時、aは5、bは23であり、奇数の時、aは25、bは19である。cは、32ビット単位の場合に8、64ビットの場合に16である。また、ここで、256ビットまたは512ビットのデータ(C_r=C_r[0]||C_r[1]||…||C_r[7])は、固定して用いる定数を意味する。
Figure 0005869053
ここで、
Figure 0005869053
は、それぞれ32ビットまたは64ビットのx、yの排他的論理和を出力する演算を意味し、
Figure 0005869053
は、それぞれ32ビットまたは64ビットのx、yを正の整数で表した値の和を、232または264で割った時の余りを、32ビットまたは64ビットとして出力する演算を意味し、ROTL(x,j)は、32ビットまたは64ビットのxを左にjビットだけ循環移動させて出力する演算を意味する。
圧縮関数演算部400は、数式7と数式8とを順次に26回繰り返し演算した後、数式9を行う。圧縮関数を演算した結果値(X_26[0],X_26[1],…,X_26[15])を、下記の数式10のように連接して最終状態データ(X_26)を算出する。圧縮関数演算部400は、最終状態データ(X_26)を連鎖変数最終変換部500に出力する。
Figure 0005869053
一方、圧縮関数演算部400が、サブ状態データ(X_r[0],X_r[1],…,X_r[15])およびサブ拡張メッセージ(W_r[0],W_r[1],…,W_r[15];0≦r≦26)を入力値として、拡張メッセージ結合関数と段階関数とを演算することにより、サブ状態データ(X_(r+1)[0],X_(r+1)[1],…,X_(r+1)[15])を算出する演算は、図2のように示すことができる。
連鎖変数最終変換部500は、圧縮関数演算部400から入力された最終状態データ(X_26=X_26[0]||X_26[1]||…||X_26[15])を用いて、インタフェース部100に入力される連鎖変数データ(CV=CV[0]||CV[1]||…||CV[15])を更新し、更新された連鎖変数データ(CV’=CV’[0]||CV’[1]||…||CV’[15])を出力する。この時、連鎖変数最終変換部500は、下記の数式12に基づいて、512ビット数を有する連鎖変数データ(CV=CV[0]||CV[1]||…||CV[15])を更新した連鎖変数データ(CV’=CV’[0]||CV’[1]||…||CV’[15])を生成する。
Figure 0005869053
連鎖変数最終変換部500から出力される更新された512ビットまたは1024ビットの連鎖変数データ(CV’=CV’[0]||CV’[1]||…||CV’[15])は、すでに公知の多様なアルゴリズムによって加工され、インタフェース部100に入力される1024ビットまたは2048ビットのメッセージ(M=M[0]||M[1]||…||M[31])に対するハッシュ値として用いられる。
以下、図3および図4を参照して、本発明にかかるハッシュアルゴリズムにおける圧縮演算を行うための装置によって行われる圧縮演算実行方法について説明する。前述の、図1および図2を参照して説明した本発明にかかる圧縮演算実行装置10の動作と一部重複する部分は省略して説明する。
図3は、本発明にかかるハッシュアルゴリズムにおける圧縮演算を行うための方法を説明するためのフローチャートである。
図3を参照すれば、本発明にかかる圧縮演算実行方法は、まず、インタフェース部100が、外部から1024ビットまたは2048ビットのメッセージ(M=M[0]||M[1]||…||M[31])および512ビットの連鎖変数データ(CV=CV[0]||CV[1]||…||CV[15])を受信する(S100)。この時、インタフェース部100は、入力された512ビットのメッセージ(M=M[0]||M[1]||…||M[31])をメッセージ拡張部200に伝達する一方、512ビットまたは1024ビットの連鎖変数データ(CV=CV[0]||CV[1]||…||CV[15])を連鎖変数初期変換部300に伝達する。
そして、メッセージ拡張部200は、数式3に基づいて、32個の32ビットまたは64ビットのサブメッセージ(M[0],M[1],…,M[31])が連接されて構成された1024ビットまたは2048ビットのメッセージ(M=M[0]||M[1]||…||M[31])から、それぞれ16個の32ビットまたは64ビットのサブ拡張メッセージ(W_r[0],W_r[1],…,W_r[15])が連接されて構成される27個の512ビットまたは1024ビットの拡張メッセージ(W_0,W_1,…,W_26;W_r=W_r[0]||W_r[1]||…||W_r[15]、0≦r≦26)を生成する(S200)。この時、メッセージ拡張部200は、生成した27個の512ビットまたは1024ビットの拡張メッセージ(W_r、0≦r≦26)を圧縮関数演算部400に出力する。
一方、連鎖変数初期変換部300は、インタフェース部100から伝達された16個の32ビットまたは64ビットのサブ連鎖変数データ(CV[0],CV[1],…,CV[15])が連接されて構成された512ビットまたは1024ビットの連鎖変数データ(CV=CV[0]||CV[1]||…||CV[15])を、数式6に基づいて、16個の32ビットの初期サブ状態データ(X_0[0],X_0[1],…,X_0[15])が連接されて構成される512ビットまたは1024ビットの初期状態データ(X_0=X_0[0]||X_0[1]||…||X_0[15])に変換する(S300)。この時、連鎖変数初期変換部300は、変換した512ビットまたは1024ビットの初期状態データ(X_0=X_0[0]||X_0[1]||…||X_0[15])を圧縮関数演算部400に出力する。
次に、圧縮関数演算部400は、メッセージ拡張部200から受信した27個の512ビットまたは1024ビットの拡張メッセージ(W_r、0≦r≦26)および連鎖変数初期変換部300から受信した512ビットまたは1024ビットの初期状態データ(X_0=X_0[0]||X_0[1]||…||X_0[15])に基づいて数式7および数式8による演算を順次に繰り返し行い、最終的に数式9を行う圧縮関数を演算する(S400)。この時、圧縮関数演算部400は、それぞれ32ビット数または64ビット数を有する16個の初期サブ状態データ(X_0[0],X_0[1],…,X_0[15])を1回目の圧縮関数の入力値とし、(r+1)回目の段階関数の演算時に、それぞれ32ビット数または64ビット数を有する16個のサブ拡張メッセージ(W_r[0],W_r[1],…,W_r[15])を適用して演算する。
そして、圧縮関数演算部400は、最後に演算された結果値(すなわち、X_26[0],X_26[1],…,X_26[15])を連接して512ビットの最終状態データ(X_26=X_26[0]||X_26[1]||…||X_26[15])を算出する(S500)。この時、圧縮関数演算部400は、算出した512ビットまたは1024ビットの最終状態データ(X_26=X_26[0]||X_26[1]||…||X_26[15])を連鎖変数最終変換部500に出力する。
最後に、連鎖変数最終変換部500は、圧縮関数演算部400から受信した512ビットまたは1024ビットの最終状態データ(X_26=X_26[0]||X_26[1]||…||X_26[15])を用いて、インタフェース部100に入力される512ビットまたは1024ビットの連鎖変数データ(CV=CV[0]||CV[1]||…||CV[15])を更新して出力する(S600)。この時、連鎖変数最終変換部500は、数式11に基づいて、インタフェース部100に入力される512ビットの連鎖変数データ(CV=CV[0]||CV[1]||…||CV[15])を更新し、更新された512ビットまたは1024ビットの連鎖変数データ(CV’=CV’[0]||CV’[1]||…||CV’[15])を生成して出力する。
図4は、図3に示された本発明にかかるハッシュアルゴリズムにおける圧縮演算を行うための方法を示したフローチャートにおいて、拡張メッセージ結合関数と段階関数とを繰り返し演算するS400ステップをより具体的に説明するためのフローチャートである。
図4を参照すれば、拡張メッセージ結合関数と段階関数とを繰り返し演算するS400ステップは、まず、圧縮関数演算部400が、メッセージ拡張部200から27個の512ビットまたは1024ビットの拡張メッセージ(W_r、0≦r≦26)を受信する一方、連鎖変数初期変換部300から512ビットまたは1024ビットの初期状態データ(X_0=X_0[0]||X_0[1]||…||X_0[15])を受信する(S410)。
次に、圧縮関数演算部400は、r値を0に設定した後、初期サブ状態データ(X_0[0],X_0[1],…,X_0[15])を入力値として、1回目の拡張メッセージ結合関数と段階関数との演算を開始する(S420)。
そして、(r+1)回目の演算において、圧縮関数演算部400は、数式7を先に計算し(S430)、次に、数式8を計算する(S440)。そして、圧縮関数演算部400は、前記S440ステップで計算した値を用いて、最終的に(r+1)回目の段階関数での結果値(X_(r+1)[0],X_(r+1)[1],…,X_(r+1)[15])を算出する(S450)。
次に、前記S430〜S450ステップによって(r+1)回目の段階関数の演算が行われた後、圧縮関数演算部400は、r値が25であるか否かを確認する(S460)。
前記S460ステップでの確認の結果、r値が25でない場合(すなわち、r値が25より小さい場合)、圧縮関数演算部400は、r値を1増加させ(S470)、前記S430〜S450ステップによる関数を繰り返し演算する。
反面、前記S460ステップでの確認の結果、r値が25であれば、圧縮関数演算部400は、26回目の段階関数の演算から出力された結果値(X_25[0],X_25[1],…,X_25[15])に最終的に数式9を行うことで、512ビットまたは1024ビットの最終状態データ(X_26=X_26[0]||X_26[1]||…||X_26[15])を連鎖変数最終変換部500に出力する(S480)。
一方、本発明にかかるハッシュアルゴリズムにおける圧縮演算を行うための方法は、多様なコンピュータ手段により実行可能なプログラム命令形態で実現され、コンピュータ読み取り可能な記録媒体に記録できる。前記コンピュータ読み取り可能な記録媒体は、プログラム命令、データファイル、データ構造などを単独または組み合わせて含むことができる。前記記録媒体に記録されるプログラム命令は、本発明のために特別に設計されて構成されたものであるか、コンピュータソフトウェア当業者に公知されて使用可能なものであってもよい。コンピュータ読み取り可能な記録媒体の例には、ハードディスク、フロッピィーディスクおよび磁気テープのような磁気媒体(magnetic media)、CD−ROM、DVDのような光記録媒体(optical media)、フロプティカルディスク(floptical disk)のような光磁気媒体(magneto−optical media)、およびROM、RAM、フラッシュメモリなどのようなプログラム命令を格納し実行するように特別に構成されたあらゆる形態のハードウェア装置が含まれる。プログラム命令の例には、コンパイラによって作られるような機械語コードだけでなく、インタプリタなどを用いてコンピュータによって実行可能な高級言語コードを含む。
以上、図面および明細書で最適な実施形態が開示された。ここで、特定の用語が使用されたが、これは単に本発明を説明するための目的で使用されたものであり、意味の限定や特許請求の範囲に記載された本発明の範囲を制限するために使用されたものではない。そのため、本技術分野における通常の知識を有する者であれば、これから多様な変形および均等な他の実施形態が可能であることを理解することができる。したがって、本発明の真の技術的保護範囲は、添付した特許請求の範囲の技術的思想によって定められなければならない。
10:圧縮演算実行装置
100:インタフェース部
200:メッセージ拡張部
300:連鎖変数初期変換部
400:圧縮関数演算部
500:連鎖変数最終変換部

Claims (7)

  1. メッセージおよび連鎖変数データを外部から受信するインタフェース部と、
    前記メッセージから、複数の拡張メッセージを生成するメッセージ拡張部と、
    前記連鎖変数データを、圧縮関数に対する初期状態データに変換する連鎖変数初期変換部と、
    前記初期状態データおよび前記複数の拡張メッセージに基づいて拡張メッセージ結合関数と段階関数とを繰り返した後、最終拡張メッセージと結合して最終状態データを算出する圧縮関数演算部と、
    前記最終状態データを用いて、前記連鎖変数データから更新された連鎖変数データを生成して出力する連鎖変数最終変換部とを含み、
    前記メッセージ拡張部は、
    32個の32ビットまたは64ビットのサブメッセージ(M[0],M[1],…,M[31])が連接されて構成された1024ビットまたは2048ビットのメッセージ(M=M[0]||M[1]||…||M[31])を受信し、下記の数式3に基づいて、それぞれ16個の32ビットまたは64ビットのサブ拡張メッセージ(W_r[0],W_r[1],…,W_r[15])が連接されて構成される27個の512ビットまたは1024ビットの拡張メッセージ(W_r=W_r[0]||W_r[1]||…||W_r[15]、0≦r≦26)を生成することを特徴とするハッシュアルゴリズムにおける圧縮演算を行うための装置。
    Figure 0005869053
  2. 前記連鎖変数初期変換部は、
    16個の32ビットまたは64ビットのサブ連鎖変数データ(CV[0],CV[1],…,CV[15])が連接されて構成された512ビットまたは1024ビットの連鎖変数データ(CV=CV[0]||CV[1]||…||CV[15])を受信し、数式X_0[i]=CV[i]、0≦i≦15に基づいて、16個の32ビットまたは64ビットの初期サブ状態データ(X_0[0],X_0[1],…,X_0[15])が連接されて構成される512ビットまたは1024ビットの初期状態データ(X_0=X_0[0]||X_0[1]||…||X_0[15])に変換することを特徴とする、請求項に記載のハッシュアルゴリズムにおける圧縮演算を行うための装置。
  3. 前記圧縮関数演算部は、
    前記512ビットまたは1024ビットの初期状態データ(X_0=X_0[0]||X_0[1]||…||X_0[15])および前記27個の512ビットまたは1024ビットの拡張メッセージ(W_r[0],W_r[1],…,W_r[15];0≦r≦26)に基づいて前記最終状態データを算出するが、
    前記拡張メッセージ結合関数である下記の数式7と、前記段階関数である下記の数式8とを繰り返し演算した後、最終拡張メッセージと結合する下記の数式9を行うことで、前記最終状態データを算出することを特徴とする、請求項に記載のハッシュアルゴリズムにおける圧縮演算を行うための装置。
    Figure 0005869053
    Figure 0005869053
    (ここで、rが偶数の時、aは5、bは23であり、奇数の時、aは25、bは19である。cは、32ビット単位の場合に8、64ビットの場合に16である。また、ここで、256ビットまたは512ビットのデータ(C_r=C_r[0]||C_r[1]||…||C_r[7])は、固定して用いる定数を意味する。)
    Figure 0005869053
    (ここで、
    Figure 0005869053
    は、それぞれ32ビットまたは64ビットのx、yの排他的論理和を出力する演算、
    Figure 0005869053
    は、それぞれ32ビットまたは64ビットのx、yを正の整数で表した値の和を、232または264で割った時の余りを、32ビットまたは64ビットとして出力する演算、ROTL(x,j)は、32ビットまたは64ビットのxを左にjビットだけ循環移動させて出力する演算を意味する。)
  4. 前記圧縮関数演算部は、
    前記拡張メッセージ結合関数と段階関数とを、rに対して0から25まで26回繰り返し演算した後、最終拡張メッセージと結合して、16個の32ビットまたは64ビットの最終サブ状態データ(X_26[0],X_26[1],…,X_26[15])が連接されて構成される512ビットまたは1024ビットの最終状態データ(X_26=X_26[0]||X_26[1]||…||X_26[15])を算出することを特徴とする、請求項に記載のハッシュアルゴリズムにおける圧縮演算を行うための装置。
  5. 前記連鎖変数最終変換部は、
    数式CV’[i]=X_26[i]、0≦i≦15に基づいて、512ビットまたは1024ビットの連鎖変数データ(CV=CV[0]||CV[1]||…||CV[15])を更新し、更新された512ビットまたは1024ビットの連鎖変数データ(CV’=CV’[0]||CV’[1]||…||CV’[15])を出力することを特徴とする、請求項に記載のハッシュアルゴリズムにおける圧縮演算を行うための装置。
  6. メッセージおよび連鎖変数データを受信するステップと、
    前記メッセージから、複数の拡張メッセージを生成するステップと、
    前記連鎖変数データを、圧縮関数に対する初期状態データに変換するステップと、
    前記初期状態データおよび前記複数の拡張メッセージに基づいて拡張メッセージ結合関数と段階関数とを繰り返し演算した後、最終拡張メッセージと結合して最終状態データを算出するステップと、
    前記最終状態データを用いて、前記連鎖変数データから更新された連鎖変数データを生成して出力するステップとを含み、
    前記複数の拡張メッセージを生成するステップは、
    32個の32ビットまたは64ビットのサブメッセージ(M[0],M[1],…,M[31])が連接されて構成された1024ビットまたは2048ビットのメッセージ(M=M[0]||M[1]||…||M[31])を受信し、下記の数式3に基づいて、それぞれ16個の32ビットまたは64ビットのサブ拡張メッセージ(W_r[0],W_r[1],…,W_r[15])が連接されて構成される27個の512ビットまたは1024ビットの拡張メッセージ(W_r=W_r[0]||W_r[1]||…||W_r[15]、0≦r≦26)を生成することを特徴とするハッシュアルゴリズムにおける圧縮演算を行うための方法。
    Figure 0005869053
  7. 前記拡張メッセージ結合関数と段階関数とを繰り返し演算した後、最終拡張メッセージと結合して前記最終状態データを算出するステップは、
    512ビットまたは1024ビットの初期状態データ(X_0=X_0[0]||X_0[1]||…||X_0[15])および前記27個の512ビットまたは1024ビットの拡張メッセージ(W_r[0],W_r[1],…,W_r[15];0≦r≦26)に基づいて前記最終状態データを算出するが、
    前記拡張メッセージ結合関数である下記の数式7と、前記段階関数である下記の数式8とを繰り返し演算した後、最終拡張メッセージと結合する下記の数式9を行うことで、前記最終状態データを算出することを特徴とする、請求項に記載のハッシュアルゴリズムにおける圧縮演算を行うための方法。
    Figure 0005869053
    Figure 0005869053
    (ここで、rが偶数の時、aは5、bは23であり、奇数の時、aは25、bは19である。cは、32ビット単位の場合に8、64ビットの場合に16である。また、256ビットまたは512ビットのデータ(C_r=C_r[0]||C_r[1]||…||C_r[7])は、固定して用いる定数を意味する。)
    Figure 0005869053
    (ここで、
    Figure 0005869053
    は、それぞれ32ビットまたは64ビットのx、yの排他的論理和を出力する演算、
    Figure 0005869053
    は、それぞれ32ビットまたは64ビットのx、yを正の整数で表した値の和を、232または264で割った時の余りを、32ビットまたは64ビットとして出力する演算、ROTL(x,j)は、32ビットまたは64ビットのxを左にjビットだけ循環移動させて出力する演算を意味する。)
JP2014126217A 2013-07-26 2014-06-19 ハッシュアルゴリズムにおける圧縮演算を行うための装置および方法 Expired - Fee Related JP5869053B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020130088514A KR101516573B1 (ko) 2013-07-26 2013-07-26 해시 알고리즘에서의 압축 연산을 수행하기 위한 장치 및 방법
KR10-2013-0088514 2013-07-26

Publications (2)

Publication Number Publication Date
JP2015026071A JP2015026071A (ja) 2015-02-05
JP5869053B2 true JP5869053B2 (ja) 2016-02-24

Family

ID=52391359

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014126217A Expired - Fee Related JP5869053B2 (ja) 2013-07-26 2014-06-19 ハッシュアルゴリズムにおける圧縮演算を行うための装置および方法

Country Status (3)

Country Link
US (1) US9479193B2 (ja)
JP (1) JP5869053B2 (ja)
KR (1) KR101516573B1 (ja)

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5897662A (en) * 1995-08-18 1999-04-27 International Business Machines Corporation Pseudo-random address generation mechanism that reduces address translation time
JP3160201B2 (ja) * 1996-03-25 2001-04-25 インターナショナル・ビジネス・マシーンズ・コーポレ−ション 情報検索方法、情報検索装置
US6258167B1 (en) * 1996-11-27 2001-07-10 Tokyo Electron Limited Process liquid film forming apparatus
US20030041242A1 (en) * 2001-05-11 2003-02-27 Sarver Patel Message authentication system and method
US20060034456A1 (en) * 2002-02-01 2006-02-16 Secure Choice Llc Method and system for performing perfectly secure key exchange and authenticated messaging
US7181009B1 (en) * 2002-12-18 2007-02-20 Cisco Technology, Inc. Generating message digests according to multiple hashing procedures
KR100916805B1 (ko) 2006-09-15 2009-09-14 고려대학교 산학협력단 256비트 출력을 갖는 해쉬 알고리즘
US20090319547A1 (en) * 2008-06-19 2009-12-24 Microsoft Corporation Compression Using Hashes
JP5504592B2 (ja) 2008-08-25 2014-05-28 ソニー株式会社 データ変換装置、およびデータ変換方法、並びにプログラム
JP5532560B2 (ja) 2008-08-25 2014-06-25 ソニー株式会社 データ変換装置、およびデータ変換方法、並びにプログラム
JP2010128392A (ja) 2008-11-28 2010-06-10 Canon Inc ハッシュ処理装置及びその方法
AR077680A1 (es) * 2009-08-07 2011-09-14 Dolby Int Ab Autenticacion de flujos de datos
WO2012135958A1 (en) * 2011-04-06 2012-10-11 Certicom Corp. Efficient implementation of hash algorithm on a processor
KR101330664B1 (ko) * 2012-06-15 2013-11-15 한국전자통신연구원 저전력 암호화 장치 및 방법
KR101428770B1 (ko) * 2013-05-29 2014-08-08 한국전자통신연구원 해시 알고리즘에서의 압축 연산을 수행하기 위한 장치 및 방법

Also Published As

Publication number Publication date
US20150032704A1 (en) 2015-01-29
JP2015026071A (ja) 2015-02-05
KR101516573B1 (ko) 2015-05-04
US9479193B2 (en) 2016-10-25
KR20150012691A (ko) 2015-02-04

Similar Documents

Publication Publication Date Title
US11218320B2 (en) Accelerators for post-quantum cryptography secure hash-based signing and verification
EP3758282A1 (en) Combined sha2 and sha3 based xmss hardware accelerator
JP5542896B2 (ja) 低電力暗号化装置および方法
EP3758281A1 (en) Fast xmss signature verification and nonce sampling process without signature expansion
EP4020435A1 (en) Efficient post-quantum secure software updates tailored to resource-constrained devices
JP6044738B2 (ja) 情報処理装置、プログラム及び記憶媒体
JP5728596B2 (ja) ハッシュアルゴリズムにおける圧縮演算を行うための装置および方法
US20190319802A1 (en) Parallel processing techniques for hash-based signature algorithms
JP5869053B2 (ja) ハッシュアルゴリズムにおける圧縮演算を行うための装置および方法
US20220123949A1 (en) Side channel protection for xmss signature function
JP5113833B2 (ja) 中央演算処理装置の演算能力を高めるための暗号方法および暗号装置
JP2004004784A (ja) ハッシュ・アルゴリズムを実装するためのシステム及び方法
KR102253211B1 (ko) 소수체와 이진체 상의 타원곡선을 지원하는 공개키 암호 시스템의 하드웨어 구현을 위한 연산장치 및 방법
US9843442B2 (en) Operation method and apparatus for providing compression function for fast message hashing
WO2015194117A1 (ja) 条件生成装置、条件生成方法、条件生成プログラムが格納された記録媒体、データベース検索システム、及び、データベース検索プログラムが格納された記録媒体
JP2011081594A (ja) データ処理装置及びデータ処理プログラム
JP5421861B2 (ja) ハッシュ関数の安全性評価装置、方法及びプログラム
WO2020178879A1 (ja) スレーブ装置およびスレーブプログラム
JPWO2020116807A5 (ja)
JP2007212768A (ja) 楕円曲線暗号における事前計算テーブル作成装置
JP2013076854A (ja) ハッシュ値生成装置、ハッシュ値生成プログラム及びハッシュ値生成方法
JP2003330367A (ja) 加算の線形確率計算方法、加算の線形確率計算装置、加算の線形確率計算プログラム、及び該プログラムを記録したコンピュータが読み取り可能な記録媒体
JP2007333815A (ja) 情報処理装置及びその制御方法、プログラム、記憶媒体

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150717

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150728

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20151019

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160106

R150 Certificate of patent or registration of utility model

Ref document number: 5869053

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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