JPWO2014013680A1 - ユニバーサルハッシュ関数演算装置、方法およびプログラム - Google Patents

ユニバーサルハッシュ関数演算装置、方法およびプログラム Download PDF

Info

Publication number
JPWO2014013680A1
JPWO2014013680A1 JP2014525702A JP2014525702A JPWO2014013680A1 JP WO2014013680 A1 JPWO2014013680 A1 JP WO2014013680A1 JP 2014525702 A JP2014525702 A JP 2014525702A JP 2014525702 A JP2014525702 A JP 2014525702A JP WO2014013680 A1 JPWO2014013680 A1 JP WO2014013680A1
Authority
JP
Japan
Prior art keywords
bit
message
output
cyclic
bits
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.)
Granted
Application number
JP2014525702A
Other languages
English (en)
Other versions
JP6187462B2 (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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Publication of JPWO2014013680A1 publication Critical patent/JPWO2014013680A1/ja
Application granted granted Critical
Publication of JP6187462B2 publication Critical patent/JP6187462B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0838Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
    • 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
    • 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3242Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/24Key scheduling, i.e. generating round keys or sub-keys for block encryption

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Power Engineering (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Error Detection And Correction (AREA)

Abstract

メッセージレジスタ81は、ビット数が素数であり、そのビット数が法とされた場合における最小の原始根が2である長さのメッセージを1ビットずつ逐次出力する。巡回鍵レジスタ82は、メッセージのビット数と同じビット数の鍵を巡回置換し、巡回置換した結果得られる巡回鍵ベクトルを逐次出力する。論理積演算手段83は、逐次出力される巡回鍵ベクトルと、1ビットずつ逐次出力されるメッセージビットとに基づいて、メッセージビットが1のときに巡回鍵ベクトルを出力し、メッセージビットが0のときに巡回鍵ベクトルと同じビット数のオールゼロベクトルを出力する。累積和演算手段84は、出力されたビット数と同数の演算結果を累積して排他的論理和を算出する。

Description

本発明は、本発明は、鍵付きのユニバーサルハッシュ関数の演算を行うユニバーサルハッシュ関数演算装置、ユニバーサルハッシュ関数演算およびユニバーサルハッシュ関数演算プログラムに関する。
ユニバーサルハッシュ関数とは、所定の入力空間の入力を固定長の出力へ変換する関数である。SHA-1 (Secure Hash Algorithm 1 )やMD5 (Message Digest 5)などの暗号学的ハッシュ関数と異なり、ランダムな鍵も入力として用いられる。入力x 、鍵k を用いたユニバーサルハッシュ関数H は、形式的に、以下に示す式1で表わされる。
y = H(k,x) (式1)
また、鍵の空間がD_key であるとき、関数の集合{H(k,*): k in D_key}は、ユニバーサルハッシュ関数の族(family)と呼ばれることもある。
ユニバーサルハッシュ関数は、CarterとWegmanによりその概念が最初に提案され、以後、暗号技術の様々な分野で要素技術として利用されている。その典型的な例として、メッセージ認証(Message Authentication Code, MAC)の分野においては、暗号学的ハッシュ関数を用いたHMAC(Keyed-Hashing for Message Authentication Code )などの方式以外に、ユニバーサルハッシュ関数とブロック暗号またはストリーム暗号を組み合わせた方法が存在する。この方法は、Carter-Wegman MAC(CW-MAC)と呼ばれている。ユニバーサルハッシュ関数の構成によっては、Carter-Wegman MACは非常に高速で演算できることが知られている。
ユニバーサルハッシュ関数に求められる性質にはいくつかのバリエーションがある。代表的な性質は、e-almost universalという性質である。入力空間D_in、出力空間D_out 、鍵空間D_key について、以下に示す式2の関係を満たす場合、関数H:D_key x D_in -> D_out がe-almost universalの性質を満たす(e-AU)ハッシュ関数であると言われる。
Pr_K[H(K,x) = H(K,x')] ≦ e , for all x ≠ x' , x,x' in D_in (式2)
すなわち、上記に示す式2は、鍵をD_key 上の一様な乱数としたとき、異なる2つの入力があった場合におけるH の出力が一致する確率が、たかだかe になることを示す。鍵付きの関数H が上記に示す式2を満たすときに、H はe-AUハッシュ関数であると言われる。
また、D_out がn-bit 空間であり、以下に示す式3の関係を満たす場合、H はe-almost XOR universalという性質を満たす(e-AXU )ハッシュ関数であると言われる。
Pr_K[H(K,x) xor H(K,x') = d ] ≦ e ,
for all x ≠ x' , x,x' in D_in, for all d in D_out (式3)
上記に示す式3において、x xor y は、x とy のビットごとの排他的論理和(XOR )を表す。入出力空間が同じであれば、e-AUよりe-AXU がより強い条件になる。e-AUハッシュ関数同様に、鍵付きの関数H が上記に示す式3を満たすときに、H はe-AXU ハッシュ関数であると言われる。
なお、ここでは、ユニバーサルハッシュ関数の最も基本的な形式として、2ブロック入力1ブロック出力のe-AUハッシュ関数、または、1ブロック入出力のe-AXU 関数を中心に説明する。ブロック長は、断りのない限りn bitsとする。H(k,x)が1ブロック入出力のe-AXU ハッシュ関数であれば、以下の式4で示される2ブロック入力1ブロック出力の関数G は、必ずe-AUハッシュ関数になる。
G(k,(x[1],x[2])) = H(k,x[1]) xor x[2] (式4)
さらに、2ブロック入力1ブロック出力のe-AUハッシュ関数を用いてデータを2分木状に処理することで、任意の長さのデータを処理できることが知られている(例えば、非特許文献1参照)。したがって、1ブロック入出力のe-AXU ハッシュ関数を考えれば、原則的にはあらゆる長さのユニバーサルハッシュ関数を生成することが可能になる。
e-AUまたはe-AXUであるユニバーサルハッシュ関数の具体的な作成方法について、数多くの研究がある。最も一般的な方法の一つとして、有限体GF(2n)を用いた方法がある。これは、例えば、入力空間がGF(2n)、出力空間がGF(2n)の場合、関数H を、以下に示す式5で定義する方法である。
H(K,x[1]) = x[1] mult K (式5)
式5において、K はGF(2n)上の一様な乱数を表わし、multは、GF(2n)上の乗算を表す。GF(2n)の要素は、2n個存在するため、n-bit 系列で一意に表現できる。よって、上記に示す式5のH は、n-bit 入出力の鍵付き関数であり、さらに、(1/2n)-AXUであることが知られている。この値は、n-bit 出力の場合、理論最小値である。また、式4について示した理由と同様の理由により、以下に示す式6のH が、2n-bit入力、および、n-bit 出力の鍵付き関数であり、かつ、(1/2n)-AU であることも分かる。
H(K,(x[1],x[2])) = x[1] mult K + x[2] (式6)
上記に示す式6において、+ は、GF(2n)上の加算(すなわち xor )を表す。それ以外については、式5に示す内容と同様である。
一方、非特許文献2には、Krawczykにより提案された、Toeplitz行列を用いる方法が記載されている。n 行m 列のバイナリToeplitz行列におけるi 行j 列成分をc(i,j) in {0,1} と表したとき、c(i,j)は、以下に示す式7の関係を満たす。
c(i,j) = c(i+1,j+1) for any 1≦i≦n-1, any 1≦j≦m-1 (式7)
すなわち、対角線上の成分は、全て同じであり、行列は、第一列と第一行に含まれるn+m-1 個の成分を指定することで、一意に決定される。また、非特許文献2には、n 行m 列のバイナリToeplitz行列M において、上記のn+m-1 個の独立な成分がそれぞれ{0,1} の範囲からランダムに与えられたとき、行列積により、m-bit 入力およびn-bit 出力を利用して、(1/2n)-AXUハッシュ関数が構成できることが記載されている。すなわち、この関数は、以下に示す式8で定義される。
ToplitzHash(K,x) = M・x (式8)
式8において、x は、m-bitを表わし、K は、(n+m-1)-bit の鍵を表わし、M は、第一列と第一行をK を用いて定められたランダムなn 行m 列のバイナリToeplitz行列を表す。また、M・xは、行列−ベクトル積を表し、その結果は、n-bit である。ビットごとの演算は、ブール変数として行われる。 具体的には、n 行n 列のバイナリ正方Toeplitz行列を用いる場合、鍵は、2n-1ビットになる。
さらに、非特許文献2には、m がn よりはるかに大きくなる場合を考え、第一列と第一行を、レジスタの初期値をランダムに設定した線形フィードバックレジスタ(Linear Feedback Shift Register, LFSR)の出力系列とする方法が記載されている。この方法を用いることで、鍵の長さを行列の大きさとは直接関係のない定数にすることができる。
なお、上述のn-bit 入出力のe-AXU ハッシュ関数を応用した方法も、いくつか存在する。このハッシュ関数は、ブロック暗号との組み合わせによる暗号化や認証に応用もされている。例えば、Liskovらにより提案された、Tweakable ブロック暗号と呼ばれる拡張されたブロック暗号が知られている。
Tweakable ブロック暗号は、鍵とメッセージ(すなわち、平文および暗号文)以外に、Tweak と呼ばれる外部パラメータをもつ。メッセージとTweak が共にn-bit であるようなTweakable ブロック暗号は、AES (Advanced Encryption Standard)など、通常のn-bit ブロック暗号E と、n-bit 入出力のe-AXU ハッシュ関数H があれば、作成可能であることが知られている(例えば、非特許文献3、非特許文献4、非特許文献5参照)。
図6は、n-bit ブロック暗号E とn-bit 入出力e-AXU ハッシュ関数H から、n-bit ブロックおよびn-bit Tweak のTweakable ブロック暗号を構成する方法の例を示す説明図である。上述するTweakable ブロック暗号は、具体的には、図6に示されるように、Tweak をH に与えた結果をE の上下でマスクとして用いることで一般的に構成可能である。
なお、メッセージとTweak が共にn-bit であるようなTweakable ブロック暗号は、例えば、認証暗号化方式(特許文献1、非特許文献6参照。)や、ストレージ向けの暗号化方式(非特許文献7参照。)、オンライン型の暗号化(非特許文献8参照。)などに用いられる。
他にも、n-bit 入出力のe-AXU ハッシュ関数を、ハードウェアの物理特性の個体差を利用した個別IDの生成などにも利用可能である。例えば、非特許文献9には、128-bit入出力のe-AXU ハッシュ関数が、Toeplitz行列で構成されることが記載されている。なお、非特許文献9には、e-AXU ハッシュ関数が64-bit入力128-bit 出力で、行列が128次のToeplitz 行列であることも記載されている。
なお、非特許文献10には、有限体の要素からなる行列のランクに関する補題が記載されている。また、非特許文献11には、All-one-polynomialの既約性の条件について記載されている。
米国特許第7046802号明細書
K. Minematsu, Y. Tsunoo Provably Secure MACs from Differentially-Uniform Permutations and AES-Based Implementations. FSE 2006, LNCS 4047, pp. 226-241. H. Krawczyk. LFSR-based Hashing and Authentication. CRYPTO 1994, LNCS 839, Springer 1994, pp. 129-139 M. Liskov, R. L. Rivest, D. Wagner: Tweakable Block Ciphers. Advances in Cryptology - CRYPTO 2002, 22nd Annual International Cryptology Conference, Santa Barbara, California, USA, August 18-22, 2002, Proceedings. Lecture Notes in Computer Science 2442 Springer 2002, pp. 31-46. K. Minematsu, Improved Security Analysis of XEX and LRW Modes, Selected Areas in Cryptography- SAC'06, LNCS 4356, pp.96-113, Springer, 2007. K. Minematsu, T. Matsushima, Generalization and Extension of XEX* Mode, IEICE Transactions 92-A(2): 517-524 (2009). Phillip Rogaway: Efficient Instantiations of Tweakable Blockciphers and Refinements to Modes OCB and PMAC. Advances in Cryptology - ASIACRYPT 2004, 10th International Conference on the Theory and Application of Cryptology and Information Security, Jeju Island, Korea, December 5-9, 2004, Proceedings. Lecture Notes in Computer Science 3329 Springer 2004, pp. 16-31 NIST Special Publication 800-38E, Recommendation for Block Cipher Modes of Operation: The XTS-AES Mode for Confidentiality on Storage Devices, Jan. 2010. P. Rogaway, H. Zhang, Online Ciphers from Tweakable Blockciphers, Topics in Cryptology - CT-RSA 2011 - The Cryptographers' Track at the RSA Conference 2011, San Francisco, CA, USA, February 14-18, 2011. Proceedings. Lecture Notes in Computer Science 6558 Springer 2011, pp. 237-249. R. Maes, P. Tuyls, I. Verbauwhede, Low-Overhead Implementation of a Soft Decision Helper Data Algorithm for SRAM PUFs, Cryptographic Hardware and Embedded Systems - CHES 2009, 11th International Workshop, Lausanne, Switzerland, September 6-9, 2009, Proceedings. Lecture Notes in Computer Science 5747 Springer 2009, pp. 332-347 D. E. Daykin. "On the Rank of the Matrix f(A) and the Enumeration of Certain Matrices over a Finite Field." Journal London Math. Society, Vol. 35, pp. 36-42, 1960. P.K.S. Wah, and M. Z. Wang. "Realization and application of the Massey-Omura lock." Digital Comm., Int. Zurich Seminar, IEEE Press, 1984, pp. 175 - 182.
上記の式5および式6に示すユニバーサルハッシュ関数の演算には、GF(2n)上の乗算が必要である。例えば、ユニバーサルハッシュ関数を暗号に関係する用途に用いる場合、e が十分小さいe-AXU またはe-AUハッシュ関数を作成しようとすると、n の値は、例えば、64、128 、256 、または512 などの大きい数字になる。その場合の計算コストは、一般にかなり大きいものになってしまうという問題がある。
また、Toeplitz行列とLFSRとを組み合わせた方式を用いる場合、AXU としてのバイアスe は低下する。例えば、LFSRの長さがn-bit のとき、上記のToeplitz行列とLFSRとを組み合わせた方式は、(n/2n)-AXUになる。さらに、上記のバイアスを達成するためには、LFSRのn-bit レジスタの初期値をランダムに与えるだけでなく、LFSRの既約なフィードバック多項式もランダムに決められている必要がある。よって、LFSRのn-bit レジスタの初期値をランダムに与える際に、n-bit の鍵が必要になる。また、LFSRの既約なフィードバック多項式をランダムに決める際、2n-bit の鍵が必要になる。
すなわち、Toeplitz行列を用いる方式では、e-AXU におけるバイアスe を1/2nに近づけようとすると、LFSRを使う場合でも使わない場合でも、鍵長がほぼ2n-bitになってしまう。鍵長が2n-bitになるということは、鍵長がn-bit である場合に比べて、鍵を生成するコストが増大することを意味する。
図7は、非特許文献2に記載されたn-bit 入出力e-AXU ハッシュ関数を、LFSRを用いずにハードウェア実装した例を示す説明図である。また、図8は、非特許文献2に記載されたn-bit 入出力e-AXU ハッシュ関数を、LFSRを用いてハードウェア実装した例を示す説明図である。図8に例示する実装は、LFSR(図8におけるn-bit LSFR)を用いて実装されている点において、図7に例示する実装と異なる。
Toeplitz行列を用いる方式をハードウェアで実装する場合、レジスタを増やす必要があるため、回路が複雑になり、回路の規模が増大してしまうという問題がある。
なお、上記の点を考慮しても、Toeplitz行列を用いたユニバーサルハッシュ関数は、一般的に、ハードウェアの実装に適した方式である。特に、Toeplitz行列とLFSRとを組み合わせた方式では、鍵が固定されている場合、非常に容易にハードウェアの実装が可能である。しかし、Toeplitz行列とLFSRとを組み合わせた方式では、鍵が固定できない場合、鍵に依存してフィードバック多項式が変わることに対応する実装を必要とするため、ハードウェアによる実装がより複雑になってしまうという問題がある。
そこで、本発明は、n-bit 入出力のe-AXU ハッシュ関数方式を用いる場合に、鍵長がn-bit であっても、バイアスを理論最小値(1/2n)に近づけることができるユニバーサルハッシュ関数演算装置を提供することを目的とする。
本発明によるユニバーサルハッシュ関数演算装置は、ビット数が素数であり、そのビット数が法とされた場合における最小の原始根が2である長さのメッセージを記憶し、メッセージを1ビットずつ逐次出力するメッセージレジスタと、メッセージのビット数と同じビット数の鍵を記憶し、左または右のいずれか固定された一方向へ鍵を1ビットずつ逐次的に巡回置換し、巡回置換した結果得られる巡回鍵ベクトルを逐次出力する巡回鍵レジスタと、巡回鍵レジスタから逐次出力される巡回鍵ベクトルと、メッセージレジスタから1ビットずつ逐次出力されるメッセージビットとに基づいて、そのメッセージビットが1のときに巡回鍵ベクトルを出力し、そのメッセージビットが0のときに巡回鍵ベクトルと同じビット数のオールゼロベクトルを出力する論理積演算手段と、論理積演算手段によって出力されたビット数と同数の演算結果を累積して排他的論理和を算出し、ビット数と同数の演算結果が累積されたときに、排他的論理和の算出結果を出力する累積和演算手段とを備えたことを特徴とする。
本発明によるユニバーサルハッシュ関数演算方法は、ビット数が素数であり、そのビット数が法とされた場合における最小の原始根が2である長さのメッセージを記憶するメッセージレジスタから、メッセージを1ビットずつ逐次出力し、メッセージのビット数と同じビット数の鍵を記憶する巡回鍵レジスタから、左または右のいずれか固定された一方向へ鍵を1ビットずつ逐次的に巡回置換し、巡回置換した結果得られる巡回鍵ベクトルを逐次出力し、巡回鍵レジスタから逐次出力される巡回鍵ベクトルと、メッセージレジスタから1ビットずつ逐次出力されるメッセージビットとに基づいて、そのメッセージビットが1のときに巡回鍵ベクトルを出力し、そのメッセージビットが0のときに巡回鍵ベクトルと同じビット数のオールゼロベクトルを出力し、出力されたビット数と同数の演算結果を累積して排他的論理和を算出し、ビット数と同数の演算結果が累積されたときに、排他的論理和の算出結果を出力することを特徴とする。
本発明によるユニバーサルハッシュ関数演算プログラムは、コンピュータに、ビット数が素数であり、そのビット数が法とされた場合における最小の原始根が2である長さのメッセージを記憶するメッセージレジスタから、メッセージを1ビットずつ逐次出力するメッセージ出力処理、メッセージのビット数と同じビット数の鍵を記憶する巡回鍵レジスタから、左または右のいずれか固定された一方向へ鍵を1ビットずつ逐次的に巡回置換し、巡回置換した結果得られる巡回鍵ベクトルを逐次出力する巡回鍵ベクトル出力処理、巡回鍵レジスタから逐次出力される巡回鍵ベクトルと、メッセージレジスタから1ビットずつ逐次出力されるメッセージビットとに基づいて、そのメッセージビットが1のときに巡回鍵ベクトルを出力し、そのメッセージビットが0のときに巡回鍵ベクトルと同じビット数のオールゼロベクトルを出力する論理積演算処理、および、出力されたビット数と同数の演算結果を累積して排他的論理和を算出し、ビット数と同数の演算結果が累積されたときに、排他的論理和の算出結果を出力する累積和演算処理を実行させることを特徴とする。
本発明によれば、n-bit 入出力のe-AXU ハッシュ関数方式を用いる場合に、鍵長がn-bit であっても、バイアスを理論最小値(1/2n)に近づけることができる。
本発明によるユニバーサルハッシュ関数演算装置の一実施形態を示すブロック図である。 本実施形態のユニバーサルハッシュ関数演算装置の動作例を示す説明図である。 本実施形態のユニバーサルハッシュ関数演算装置の動作例を示すフローチャートである。 ユニバーサルハッシュ関数をハードウェアで実装する方法の例を示す説明図である。 本発明によるユニバーサルハッシュ関数演算装置の概要を示すブロック図である。 n-bit ブロックおよびn-bit Tweak のTweakable ブロック暗号を構成する方法の例を示す説明図である。 非特許文献2に記載されたn-bit 入出力e-AXU ハッシュ関数を、LFSRを用いずにハードウェア実装した例を示す説明図である。 非特許文献2に記載されたn-bit 入出力e-AXU ハッシュ関数を、LFSRを用いてハードウェア実装した例を示す説明図である。
以下、本発明の実施形態を図面を参照して説明する。以下、特に断りのない限り、+ をビットごとの排他的論理和を表すものとする。また、1ブロックの長さをn ビットとする。また、ベクトルx のi-bit 左巡回シフトをrot(i,x)と記す。
図1は、本発明によるユニバーサルハッシュ関数演算装置の一実施形態を示すブロック図である。本実施形態のユニバーサルハッシュ関数演算装置10は、入力手段100と、メッセージレジスタ手段101と、巡回鍵レジスタ手段102と、論理積演算手段103と、累積和演算手段104と、出力手段105とを備えている。
ユニバーサルハッシュ関数演算装置10は、例えば、CPU、メモリ、磁気ディスク等により実現される。また、ユニバーサルハッシュ関数演算装置の各手段は、例えば、磁気ディスクに格納されたプログラムをCPU上で動作させることにより実現される。
具体的には、メッセージレジスタ手段101と、巡回鍵レジスタ手段102と、論理積演算手段103と、累積和演算手段104は、プログラム(ユニバーサルハッシュ関数演算プログラム)に従って動作するコンピュータのCPUによって実現される。
入力手段100は、対象のn-bit メッセージM=(M[1],...,M[n]) およびn-bit 鍵K=(K[1],...,K[n]) を入力する。入力手段100は、例えば、キーボードなどの文字入力装置により実現される。また、入力手段100は、他の装置より入力されたメッセージを受信するインタフェースなどにより実現されていてもよい。なお、以下の説明では、メッセージM に含まれるビット単位の情報M[i]をメッセージビットと記すこともある。
また、ここで、n (すなわち、ビット数)は、素数であり、n を法とする原始根(primitive root of modulo n)は2を満たす。したがって、メッセージM は、ビット数が素数であって、そのビット数が法とされた場合における最小の原始根が2である。また、鍵K のビット数は、メッセージM のビット数と同じビット数(具体的には、n )である。
入力手段100は、入力されたメッセージM をメッセージレジスタ手段101に記憶させる。また、入力手段100は、入力された鍵K を巡回鍵レジスタ手段102に記憶させる。
メッセージレジスタ手段101は、入力されたメッセージを記憶し、記憶されたメッセージを外部クロックに応じて1-bit ずつ逐次出力する。具体的には、クロックは、1 からn まで動くものとし、メッセージレジスタ手段101は、クロックがi のときM[i]を出力する。
巡回鍵レジスタ手段102は、入力された鍵K を記録し、これを外部クロックに応じて巡回シフトさせた値を出力する。具体的には、クロックは1 からn まで動くものとし、巡回鍵レジスタ手段102は、クロックがi のときrot(i-1,K)を出力する。
なお、本実施形態では、鍵を左方向へ1ビットずつ逐次的に巡回置換する場合を例示しているが、巡回置換する方向は左方向に限定されず、右方向であってもよい。すなわち、巡回鍵レジスタ手段102は、左または右のいずれか固定された一方向へ1ビットずつ、クロックに応じて逐次的に巡回置換し、巡回置換した結果得られるn ビットの巡回鍵ベクトルをクロックに応じて逐次出力する。
論理積演算手段103は、メッセージレジスタ手段101が出力するM[i]と、巡回鍵レジスタ手段102が出力するrot(i-1,K)から、ベクトルとビットの論理積を算出し、算出結果を出力する。すなわち、クロックがi のときに論理積演算手段103が出力する結果をS(i)とすると、M[i]が1 のとき、S(i)はrot(i-1,K)になり、M[i]が0 のとき、S(i)はn-bitの全ゼロ値になる。
言い換えると、論理積演算手段103は、メッセージビットM[i]が1 のときに巡回鍵ベクトルrot(i-1,K)を出力し、メッセージビットM[i]が0 のときに巡回鍵ベクトルと同じビット数(n ビット)のオールゼロベクトルを出力する。
累積和演算手段104は、クロックが1 からn に動く間の全ての論理積演算手段103の出力の排他的論理和を出力する。具体的には、累積和演算手段104は、S(1) + S(2) + ... + S(n)を出力する。
すなわち、累積和演算手段104は、論理積演算手段103によって出力されたビット数と同数の演算結果(例えば、1番目のクロックに応じた演算結果からn番目のクロックに応じた演算結果まで)を累積して、排他的論理和(例えば、XOR )を算出する。そして、累積和演算手段104は、上述するビット数と同数の演算結果が累積されたときに(例えば、n番目のクロックに応じて)、排他的論理和の算出結果を出力する。なお、累積和演算手段104は、全てのS(i)を記録して排他的論理和を算出してもよく、全てのS(i)を記録せず、逐次的に排他的論理和を算出してもよい。
出力手段105は、累積和演算手段104の出力結果(すなわち、S(1) + S(2) + ... + S(n))を、例えば、コンピュータのディスプレイ装置や、プリンタなどへ出力する。
次に、本実施形態のユニバーサルハッシュ関数演算装置の動作を図2および図3を用いて説明する。図2は、本実施形態のユニバーサルハッシュ関数演算装置の動作例を示す説明図である。また、図3は、本実施形態のユニバーサルハッシュ関数演算装置の動作例を示すフローチャートである。
まず、入力手段100は、対象のn-bit メッセージM = (M[1], M[2], ..., M[n]) とn-bit 鍵K を入力する(図3におけるステップG1)。図2に示すように、入力されたメッセージM は、メッセージレジスタ手段101に入力され、鍵K は、巡回鍵レジスタ手段102に入力される。
次に、メッセージレジスタ手段101は、1 からn まで動くクロックに従って、メッセージビットM[i](i はクロック)を出力する(ステップG2)。具体的には、図2に示すように、メッセージレジスタ手段101は、n-bit メッセージ(M[1], M[2], ..., M[n]) の各ビットM[i]をi=1 からn について、逐次出力する。以下の説明では、この出力をB と記す。
次に、巡回鍵レジスタ手段102は、1 からn まで動くクロックに従って、鍵K の(i-1)-bit 巡回シフト(i はクロック)であるrot(i-1,K)を出力する(ステップG3)。具体的には、巡回鍵レジスタ手段102は、図2に示すように、n-bit 鍵K をi=1 からn についてi-bit 巡回シフトした結果であるrot(1,K)を逐次出力する。以下の説明では、この出力をV と記す。
次に、論理積演算手段103は、B が1 か否か判断する(ステップG4)。B が1 の場合(ステップG4におけるy)、論理積演算手段103は、V をそのまま出力する。一方、B が1 ではない場合、すなわち、B が0 の場合(ステップG4におけるn)、論理積演算手段103は、V を全ゼロ値にして出力する(ステップG5)。
具体的には、図2に示すように、論理積演算手段103は、i=1 からn について、M[i]=1 の場合、rot(i,K)を出力し、M[i]=0 の場合、全ゼロベクトルを出力する。
累積和演算手段104は、直前の累積和S とV との和を算出し、S を更新する(ステップG6)。なおS の初期値は、ステップG1において、予め全てのビットがゼロに設定される。具体的には、累積和演算手段104は、図2に示すように、i=1 からn について、論理積演算手段103から入力されたベクトルを加算(すなわち、論理的排他和を算出)し、その結果を出力する。
その後、累積和演算手段104は、クロックi がn に達したか否かを判断する(ステップG7)、クロックi がn に達していない場合(ステップG7におけるy)、i に1 加算され(ステップG8)、ステップG2以降の処理が再度行われる。一方、クロックi がn に達していない場合、すなわち、i=n の場合(ステップG7におけるn)、累積和演算手段104は、累積和S を出力する(ステップG9)。
すなわち、累積和演算手段104は、S の更新処理をクロックi がn になるまで継続し、i がn になった場合に累積和S を出力する。
以上のように、本実施形態によれば、メッセージレジスタ手段101は、n bitsのメッセージM を1ビットずつ逐次出力する。ただし、ビット数n は、素数であり、最小のprimitive root modulo n が2 となるという条件を満たす。巡回鍵レジスタ手段102は、左または右のいずれか固定された一方向へ鍵K を1ビットずつ逐次的に巡回置換し、巡回置換した結果得られる巡回鍵ベクトルを逐次出力する。論理積演算手段103は、巡回鍵ベクトルとメッセージビットM[i]とに基づいて、M[i]が1のときに巡回鍵ベクトルを出力し、M[i]が0のときに巡回鍵ベクトルと同じビット数のオールゼロベクトルを出力する。累積和演算手段104は、n 個の演算結果を累積して排他的論理和を算出し、n 個の演算結果が累積されたときに、排他的論理和の算出結果を出力する。
よって、n-bit 入出力のe-AXU ハッシュ関数方式を用いる場合に、鍵長がn-bit であっても、バイアスを理論最小値(1/2n)に近づけることができる。
すなわち、本実施形態によれば、入出力長が共にn-bit であって、バイアスe が理論最小値である1/2nに十分近いe-AXUハッシュ関数の演算を行う場合に、Toeplitz行列ベースの方式よりも、シンプルな演算が可能であり、かつ、鍵長を短くできる。以下、この理由を説明する。
まず、ベクトルx のi-bit 巡回シフトをrot(i,x)とする。なお、巡回シフトの方向は、左でも右でも本発明による効果は変わらないが、ここでは、左方向に統一して説明する。x がn-bit 値(x[1],x[2],...,x[n])の場合、rot(i,x) = (x[i],x[i+1],...,x[n],x[1],...,x[i-1]) になる。さらに、rot(0,x) = rot(n,x) = x である。本発明による方法おけるn-bit 入力をx=(x[1],x[2],...,x[n])、n-bit 鍵をK とすると、出力は、以下に示す式9で表わすことができる。
y = XOR_{i:x[i]=1} rot(i-1,K) (式9)
上記の式9におけるXOR_{i:x[i]=1}は、x[i]=1を満たすi について全てXOR 演算を行うことを意味する。このとき、y は、rot(i-1,K)を第i 列(i=1,...,n)とした行列M と入力の列ベクトルxTとの行列−ベクトル積に等しい。ここで、Mは、rot(0,K)=Kを第一列としたn 次巡回行列になっている。このとき、上記の式9で表される鍵付き関数は、n が素数かつ最小のprimitive root modulo n が2 のとき、n-bit 入出力(2/2n)-AXUハッシュ関数になることがわかる。
このことは、非特許文献10に記載された有限体の要素からなる行列のランクに関する補題と、非特許文献11に記載されたAll-one-polynomialの既約性の条件とを組み合わせることにより導かれる。このとき、バイアスe の理論最小値は(1/2n)であるため、この関数は、ほぼ理論最適なバイアスを実現できるといえる。
次に、上述するユニバーサルハッシュ関数をハードウェアで実装する方法を説明する。図4は、ユニバーサルハッシュ関数をハードウェアで実装する場合の例を示す説明図である。
例えば、Toeplitz行列を用いたn-bit 入出力e-AXU ハッシュ関数を、LFSRを用いずにハードウェア実装する場合、図7に示すように、(2n-1)-bitのシフトレジスタ21を用いて、(2n-1)-bitの初期値を鍵とし、クロックごとに、固定された位置のn-bitを取り出す処理が必要になる。このとき、バイアスe は、理論最小値の1/2nになる。
一方、Toeplitz行列を用いたn-bit 入出力e-AXU ハッシュ関数を、LFSRを用いてハードウェア実装する場合、図8に示すように、n-bit のLFSR22を用いて、n-bit の初期値を鍵とし、クロックごとに、レジスタ全体(n-bit)を取り出す処理を行えばよい。しかし、この場合、LFSRのフィードバック多項式をランダムに決定するために、約n-bit の別の鍵を必要とする。そのため、この鍵の情報を保持するために、約n-bit のレジスタが必要となる。さらに、フィードバック多項式を鍵依存にするため、ハードウェア実装がより複雑になる。なお、この場合、バイアスe は、理論最小値より若干大きいn/2nになることが知られている。
しかし、図4に示すように、n-bit の巡回レジスタ23を用いて、n-bit の初期値を鍵とし、クロックごとにレジスタ全体(n-bit )を取り出す処理で本実施形態によるユニバーサルハッシュ関数演算処理を実現できる。したがって、本実施形態の演算方法は、図7および図8に示す実装方法と比較すると、レジスタを短くでき、さらに、実装方法も単純にすることができる。
なお、Toeplitz行列を用いた方式では、n を任意の正整数とすることができるのに対し、本発明によるユニバーサルハッシュ関数演算方法では、n が素数、かつ、最小のprimitive root modulo n が2 となるという条件が必要である。しかし、このような素数は数が多く、かつ、ある程度均一に分布して存在しているため、実用上大きな問題にならない。例えば、e=1/264 程度のバイアスを実現したい場合、条件を満たすn として、n=61やn=67を選択すればよく、また、e=1/2128程度のバイアスを実現したい場合、条件を満たすn とし、n=107 やn=131 を選択すればよい。
さらに、上述するように、n-bit 入出力のe-AXU ハッシュ関数を、n-bit ブロック暗号との組み合わせなどにより、様々なタイプの暗号化および認証へ応用することが可能である。
次に、本発明の概要を説明する。図5は、本発明によるユニバーサルハッシュ関数演算装置の概要を示すブロック図である。本発明によるユニバーサルハッシュ関数演算装置は、ビット数(例えば、n )が素数であり、そのビット数が法とされた場合における最小の原始根が2(すなわち、最小のprimitive root modulo n が2を満たすn )である長さのメッセージ(例えば、M = (M[1], M[2], ..., M[n]) )を記憶し、メッセージを1ビットずつ逐次(例えば、クロックに応じて)出力するメッセージレジスタ81(例えば、メッセージレジスタ手段101)と、メッセージのビット数と同じビット数(例えば、n )の鍵(例えば、K = (K[1],...,K[n]) )を記憶し、左または右のいずれか固定された一方向へ鍵を1ビットずつ逐次的に(例えば、クロックに応じて)巡回置換し、巡回置換した結果得られる(例えば、n ビットの)巡回鍵ベクトルを逐次(例えば、クロックに応じて)出力する巡回鍵レジスタ82(例えば、巡回鍵レジスタ手段102)と、巡回鍵レジスタ82から逐次出力される巡回鍵ベクトルと、メッセージレジスタ81から1ビットずつ逐次出力されるメッセージビット(例えば、M[i])とに基づいて、そのメッセージビットが1のときに巡回鍵ベクトルを出力し、そのメッセージビットが0のときに巡回鍵ベクトルと同じビット数のオールゼロベクトルを出力する論理積演算手段83(例えば、論理積演算手段103)と、論理積演算手段83によって出力されたビット数と同数の演算結果を累積して(例えば、1番目のクロックに応じた演算結果からn番目のクロックに応じた演算結果までを累積して)排他的論理和(例えば、XOR )を算出し、ビット数と同数の演算結果が累積されたときに(例えば、n番目のクロックに応じて)、排他的論理和の算出結果を出力する累積和演算手段84(例えば、累積和演算手段104)とを備えている。
そのような構成により、n-bit 入出力のe-AXU ハッシュ関数方式を用いる場合に、鍵長がn-bit であっても、バイアスを理論最小値(1/2n)に近づけることができる。
また、メッセージレジスタ81は、メッセージを1ビットずつクロックに応じて逐次出力し、巡回鍵レジスタ82は、鍵を1ビットずつクロックに応じて逐次的に巡回置換し、巡回置換した結果得られる巡回鍵ベクトルをクロックに応じて逐次出力し、論理積演算手段83は、クロックに応じて逐次出力される巡回鍵ベクトルとメッセージビットとに基づいて、巡回鍵ベクトルまたはオールゼロベクトルを出力し、累積和演算手段84は、メッセージのビット数と同じクロック数(例えば、クロック1からn)までの演算結果を累積して排他的論理和を算出し、クロック数がメッセージのビット数と同じとき(クロックnのとき)に、排他的論理和の算出結果を出力してもよい。
以上、実施形態及び実施例を参照して本願発明を説明したが、本願発明は上記実施形態および実施例に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
この出願は、2012年7月18日に出願された日本特許出願2012−159505を基礎とする優先権を主張し、その開示の全てをここに取り込む。
本発明は、鍵付きのユニバーサルハッシュ関数の演算を行うユニバーサルハッシュ関数演算装置に好適に適用される。例えば、本発明は、無線または有線を用いたデータ通信における認証や、データベースの改ざん検知、装置上のメモリの正当性検証といった用途に適用される。
10 ユニバーサルハッシュ関数演算装置
21 シフトレジスタ
22 LFSR
23 巡回レジスタ
100 入力手段
101 メッセージレジスタ手段
102 巡回鍵レジスタ手段
103 論理積演算手段
104 累積和演算手段
105 出力手段

Claims (6)

  1. ビット数が素数であり、当該ビット数が法とされた場合における最小の原始根が2である長さのメッセージを記憶し、前記メッセージを1ビットずつ逐次出力するメッセージレジスタと、
    前記メッセージのビット数と同じビット数の鍵を記憶し、左または右のいずれか固定された一方向へ前記鍵を1ビットずつ逐次的に巡回置換し、巡回置換した結果得られる巡回鍵ベクトルを逐次出力する巡回鍵レジスタと、
    前記巡回鍵レジスタから逐次出力される前記巡回鍵ベクトルと、前記メッセージレジスタから1ビットずつ逐次出力されるメッセージビットとに基づいて、当該メッセージビットが1のときに巡回鍵ベクトルを出力し、当該メッセージビットが0のときに前記巡回鍵ベクトルと同じビット数のオールゼロベクトルを出力する論理積演算手段と、
    前記論理積演算手段によって出力された前記ビット数と同数の演算結果を累積して排他的論理和を算出し、前記ビット数と同数の演算結果が累積されたときに、前記排他的論理和の算出結果を出力する累積和演算手段とを備えた
    ことを特徴とするユニバーサルハッシュ関数演算装置。
  2. メッセージレジスタは、メッセージを1ビットずつクロックに応じて逐次出力し、
    巡回鍵レジスタは、鍵を1ビットずつクロックに応じて逐次的に巡回置換し、巡回置換した結果得られる巡回鍵ベクトルをクロックに応じて逐次出力し、
    論理積演算手段は、クロックに応じて逐次出力される巡回鍵ベクトルとメッセージビットとに基づいて、巡回鍵ベクトルまたはオールゼロベクトルを出力し、
    累積和演算手段は、メッセージのビット数と同じクロック数までの演算結果を累積して排他的論理和を算出し、クロック数がメッセージのビット数と同じときに、前記排他的論理和の算出結果を出力する
    請求項1記載のユニバーサルハッシュ関数演算装置。
  3. ビット数が素数であり、当該ビット数が法とされた場合における最小の原始根が2である長さのメッセージを記憶するメッセージレジスタから、前記メッセージを1ビットずつ逐次出力し、
    前記メッセージのビット数と同じビット数の鍵を記憶する巡回鍵レジスタから、左または右のいずれか固定された一方向へ前記鍵を1ビットずつ逐次的に巡回置換し、巡回置換した結果得られる巡回鍵ベクトルを逐次出力し、
    前記巡回鍵レジスタから逐次出力される前記巡回鍵ベクトルと、前記メッセージレジスタから1ビットずつ逐次出力されるメッセージビットとに基づいて、当該メッセージビットが1のときに巡回鍵ベクトルを出力し、当該メッセージビットが0のときに前記巡回鍵ベクトルと同じビット数のオールゼロベクトルを出力し、
    出力された前記ビット数と同数の演算結果を累積して排他的論理和を算出し、前記ビット数と同数の演算結果が累積されたときに、前記排他的論理和の算出結果を出力する
    ことを特徴とするユニバーサルハッシュ関数演算方法。
  4. メッセージレジスタからメッセージを1ビットずつクロックに応じて逐次出力し、
    巡回鍵レジスタから鍵を1ビットずつクロックに応じて逐次的に巡回置換し、巡回置換した結果得られる巡回鍵ベクトルをクロックに応じて逐次出力し、
    クロックに応じて逐次出力される巡回鍵ベクトルとメッセージビットとに基づいて、巡回鍵ベクトルまたはオールゼロベクトルを出力し、
    メッセージのビット数と同じクロック数までの演算結果を累積して排他的論理和を算出し、クロック数がメッセージのビット数と同じときに、前記排他的論理和の算出結果を出力する
    請求項3記載のユニバーサルハッシュ関数演算方法。
  5. コンピュータに、
    ビット数が素数であり、当該ビット数が法とされた場合における最小の原始根が2である長さのメッセージを記憶するメッセージレジスタから、前記メッセージを1ビットずつ逐次出力するメッセージ出力処理、
    前記メッセージのビット数と同じビット数の鍵を記憶する巡回鍵レジスタから、左または右のいずれか固定された一方向へ前記鍵を1ビットずつ逐次的に巡回置換し、巡回置換した結果得られる巡回鍵ベクトルを逐次出力する巡回鍵ベクトル出力処理、
    前記巡回鍵レジスタから逐次出力される前記巡回鍵ベクトルと、前記メッセージレジスタから1ビットずつ逐次出力されるメッセージビットとに基づいて、当該メッセージビットが1のときに巡回鍵ベクトルを出力し、当該メッセージビットが0のときに前記巡回鍵ベクトルと同じビット数のオールゼロベクトルを出力する論理積演算処理、および、
    出力された前記ビット数と同数の演算結果を累積して排他的論理和を算出し、前記ビット数と同数の演算結果が累積されたときに、前記排他的論理和の算出結果を出力する累積和演算処理
    を実行させるためのユニバーサルハッシュ関数演算プログラム。
  6. コンピュータに、
    メッセージ出力処理で、メッセージレジスタからメッセージを1ビットずつクロックに応じて逐次出力させ、
    巡回鍵ベクトル出力処理で、巡回鍵レジスタから鍵を1ビットずつクロックに応じて逐次的に巡回置換させ、巡回置換した結果得られる巡回鍵ベクトルをクロックに応じて逐次出力させ、
    論理積演算処理で、クロックに応じて逐次出力される巡回鍵ベクトルとメッセージビットとに基づいて、巡回鍵ベクトルまたはオールゼロベクトルを出力させ、
    累積和演算処理で、メッセージのビット数と同じクロック数までの演算結果を累積して排他的論理和を算出させ、クロック数がメッセージのビット数と同じときに、前記排他的論理和の算出結果を出力させる
    請求項5記載のユニバーサルハッシュ関数演算プログラム。
JP2014525702A 2012-07-18 2013-06-27 ユニバーサルハッシュ関数演算装置、方法およびプログラム Expired - Fee Related JP6187462B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2012159505 2012-07-18
JP2012159505 2012-07-18
PCT/JP2013/004021 WO2014013680A1 (ja) 2012-07-18 2013-06-27 ユニバーサルハッシュ関数演算装置、方法およびプログラム

Publications (2)

Publication Number Publication Date
JPWO2014013680A1 true JPWO2014013680A1 (ja) 2016-06-30
JP6187462B2 JP6187462B2 (ja) 2017-08-30

Family

ID=49948524

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014525702A Expired - Fee Related JP6187462B2 (ja) 2012-07-18 2013-06-27 ユニバーサルハッシュ関数演算装置、方法およびプログラム

Country Status (4)

Country Link
US (1) US9515830B2 (ja)
EP (1) EP2876626B1 (ja)
JP (1) JP6187462B2 (ja)
WO (1) WO2014013680A1 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2947814B1 (en) * 2013-01-17 2018-03-14 Nippon Telegraph and Telephone Corporation Tampering detection device, tampering detection method, and program
US11349668B2 (en) 2017-02-21 2022-05-31 Mitsubishi Electric Corporation Encryption device and decryption device
JP6834771B2 (ja) * 2017-05-19 2021-02-24 富士通株式会社 通信装置および通信方法
JP2020024376A (ja) * 2018-08-08 2020-02-13 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America データ保護方法、認証サーバ、データ保護システム及びデータ構造
CN111314053B (zh) * 2018-12-12 2023-02-10 上海领甲数据科技有限公司 一种数据加密和解密方法
CN113839772B (zh) * 2021-09-18 2023-05-05 哲库科技(北京)有限公司 托普利茨哈希算法的处理电路、芯片和终端

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10301492A (ja) * 1997-04-23 1998-11-13 Sony Corp 暗号化装置および方法、復号装置および方法、並びに情報処理装置および方法
WO2009128370A1 (ja) * 2008-04-15 2009-10-22 日本電気株式会社 調整値付きブロック暗号装置、暗号生成方法および記録媒体
WO2011105367A1 (ja) * 2010-02-24 2011-09-01 日本電気株式会社 ブロック暗号化装置、ブロック復号装置、ブロック暗号化方法、ブロック復号方法及びプログラム

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US2354951A (en) * 1941-04-08 1944-08-01 Adolph C Erisman Operating mechanism for registering devices
JP2509563B2 (ja) * 1986-03-28 1996-06-19 株式会社東芝 イメ―ジサイズ変換回路
US6182216B1 (en) * 1997-09-17 2001-01-30 Frank C. Luyster Block cipher method
US7046802B2 (en) 2000-10-12 2006-05-16 Rogaway Phillip W Method and apparatus for facilitating efficient authenticated encryption
US20090055458A1 (en) * 2004-09-24 2009-02-26 O'neil Sean Substitution Boxes
WO2014132664A1 (ja) * 2013-02-28 2014-09-04 パナソニック株式会社 認証システム、不揮発性記録メディア、ホストコンピュータ、および認証方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10301492A (ja) * 1997-04-23 1998-11-13 Sony Corp 暗号化装置および方法、復号装置および方法、並びに情報処理装置および方法
WO2009128370A1 (ja) * 2008-04-15 2009-10-22 日本電気株式会社 調整値付きブロック暗号装置、暗号生成方法および記録媒体
WO2011105367A1 (ja) * 2010-02-24 2011-09-01 日本電気株式会社 ブロック暗号化装置、ブロック復号装置、ブロック暗号化方法、ブロック復号方法及びプログラム

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
DANIEL J. BERNSTEIN: "The Poly1305-AES Message-Authentication Code", LNCS, INTERNATIONAL WORKSHOP ON FAST SOFTWARE ENCRYPTION, vol. 3557, JPN6017023813, 2005, pages 32 - 49, XP047030094, ISSN: 0003587820 *
MORRIS DWORKIN: "Recommendation for Block Ciper Modes of Operation: Galois/Counter Mode (GCM) and GMAC", COMPUTER SECURITY, vol. NIST Special Publication 800-38D, JPN6017023816, November 2007 (2007-11-01), ISSN: 0003587821 *
PALASH SARKAR: "A New Multi-Linear Universal Hash Family", CRYPTOLOGY EPRINT ARCHIVE: REPORT 2008/216, vol. Version: 20101215:051543, JPN6013036884, 15 December 2010 (2010-12-15), ISSN: 0003587819 *
斉藤 太郎: "SSD投入で何が変わるのか? データベースシステム基本解剖", WEB+DB PRESS, vol. 52, JPN6013036883, 15 December 2010 (2010-12-15), JP, pages 89 - 108, ISSN: 0003587818 *

Also Published As

Publication number Publication date
EP2876626A1 (en) 2015-05-27
EP2876626B1 (en) 2016-10-12
US9515830B2 (en) 2016-12-06
JP6187462B2 (ja) 2017-08-30
WO2014013680A1 (ja) 2014-01-23
EP2876626A4 (en) 2016-02-24
US20150180666A1 (en) 2015-06-25

Similar Documents

Publication Publication Date Title
JP6187462B2 (ja) ユニバーサルハッシュ関数演算装置、方法およびプログラム
CA2723319C (en) A closed galois field cryptographic system
KR101143041B1 (ko) 리볼빙 버퍼들을 이용한 스트림 암호 설계 방법
US20180205536A1 (en) Stream cipher system
US10326589B2 (en) Message authenticator generating apparatus, message authenticator generating method, and computer readable recording medium
US10903978B2 (en) Method of encryption with dynamic diffusion and confusion layers
US20120314857A1 (en) Block encryption device, block decryption device, block encryption method, block decryption method and program
JPWO2013065241A1 (ja) インクリメンタルmacタグ生成装置、方法及びプログラム並びにメッセージ認証装置
Courtois et al. Combined algebraic and truncated differential cryptanalysis on reduced-round simon
US20220382521A1 (en) System and method for encryption and decryption using logic synthesis
Teh et al. A Chaos‐Based Authenticated Cipher with Associated Data
JP7136226B2 (ja) 認証暗号化装置、認証復号装置、認証暗号化方法、認証復号方法、認証暗号化プログラムおよび認証復号プログラム
Ghazi et al. Robust and efficient dynamic stream cipher cryptosystem
JP5528281B2 (ja) ハッシュ値演算装置
Kadhim et al. Proposal of new keys generator for DES algorithms depending on multi techniques
Minematsu A short universal hash function from bit rotation, and applications to blockcipher modes
Canteaut Fast correlation attacks against stream ciphers and related open problems
JP7371757B2 (ja) 認証暗号化装置、認証復号装置、認証暗号化方法、認証復号方法およびプログラム
JP6305643B2 (ja) メッセージ認証子生成装置、メッセージ認証子生成方法及びメッセージ認証子生成プログラム
Molland et al. Linear properties in T-functions
Nu1L Team Crypto
JP5818768B2 (ja) マスク生成装置、情報処理装置、及びその方法、プログラム
Mukherjee et al. Introduction and Preliminaries
Hassoun Secure symmetric ciphers over the real field
KR20030001888A (ko) 키를 사용하지 않고 블록 정보만을 이용하는 암호알고리즘 설계 방법

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160516

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170717

R150 Certificate of patent or registration of utility model

Ref document number: 6187462

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees