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

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

Info

Publication number
JP5728596B2
JP5728596B2 JP2014005890A JP2014005890A JP5728596B2 JP 5728596 B2 JP5728596 B2 JP 5728596B2 JP 2014005890 A JP2014005890 A JP 2014005890A JP 2014005890 A JP2014005890 A JP 2014005890A JP 5728596 B2 JP5728596 B2 JP 5728596B2
Authority
JP
Japan
Prior art keywords
bit
chain variable
state data
data
variable data
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
JP2014005890A
Other languages
English (en)
Other versions
JP2014232301A (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 JP2014232301A publication Critical patent/JP2014232301A/ja
Application granted granted Critical
Publication of JP5728596B2 publication Critical patent/JP5728596B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • 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
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Power Engineering (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Algebra (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Description

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

Claims (10)

  1. メッセージを受信して複数の拡張メッセージを生成するメッセージ拡張部と、
    連鎖変数データを受信して初期状態データに変換する連鎖変数初期変換部と、
    前記初期状態データと、前記複数の拡張メッセージとに基づいて段階関数を繰り返し演算し、最終状態データを算出する段階関数演算部と、
    前記最終状態データを用いて、前記連鎖変数データから更新された連鎖変数データを生成して出力する連鎖変数最終変換部とを含み、
    前記メッセージ拡張部は、
    16個の32ビットのサブメッセージ(
    Figure 0005728596
    )が連接されて構成された512ビットのメッセージ(
    Figure 0005728596
    )を受信し、
    Figure 0005728596
    に基づいてそれぞれ12個の32ビットのサブ拡張メッセージ(
    Figure 0005728596
    )が連接されて構成される32個の384ビットの拡張メッセージ(
    Figure 0005728596
    )を生成することを特徴とする、ハッシュアルゴリズムにおける圧縮演算を行うための装置。(ここで、rは
    Figure 0005728596
    の整数であり、
    Figure 0005728596
    はxを16で割った時の余りを出力する演算を意味する。)
  2. 前記連鎖変数初期変換部は、
    16個の32ビットのサブ連鎖変数データ(
    Figure 0005728596
    )が連接されて構成された512ビットの連鎖変数データ(
    Figure 0005728596
    )を受信し、
    Figure 0005728596
    に基づいて16個の32ビットの初期サブ状態データ(
    Figure 0005728596
    )が連接されて構成される512ビットの初期状態データ(
    Figure 0005728596
    )に変換することを特徴とする、請求項に記載のハッシュアルゴリズムにおける圧縮演算を行うための装置。
  3. 前記段階関数演算部は、
    前記512ビットの初期状態データ(
    Figure 0005728596
    )と、前記32個の384ビットの拡張メッセージ(
    Figure 0005728596
    )とに基づいて前記段階関数を繰り返し演算し、前記最終状態データを算出し、
    前記段階関数は、下記の数式1〜5を演算する関数であることを特徴とする、請求項に記載のハッシュアルゴリズムにおける圧縮演算を行うための装置。
    (数式1)
    Figure 0005728596
    (数式2)
    Figure 0005728596
    (数式3)
    Figure 0005728596
    (数式4)
    Figure 0005728596
    (数式5)
    Figure 0005728596
    (ここで、
    Figure 0005728596
    はそれぞれ32ビットのx、yの論理的排他和を出力する演算、
    Figure 0005728596
    はそれぞれ32ビットのx、yを正の整数で表した値の和を232で割った時の余りを32ビットとして出力する演算、
    Figure 0005728596
    は32ビットのxを左にaビットだけ循環移動させて出力する演算を意味する。)
  4. 前記段階関数演算部は、
    前記段階関数を、rに対して0から31まで32回繰り返し演算し、16個の32ビットの最終サブ状態データ(
    Figure 0005728596
    )が連接されて構成される512ビットの最終状態データ(
    Figure 0005728596
    )を算出することを特徴とする、請求項に記載のハッシュアルゴリズムにおける圧縮演算を行うための装置。
  5. 前記連鎖変数最終変換部は、
    Figure 0005728596
    に基づいて512ビットの連鎖変数データ(
    Figure 0005728596
    )を更新し、更新された512ビットの連鎖変数データ(
    Figure 0005728596
    )を出力することを特徴とする、請求項に記載のハッシュアルゴリズムにおける圧縮演算を行うための装置。
  6. メッセージを受信して複数の拡張メッセージを生成するステップと、
    連鎖変数データを受信して初期状態データに変換するステップと、
    前記初期状態データと、前記複数の拡張メッセージとに基づいて段階関数を繰り返し演算し、最終状態データを算出するステップと、
    前記最終状態データを用いて、前記連鎖変数データから更新された連鎖変数データを生成して出力するステップとを含み、
    前記複数の拡張メッセージを生成するステップは、
    16個の32ビットのサブメッセージ(
    Figure 0005728596
    )が連接されて構成された512ビットのメッセージ(
    Figure 0005728596
    )を受信し、
    Figure 0005728596
    に基づいてそれぞれ12個の32ビットのサブ拡張メッセージ(
    Figure 0005728596
    )が連接されて構成される32個の384ビットの拡張メッセージ(
    Figure 0005728596
    )を生成することを特徴とする、ハッシュアルゴリズムにおける圧縮演算を行うための方法。(ここで、rは
    Figure 0005728596
    の整数であり、
    Figure 0005728596
    はxを16で割った時の余りを出力する演算を意味する。)
  7. 前記連鎖変数データを受信して前記初期状態データに変換するステップは、16個の32ビットのサブ連鎖変数データ(
    Figure 0005728596
    )が連接されて構成された512ビットの連鎖変数データ(
    Figure 0005728596
    )を受信し、
    Figure 0005728596
    に基づいて16個の32ビットの初期サブ状態データ(
    Figure 0005728596
    )が連接されて構成される512ビットの初期状態データ(
    Figure 0005728596
    )に変換することを特徴とする、請求項に記載のハッシュアルゴリズムにおける圧縮演算を行うための方法。
  8. 前記段階関数を繰り返し演算し、前記最終状態データを算出するステップは、
    前記512ビットの初期状態データ(
    Figure 0005728596
    )と、前記32個の384ビットの拡張メッセージ(
    Figure 0005728596
    )とに基づいて前記段階関数を繰り返し演算し、前記最終状態データを算出し、
    前記段階関数は、下記の数式1〜5を演算する関数であることを特徴とする、請求項に記載のハッシュアルゴリズムにおける圧縮演算を行うための方法。
    (数式1)
    Figure 0005728596
    (数式2)
    Figure 0005728596
    (数式3)
    Figure 0005728596
    (数式4)
    Figure 0005728596
    (数式5)
    Figure 0005728596
    (ここで、
    Figure 0005728596
    はそれぞれ32ビットのx、yの論理的排他和を出力する演算、
    Figure 0005728596
    はそれぞれ32ビットのx、yを正の整数で表した値の和を232で割った時の余りを32ビットとして出力する演算、
    Figure 0005728596
    は32ビットのxを左にaビットだけ循環移動させて出力する演算を意味する。)
  9. 前記段階関数を繰り返し演算し、前記最終状態データを算出するステップは、
    前記段階関数を、rに対して0から31まで32回繰り返し演算し、16個の32ビットの最終サブ状態データ(
    Figure 0005728596
    )が連接されて構成される512ビットの最終状態データ(
    Figure 0005728596
    )を算出することを特徴とする、請求項に記載のハッシュアルゴリズムにおける圧縮演算を行うための方法。
  10. 前記連鎖変数データから更新された連鎖変数データを生成して出力するステップは、
    Figure 0005728596
    に基づいて512ビットの連鎖変数データ(
    Figure 0005728596
    )を更新し、更新された512ビットの連鎖変数データ(
    Figure 0005728596
    )を出力することを特徴とする、請求項に記載のハッシュアルゴリズムにおける圧縮演算を行うための方法。
JP2014005890A 2013-05-29 2014-01-16 ハッシュアルゴリズムにおける圧縮演算を行うための装置および方法 Expired - Fee Related JP5728596B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2013-0060863 2013-05-29
KR20130060863A KR101428770B1 (ko) 2013-05-29 2013-05-29 해시 알고리즘에서의 압축 연산을 수행하기 위한 장치 및 방법

Publications (2)

Publication Number Publication Date
JP2014232301A JP2014232301A (ja) 2014-12-11
JP5728596B2 true JP5728596B2 (ja) 2015-06-03

Family

ID=51750076

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014005890A Expired - Fee Related JP5728596B2 (ja) 2013-05-29 2014-01-16 ハッシュアルゴリズムにおける圧縮演算を行うための装置および方法

Country Status (3)

Country Link
US (1) US9288041B2 (ja)
JP (1) JP5728596B2 (ja)
KR (1) KR101428770B1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW201501437A (zh) * 2013-06-26 2015-01-01 Dawnary Tech Co Ltd 直連式介質轉換器
KR101516573B1 (ko) * 2013-07-26 2015-05-04 한국전자통신연구원 해시 알고리즘에서의 압축 연산을 수행하기 위한 장치 및 방법
KR101688636B1 (ko) 2015-01-22 2016-12-21 한국전자통신연구원 고속 메시지 해싱을 위한 압축함수를 제공하는 연산 방법 및 그 장치

Family Cites Families (8)

* 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
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
JP2003302901A (ja) * 2002-04-11 2003-10-24 Sony Corp セルラーオートマタを適用したハッシュ値算出処理方法およびデータ処理装置
KR100916805B1 (ko) * 2006-09-15 2009-09-14 고려대학교 산학협력단 256비트 출력을 갖는 해쉬 알고리즘
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

Also Published As

Publication number Publication date
US20140355755A1 (en) 2014-12-04
JP2014232301A (ja) 2014-12-11
KR101428770B1 (ko) 2014-08-08
US9288041B2 (en) 2016-03-15

Similar Documents

Publication Publication Date Title
US9942039B1 (en) Applying modular reductions in cryptographic protocols
WO2015021934A1 (zh) 一种生成数字签名的方法及装置
JP2012014203A5 (ja)
JP5542896B2 (ja) 低電力暗号化装置および方法
CN101060408A (zh) 消息认证码生成装置、消息认证码验证装置和认证系统
JP6044738B2 (ja) 情報処理装置、プログラム及び記憶媒体
JP5728596B2 (ja) ハッシュアルゴリズムにおける圧縮演算を行うための装置および方法
JP2010049215A (ja) パラメータ生成装置、暗号処理システム、方法およびプログラム
Park et al. Secure data encryption for cloud-based human care services
JP5752337B1 (ja) 情報処理システム、情報処理方法およびプログラム
JP5869053B2 (ja) ハッシュアルゴリズムにおける圧縮演算を行うための装置および方法
JP2010256749A (ja) ハッシュ値生成装置、ハッシュ値生成方法およびプログラム
CN108846672B (zh) 个性化地址生成方法、装置、电子设备及存储介质
JP5744673B2 (ja) 情報処理システム、情報処理方法、及びプログラム
US8312363B2 (en) Residue generation
JP6212377B2 (ja) 演算装置、演算方法およびコンピュータプログラム
US9843442B2 (en) Operation method and apparatus for providing compression function for fast message hashing
JP6011465B2 (ja) 暗号モジュール生成装置
JP2019057181A (ja) 設計支援装置、設計支援方法およびコンピュータプログラム
JP6876423B2 (ja) ストリーム暗号における内部状態の初期化装置、方法及びプログラム
JP6093718B2 (ja) 拡大体乗算装置、拡大体乗算方法及びプログラム
JPWO2020116807A5 (ja)
JP2007293147A (ja) ハッシュ関数処理装置、同装置におけるハッシュ関数生成方法およびプログラム
JP2003330367A (ja) 加算の線形確率計算方法、加算の線形確率計算装置、加算の線形確率計算プログラム、及び該プログラムを記録したコンピュータが読み取り可能な記録媒体
JP2013076854A (ja) ハッシュ値生成装置、ハッシュ値生成プログラム及びハッシュ値生成方法

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20141202

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150225

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150406

R150 Certificate of patent or registration of utility model

Ref document number: 5728596

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees