JP5079204B2 - 対称鍵暗号のための線形変換 - Google Patents

対称鍵暗号のための線形変換 Download PDF

Info

Publication number
JP5079204B2
JP5079204B2 JP2002518682A JP2002518682A JP5079204B2 JP 5079204 B2 JP5079204 B2 JP 5079204B2 JP 2002518682 A JP2002518682 A JP 2002518682A JP 2002518682 A JP2002518682 A JP 2002518682A JP 5079204 B2 JP5079204 B2 JP 5079204B2
Authority
JP
Japan
Prior art keywords
matrix
code
bit
block
data block
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 - Lifetime
Application number
JP2002518682A
Other languages
English (en)
Other versions
JP2004506246A5 (ja
JP2004506246A (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.)
Koninklijke Philips NV
Original Assignee
Koninklijke Philips NV
Koninklijke Philips Electronics NV
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 Koninklijke Philips NV, Koninklijke Philips Electronics NV filed Critical Koninklijke Philips NV
Publication of JP2004506246A publication Critical patent/JP2004506246A/ja
Publication of JP2004506246A5 publication Critical patent/JP2004506246A5/ja
Application granted granted Critical
Publication of JP5079204B2 publication Critical patent/JP5079204B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

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/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • 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/08Randomization, e.g. dummy operations or using noise
    • 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
    • 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/34Encoding or coding, e.g. Huffman coding or error correction

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Error Detection And Correction (AREA)
  • Storage Device Security (AREA)
  • Collating Specific Patterns (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Holo Graphy (AREA)
  • Lock And Its Accessories (AREA)
  • Detection And Correction Of Errors (AREA)
  • Reverberation, Karaoke And Other Acoustics (AREA)
  • Image Processing (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、バイナリ・エラー訂正コード(binary error-correcting code)に基づいて対称鍵暗号用の線形変換を生成する方法に関する。
【0002】
【従来の技術】
デジタルのオーディオ及び/又はビデオの著作権保護の分野における暗号のアプリケーションが、ますます重要になっている。これらのアプリケーションは、コンテンツの暗号化/復号及びアクセス管理の機能を含む。斯様なアプリケーションに対しては、ブロック暗号が用いられ得る。ブロック暗号のよく知られているファミリーはFeistel型暗号である。Feistel型暗号においては、入力データブロックが多数のラウンド(round)において処理される。各ラウンドにおいては、前記ブロックの2つのサブブロック(半分)が別個に作用される。第1サブブロックはラウンド関数の出力と組み合わされ、第2サブブロックは変更されないままである。ラウンドの最後には、2つのサブブロックがスワップされ、変更されていないサブブロックが次のラウンドにおいて処理されることを確実なものにする。ラウンド関数は入力として第2サブブロック及びラウンド鍵をとる。通常、ラウンド関数は、例えばXOR演算を用いて、ラウンド鍵を第2サブブロックと組み合わせる。そのうえ、ラウンド関数は第2サブブロックにおける非線形演算及び線形変換を行う。典型的には、非線形変換は置換ボックス(substitution box) (S-box)層から成り、S-box層は、例えば4乃至8ビットのより小さなサブブロックに並列に作用する多数のS-boxから成る。S-box層の後には、線形演算が、個々のS-boxによってもたらされたビット変化が次のラウンドにおいて可能な限り多くのS-boxにわたって伝えられるように適当な拡散が行われることを確実なものにする。
【0003】
Feistel型暗号のよく知られている例は、16ラウンドから成るDESである。各ラウンドにおいては、まず、データの右半分の32ビットが48ビットに拡大される。次に、鍵スケジュール処理アルゴリズム(key scheduling algorithm)を備える56ビットDES鍵から計算される48ビットラウンド鍵は、これらの48ビットに対してビットごとに非等価演算(add modulo two)をされる。次いで、S-boxの層はこのデータにおいて非線形演算をする。DESにおいて、S-box層は並列の8個の6-4ビットS-box(six-to-four bit S-box)から成り、即ち、S-boxの各々は、S-boxごとに1つの固定マッピングテーブル(fixed mapping table)を用いて6ビット入力ブロックを4ビット出力ブロックに変換する。S-box層の出力は、32ビットデータブロックである。この32ビットデータブロックにおいて行われる線形変換は、S-boxによってもたらされたビット変化が次に続くラウンドにおいて多くの他のS-boxにわたって伝えられることを確実なものにするビットの並び替え(bit-permutation)である。DESの不利な点は、現在では高レベルのセキュリティを提供するのに不十分であると考えられる56ビットという小さな鍵の大きさにある。しかしながら、しらみ潰しの鍵探索(exhaustive key search)は、16個の48ビットラウンド鍵を算出する別の鍵スケジュール処理アルゴリズムと組み合わされたより長い鍵を用いることによって防止され得る。公開文献で発表されているDESに対する2つの最も強力な攻撃(attack)は、幅広いブロック暗号に適用され得る一般的な攻撃である差分解読法(differential cryptanalysis)及び線形解読法(linear cryptanalysis)である。DESは、鍵長及び/又は鍵スケジュール処理アルゴリズムを変更することによってはこれらの攻撃に対してあまり強化され得ないことが示されている。しかしながら、アルゴリズムのラウンド関数における変更は、これらの攻撃に対する強度にかなり影響を及ぼし得る。
【0004】
線形変換に対しては、該変換が良好な拡散特性を持つことが望まれる。最近、S. Vaudenaryが、線形変換を構成する(construct)ために線形エラー訂正コードを用いることを提案しており、説明は、"On the Need for Multi-Permutations: Cryptanalysis of MD4 and SAFER", Fast Software Encryption (2nd), LNCS 1008, Springer, 1995, pp. 286-297において見出され得る。線形変換の拡散特性は、対応するエラー訂正コードの最小ハミング距離と関連しており、この距離が大きいほど、関連線形変換行列の拡散特性は良くなる。Vaudenaryは、所謂シングルトンの限界(Singleton bound)に達し、それ故最適拡散を供給する、有限フィールド(finite fields)にわたっての最大距離分離(MDS)コードの使用を提案している。しかしながら、この構成は、結果として生じる線形変換が、解読において活用され得る、付加的な数学的構造(additional mathematical structure)、例えば、構成のために用いられた有限フィールド(及び全てのサブフィールド)にわたっての線形性(linearity)を含むという不利な点を持つ。
【0005】
【課題を解決するための手段】
本発明の目的は、最適バイナリ線形エラー訂正コード(optimal binary linear error-correcting code)に基づいて、ビットレベルにおける保証された最適拡散特性を備える対称鍵暗号用の非特異バイナリ行列(non-singular binary matrix)によって表される可逆線形変換(invertible linear transformation)を提供することにある。この変換は、解読において活用され得る結果として生じる線形変換の付加的な数学的構造が避けられるという意味で、より不規則であるMDS構成以上の利点を持つ。
【0006】
本発明の目的を満たすために、エラー訂正コードから導き出される行列は、前記コードの長さが2倍の大きさと等しく、線形変換のための基底(basis)として用いられ得る結果として生じる行列が非特異であるように多数の列で拡大される。このことは、ラウンド関数の非一様性(non-uniformity)に基づいて攻撃を防ぐ。
【0007】
従属項2の対策において規定されているように、新しい列は、適切な列を見つけるために(疑似)ランダムに生成され得る。
【0008】
従属項3の対策において規定されているように、行列Cは、所定のマルチビット重み(multi-bit weight)を持つ関連線形エラー訂正コードを備える線形変換行列を見つけるために並び替えられる。従属項4の対策において規定されているように、このマルチビット重みは、暗号のS-boxにわたっての適当な拡散を確実なものにする。例えば、各S-boxがmビット出力を供給する並列に作用する多数のS-boxから成るS-box層に対しては、関連バイナリ・エラー訂正コード中のワードのmビット部分の拡散を調べるのが適切であり、このことは、全ての非零コードワード(non-zero codeword)にわたっての最小mビット重みで表され得る。
【0009】
以下に図面に示されている実施例を参照して本発明のこれら及び他の特徴を説明し、明らかにする。
【0010】
【発明の実施の形態】
本発明を説明する目的で、線形変換を用いる暗号システムを、電子コードブック(ECB)モードにおけるブロック暗号として記載する。当業者は同様に他のモードにおいて前記システムを使用することが出来るであろう。これらは、DESのための標準的なFIPSモードの演算、即ち、暗号ブロック連鎖(CBC)、暗号フィードバック(CFB)及び出力フィードバック(OFB)のモードの演算を含む。更に、このシステムはまた、操作検出コード(Manipulation Detection Codes)(MDCs)、メッセージ認証コード(Message Authentication Codes)(MACs)及び疑似乱数生成器(pseudo-random number generator)のためのよく知られている構成においても用いられ得る。
【0011】
図1は、典型的な暗号装置100のブロック図を示している。暗号装置100はデジタル入力ブロックXを得るための入力部110を有する。デジタル入力ブロックXは任意の適切なサイズであり得る。この装置は、デジタル入力ブロックXをデジタル出力ブロックE(X)に変換するための暗号プロセッサ120を更に有する。好都合なことに、デジタル出力ブロックはデジタル入力ブロックと実質的に等しい長さを持つ。装置100は、デジタル出力ブロックを出力する出力部130を有する。好ましい実施例においては、暗号プロセッサが、デジタル入力ブロックを鍵ビットKと合成(merge)し、入力ブロックX及び鍵Kに非線形に依存する出力ブロックE(X, K)を作成することにより、デジタル入力ブロックをデジタル出力ブロックに変換する。鍵(又は鍵スケジューラに与えられる最初の鍵)を得るために、暗号装置は第2入力部140を有する。暗号装置は、PCなどの従来のコンピュータを用いて、又は専用の暗号化/復号装置を用いて実施され得ることを認識されたい。デジタル入力ブロックは、通信ネットワークを介して、ハードディスク若しくはフロッピー(R)ディスクなどのデータ記憶媒体から、又はユーザにより直接的に入力されるといった種々の方式で得られ得る。同様に、デジタル出力ブロックは、通信ネットワークを介して、データ記憶媒体に記憶される、又はユーザに対して表示されるといった種々の方式で出力され得る。好ましくは、この目的のために安全な手段(secure means)が用いられる。暗号プロセッサは、例えばパーソナルコンピュータにおいて用いられるような従来のプロセッサであっても良いが、専用の暗号プロセッサであっても良い。このプロセッサは、通常、本発明によるアルゴリズムのステップを行う適切なプログラム(ファームウェア)の制御のもとで動作される。このコンピュータプログラムプロダクトは、通常、ハードディスク又はROMなどのバックグラウンド記憶装置(background storage)からロードされる。コンピュータプログラムプロダクトは、CD-ROMのような記憶媒体において、又は公衆インターネット(public internet)のようなネットワークを介して配布された後にバックグラウンド記憶装置に記憶され得る。暗号化鍵のような機密データ(sensitive data)は、好ましくは安全な方式で配布され、記憶される。そうするための技術は、一般的に知られており、これ以上は記載しない。暗号装置は、スマートカードにおいて一部又は全部実施されうる。
【0012】
暗号プロセッサによって行われる本発明による線形変換を、典型的なアプリケーションとしてブロック暗号におけるラウンド関数fの形態で以下に記載する。本質的には、当業者は、同様に他の暗号システムにおいて前記線形変換を使用することが出来るであろうし、以下に詳細に記載する暗号以外の暗号において前記線形変換を使用することが出来るであろう。
【0013】
【記号表示及び定義】
以下の記号表示が典型的なアルゴリズムの記載において用いられる。Z2 nを、(排他論理和又はXORとも呼ばれる)座標式非等価演算(coordinate-wise addition modulo 2)として定義される加算
【数1】
Figure 0005079204
を伴う長さn(n ≧ 1)の全てのバイナリベクトルのセットとする。 例えば、(1, 0, 1, 0)及び(0, 1, 1, 0)はZ2 4の要素であり、
【数2】
Figure 0005079204
である。更に、スカラ乗算・: Z2 x Z2 n → Z2 nは、全てのx ∈ Z2 nについて1・x = x且つ0・x = (0, 0, …, 0) ∈ Z2 nとして定義される。nが偶数であり、且つx ∈ Z2 nである場合には、x(L) ∈ Z2 n/2及びx(R) ∈ Z2 n/2が各々xの左半分及び右半分として定義される。例えば、x = (1, 0, 1, 1, 0, 0, 1, 0) ∈ Z2 8である場合には、x(L) = (1, 0, 1, 1) ∈ Z2 4であり、且つx(R) = (0, 0, 1, 0) ∈ Z2 4である。符号‖は、ベクトルの連結、例えばx = (x(L) ‖ x(R))を示すために用いられる。ベクトルx ∈ Z2 nの(ビットとも呼ばれる)要素は、左から右へ0からn-1まで番号を付けられ、即ち、x =: (x0, x1, x2, …, xn-1)となる。2つの要素x ∈ Z2 nとy ∈ Z2 nとの間のハミング距離dH : Z2 n x Z2 n → Zは、2つのベクトルが相違する座標の数として定義され、即ち、dH(x, y) =#{xi≠yi | i = 0, 1, …, n-1}となる。要素x ∈ Z2 nのハミング重みwH : Z2 n → Zは非零座標の数として定義される。即ち、wH(x) =#{xi≠0 | i = 0, 1, …, n-1}となる。
【0014】
Z2についてのk×m行列(k, m ≧ 1)のセットはZ2 k × mによって示される。Z2についてのk×k恒等行列はIkによって示される。符号‖はまた、同数の行を備える行列の連結を示すためにも用いられ、例えば、A ∈ Z2 4 × 6且つB ∈ Z2 4 × 8である場合には、C := (A ‖ B) ∈ Z2 4 × 14となる。
【0015】
(ブロック)長さnのバイナリ・エラー訂正コードCは、Z2 nの部分線形空間である。この部分空間の要素は、コードワードと呼ばれる。部分空間の大きさがkである場合には、Cは[n, k]コードと呼ばれる。斯様なコードは、前記行がCのための基底を形成する生成行列G ∈ Z2 k × nによって表され得る。即ち、C = {mG | ∈ Z2 k}となる。コードの最小距離dは、全ての任意の2つの別個のコードワードの間の距離の中で最小のものとして定義され、即ち、d = min{dH(x, y) | x, y ∈ C且つx≠y}となる。最小ハミング距離dを備える[n, k]コードは[n, k, d]コードとも呼ばれる。
【数3】
Figure 0005079204
であることに注意されたい。このことは、線形コードの最小ハミング距離が全非零コードワード中の最小ハミング重みと等しいことを意味する。
【0016】
【ブロック暗号の構造】
典型的なブロック暗号は、Feistel型暗号であり、(DESのように)16ラウンドから成る。ブロック長は64ビットと等しく、鍵長は128ビットと等しい。鍵K ∈ Z2 128のもとでの暗号文C ∈ Z2 64への平文X ∈ Z2 64の電子コードブック(ECB)モードにおける暗号化はC = E(K, X)によって示される。
【0017】
ラウンド関数は、fによって示され、Z2 40 x Z2 32からZ2 32へのマッピングである。このラウンド関数は、本発明の線形変換を組み入れており、以下により詳細に記載する。ラウンド関数の第1入力引数(first input argument)はラウンド鍵Ki ∈ Z2 40である(ここで、iはラウンド数を示す。i = 1, 2, …, 16)。これらのラウンド鍵は、所謂鍵スケジュール処理アルゴリズムで128ビット鍵Kから算出される。任意の適切な鍵スケジュール処理アルゴリズムが用いられても良く、詳細には記載しない。第2入力引数は、ラウンドiの後の中間結果の右半分である。この中間結果は、X =: (X0 (R) ‖ X0 (L))を伴うXi ∈ Z2 64(i=0, 1, …, 16)によって示される。
【0018】
この表記法では、暗号文C ∈ Z2 64の算出は図2に示されているような以下のステップから成る。 1. i = 1, 2, …, 15に対して、
【数4】
Figure 0005079204
を算出し、Xi (L) = Xi-1 (R)と設定する。
【数5】
Figure 0005079204
を算出し、X16 (R) = X15 (R)と設定する。暗号文はC := (X16 (L) ‖ X16 (R))と定義される。
【0019】
図2Aは最初の15ラウンド(i = 1, 2, …, 15)に対して用いられる暗号構造を示している。図2Bは最後の16番目のラウンドを示している。図2Aの前のラウンドと比べての図2Bにおける変則のスワップ(irregular swap)に注意されたい。これは、通常Feistel型構造において行われる。なぜなら、この場合には、復号アルゴリズム(即ち、X = E-1(K, C)の算出)が(逆順のラウンド鍵を備える)暗号化アルゴリズムと同じであるからである。それは暗号的意味(cryptographic sense)においてはなんの意味も持たない。
【0020】
【ラウンド関数】
図3は、ラウンド関数fの好ましい実施例の全体的なブロック図を示している。まず、ステップ310において例えば32ビットのラウンド鍵の一部がデータビットに加算される。次に、ステップ320においては、S-boxが、好ましくは差分解読法及び線形解読法に対する最適の(ローカルな)耐性(resistance)を提供する非線形の置換え(non-linear substitution)を行う。その上、好ましくは、所定の最大確率(maximum probability)を備えるトリビアルではない(non-trivial)(ローカルな)特性が、以下により詳細に記載されているように(ラウンド)鍵に依存して作られる。最後に、ステップ330においては、多数のラウンドにわたって高い拡散を供給するために線形変換が用いられる。エラー訂正コードから斯様な線形変換を生成する方法を以下により詳細に記載する。
【0021】
Feistel型構造は、ラウンド関数の全射性(surjectivity)に制限を設けない。しかしながら、好ましくは、ラウンド関数は、固定(ラウンド)鍵に対するあらゆる選択について全単射である。このことは、ラウンド関数の非一様性に基づいて攻撃を防ぐ。
【0022】
図4は、S-boxを組み入れる好ましい構成のより詳細を提供している。この典型的なシステムにおいて、ラウンド関数fはZ2 40 x Z2 32からZ2 32へのマッピングである。第1入力引数はラウンド鍵Ki ∈ Z2 40であり、第2入力引数は中間結果Xi-1の右半分である。出力は、f(Ki, Xi-1 (R)) ∈ Z2 32によって示される。この図においては、Ki (1) ∈ Z2 32及びKi (2) ∈ Z2 8がKi =: (Ki (1) ‖Ki (2))として定義される。ステップ310においては、鍵加算が行われ、ステップ320の鍵依存置換ボックス(S-box)層が続く。この例においては、S-box層が、各々がデータブロックの1/8に作用する8個のより小さなS-box(S0, S1, S2, …, S7)から成る。S-box変換はZ2 8 x Z2 32からZ2 32へのマッピングであり、ラウンドiにおける第1入力引数はラウンド鍵Ki (2)であり、第2入力引数は鍵加算の結果、即ち
【数6】
Figure 0005079204
である。S-box変換の32ビット出力は
【数7】
Figure 0005079204
によって示される。以下にこのマッピングについて記載する。最後に、ステップ330においては、Z2 32からZ2 32への線形変換が適用される。入力は
【数8】
Figure 0005079204
であり、その出力は
【数9】
Figure 0005079204
によって示される。この表記法では、関数fが
【数10】
Figure 0005079204
によって与えられる。
【0023】
【S−box】
原則的には、ブロック暗号においては任意の適切なS-box層が用いられ得る。本明細書に記載されている好ましい実施例においては、各S-boxが4ビットサブブロックに作用する。他のサイズのサブブロックも用いられ得ることを認識されたい。好ましくは、各S-boxに対して少なくとも2つの所定の並び替えのセットが用いられ、ここでは、S-boxを用いる前に毎度これらの並び替えのうちの1つが(疑似)ランダム方式で選択される。好ましくは、ラウンド鍵がこの選択のために用いられる。好ましい実施例においては、各S-boxが2つの並び替えと関連付けられており、ここでは、ラウンド鍵のうちのある所定のビットが、両並び替えのうちのどちらを用いるかを選択するために用いられる。4ビットサブブロックに作用するS-boxなどの相対的に小さなS-boxの使用は、通常、並列のS-boxの列を必要とし、各々が少なくとも2つの非線形の並び替えのセットの各々と関連付けられている。
【0024】
図4は、32ビットブロックに作用し、且つ4ビットS-boxを用いる、結果として8個のS-boxが並列に用いられることとなるブロック暗号の好ましい実施例を図示しており、前記S-boxの各々は2つの並び替えから成る。この実施例に対しては、以下の表記法を用いる。S-box変換の第1入力引数Ki (2)の中のビットは、kj (i)(j = 0, 1, …,7) によって示されるとする。即ち、Ki (2) =: (k0 (i), k1 (i), …, k7 (i))となる。ベクトルNj (i) ∈ Z2 4 (j = 0, 1, …,7)は
【数11】
Figure 0005079204
として定義される。S-boxマッピングは、8個のマッピングSj : Z2 x Z2 4 → Z2 4(j = 0, 1, …,7) の連結から成る。第1入力引数は、Sjのための2つの並び替えのうちどちらを用いるのかを選択する鍵ビットkj (i)である。第2入力引数は、Sjのための選択された4ビット並び替えに対する入力であるNj (i)である。この並び替えの対応4ビット出力は、S-boxの出力でもあり、Sj(kj (i), Nj (i))によって示される。この表記法では、関数Sが、
【数12】
Figure 0005079204
によって与えられる。任意の適切なS-box層が用いられ得る。好ましくは、特許出願の欧州特許出願番号EP00202326.5(出願人整理番号:PHNL000365)によるS-boxが用いられる。
【0025】
【線形変換行列】
S-boxの置換作用の後には、線形変換Lが行われる。32ビットサブブロックを備える好ましい実施例においては、L : Z2 32 → Z2 32となる。上記の好ましいS-box構成を用いる場合、この線形変換に対する入力は、ベクトル
【数13】
Figure 0005079204
である。このベクトルの座標は、yj i(j = 0, 1, …,31) によって示されるであろう。即ち、
【数14】
Figure 0005079204
となる。この場合には、マッピングLをベクトル行列の乗算として表現することができ、この行列は、A ∈ Z2 32 × 32 :
【数15】
Figure 0005079204
によって示される。
【0026】
【線形変換行列の構成】
L(x) = xAにより定義される線形変換Lは以下の基準を満たすように構成される。 1. Z2にわたっての線形性。 2. 可逆性(invertibility)、即ち、行列AがZ2にわたって非特異である。 3. 高い拡散特性。
【0027】
関数Lの構成は、バイナリ線形エラー訂正コードに基づく。マッピングLは、バイナリ・エラー訂正コードのための生成行列G = (Ik ‖ A) ∈ Z2 k × 2kと関連付けられる。x ∈ Z2 kを伴う全てのコードワード(x ‖ xA) ∈ Z2 2kについて、左半分のxがLに対する入力に対応する一方で、右半分のxAが出力に対応することに注意されたい。設計基準(i)は、全てのバイナリ・エラー訂正コードに対して満足される一方で、(ii)は、AがZ2にわたって非特異である場合に限り満足されることに注意されたい。基準(iii)は、コードワードの最小ハミング重みによって表され得る、即ち、この最小距離が大きいほど、拡散特性は良くなることにも注意されたい。
【0028】
32ビットブロック(即ち、k = 32且つA ∈ Z2 32 × 32)についてAの構成を以下に説明する、Aの構成は、12と等しい最小ハミング距離を備える[64, 32]コードの構成のための始点(starting point)としてXBCH(binary extended Bose-Chaudhuri-Hocquenghem)コードを用いる。斯様なコードが最適であること、即ち、任意のバイナリ[64, 32]コードが12以下の最小距離を持つことはよく知られている。前記コードが線形であることから、このことは、任意の非零コードワードの最小ハミング重みが少なくとも12であることを意味する。このことは、tビット(t > 0)の入力における(小さな)変化は出力における少なくともmax{0, 12-t}ビットの変化を意味するという点で、マッピングLの拡散特性がビットレベルにおいて最適であることを意味することに注意されたい。
【0029】
行列Aを含むバイナリ[64, 32, 12]コードのための生成行列は、図5に図示されているように、以下のように構成される。
(i) ステップ510においては、バイナリ線形エラー訂正コードに対応する標準形の生成行列G’’ (即ち、B ∈ Z2 32 × 28を備えるG’’ = (I32 ‖ B))が取得される。斯様な生成行列G’’は、好ましくは、BCH(Bose-Chaudhuri-Hocquenghem)コードから始まり、以下のように構成される。 (a)ステップ512においては、生成行列G ∈ Z2 36 × 63が、生成多項式(generator polynomial)g(x) := x27 + x22 + x21 + x19 + x18 + x17 + x15 + x8 + x4 + x + 1を備えるバイナリ[63, 36, 11]BCHコードに対して構成され、ここで、Gの行j(j = 0, 1, …, 35)は多項式xjg(x)に対応する。より正確には、gi ∈ Z2を備えるg(x) =: Σi = 0, 1, , 27gixiである場合に、行列の最初の行は(g0, g1, g2, …, g27, 0, 0, …, 0) ∈ Z2 63によって与えられる。生成行列の行j(j = 0, 1, …, 35)は、j位置にわたってのこの最初の行の右への循環シフト(cyclic shift)により与えられる。
(b)ステップ514においては、このコードが、Gの最後の4つの行及び列を削除することにより[59, 32, 11]コードへ縮小される。
(c)ステップ518においては、この縮小されたコードが、各コードワードにパリティチェック符号を加えることにより[60, 32, 12]コードへ拡大される。パリティチェックを加えることによる1つの列の付加は最小距離の増大をもたらすことに注意されたい。この[60, 32, 12]コードに対する32×60生成行列はG’によって示される。
(d)ステップ520においては、標準形の生成行列G’’、即ち、B ∈ Z2 32 × 28を備えるG’’ = (I32 ‖ B)を得るために、G’においてガウス消去が行われる。これは、縮小された[60, 32, 12]XBCHコードに対する生成行列であることに注意されたい。
(ii) 結果として生じる行列C ∈ Z2 32 × 32がZ2にわたって非特異であるようにBを4つの列でBを拡大する。好ましくは、この4つの列が疑似ランダムに選択される。
(a)各々が32個の(疑似)ランダムに選択されたバイナリの要素(binary element)を備える4つの列を作成する。
(b)新しい前記4つの列でBを拡大することによりテスト行列を作成する(本質的には、新たに加えられる列の列位置は重要ではない)。
(c)テスト行列が可逆であるかどうかをチェックする。このテストに対しては、任意の適切な方法、例えばガウス消去に基づく方法が用いられ得る。
(d)そうである場合には、プロセスを停止し(行列が見つけられており)、そうでない場合には、少なくとも1つの新しい列を生成することにより再始動する。
【0030】
前記4つの列の要素はまた、ランダム作成プロセスを用いる代わりに任意の他の適切な方式においても生成され得ることを認識されたい。
【0031】
マルチビットのS-boxを備えるラウンド関数の構成のため、このマルチビットレベルにおける良好な拡散特性も望ましい。4ビットS-boxに対しては、このことが以下のように表され得る(他のビット数の変形例は十分に当業者のスキルの範囲内にある)。コードワードc ∈ Z2 32の4ビットベクトルni(i = 0, 1, …, 7)がc =: (n0 ‖ n1 ‖…‖ n7)として定義される場合には、cのニブル重み(nibble weight)がNW(c) :=#{i ‖ ni≠(0, 0, 0, 0), i = 0, 1, …, 7}として定義される。ニブルレベルにおける拡散特性は、全ての非零コードワードにわたっての最小ニブル重みによって表され得る。即ち、この最小重みが大きいほど、ニブルレベルにおける拡散特性は良くなる。マルチビットレベルにおける(この例においてはニブルレベルにおける)高い拡散を達成するために、ステップ530においては、生成行列(I ‖ P1CP2)を備える[60, 32, 12]コードにおける全てのコードワードが高いニブル重みを持つように2つの置換行列P1, P2 ∈ Z2 32 × 32が選択される。最終的に求められる行列A := P1CP2は線形変換のために用いられる。好ましい実施例においては、置換行列P1及びP2が(疑似)ランダムに生成される。(I ‖ A)によって生成されるコードの最小ニブル重みは7と等しいことが確認され得る。
【0032】
以下の表においてこのように生成される線形変換行列Aの行を示す(a0は第1の行であり、a1は第2の行であり、…、a31は最後の行である)。ベクトル行列積(vector-matrix product)は、yk (i) = 1(k = 0, 1, …, 31)である行akのXORに対応することに注意されたい。
【0033】
【表1】
Figure 0005079204
【0034】
【MDSコードとの比較】
対象鍵暗号におけるMDSコードに基づく線形変換の使用は、S. Vaudenay, “On the Need for Multi-Permutations: Cryptanalysis of MD4 and SAFER”, Fast Software Encryption (2nd), LNCS 1008, Springer, 1995, pp. 286-297から既知である。以下の表は、本発明によるXBCHベースの行列において用いられる構成のニブル重み分布をMDSコードの(ニブル)重み分布と比較している。エントリ(entry)は、所与のニブル重みを備える非零コードワードの数を表す。
【0035】
【表2】
Figure 0005079204
【0036】
この表から分るように、これら2つの構成のニブル重み分布は非常に類似している。XBCH構成の最小ニブル重みは、この基準に対して最適であることを示され得るMDS構成の最小重みより2つだけ少ない。しかしながら、MDS構成は、ブロック暗号の解読において活用され得る関連線形変換のF16(のサブフィールド)にわたっての線形性などの付加的な数学的構造を含むという不利な点を持つ。例えば、S-box(及び結果としての完成したブロック暗号(complete block cipher))は、F16 → F16からのマッピングによって記述され得る。更に、本明細書に記載の構成は、ビットレベルにおける最適な拡散を保証する。
【図面の簡単な説明】
【図1】暗号システムのブロック図を示す。
【図2A】線形変換を組み入れている暗号のあるラウンドを示す。
【図2B】線形変換を取り入れている暗号のあるラウンドを示す。
【図3】ラウンド関数のステップを図示する。
【図4】S-box構成の好ましい構成を示す。
【図5】線形変換行列を生成するステップを示す。

Claims (5)

  1. 入力データブロックを出力データブロックへ暗号的に変換するシステムであり、前記データブロックはnデータビットを有し、当該システムは、
    − 前記入力データブロックを受け取る入力部、
    − 線形変換行列Aを記憶する記憶装置、
    − 前記行列Aを用いて前記入力データブロック又は前記入力データブロックの誘導に対して線形変換を行う線形変換手段、及び
    − 処理された前記入力データブロックを出力する出力部、
    を含み、前記行列Aは、
    k < n < 2kであり、dはバイナリ・エラー訂正コードの最小距離であって、B∈Z 2 k × (n-k) を備える標準形G = (I k ‖ B)の生成行列G ∈ Z 2 k × n によって表されるバイナリ[n, k, d]エラー訂正コードを生成し、
    結果として生じるCが非特異であるように2k-n個の列で行列Bを拡大し、
    行列Cから行列Aを導き出す、
    ことにより生成され、前記行列Aは、
    生成行列 (I ‖ P 1 CP 2 )によって表される[2k, k, d]エラー訂正コードにおける全てのコードワードが所定のマルチビット重みを持つように2つの置換行列P 1 , P 2 ∈ Z 2 k × k を決定し、
    P 1 CP 2 を行列Aとして用いる、
    ことにより前記行列Cから導き出される、システム。
  2. 前記2k-n個の列で行列Bを拡大することが、対話方式で、
    − 各々がk個のバイナリの要素を備える2k-n個の列を(疑似)ランダムに生成
    − 前記Bのn-k個の列及び生成された前記2k-n個の列から成るテスト行列を形成、及び
    − 非特異テスト行列が見つけられるまで前記テスト行列が非特異であるかどうかをチェックし、見つけられた前記テスト行列を行列Cとして用いることを含む請求項1に記載のシステム
  3. 前記対称鍵暗号が、mビットのサブブロックに作用するS-boxを持つS-box層を備えるラウンド関数を含み、全ての非零コードワードにわたって最小の前記所定のマルチビット重みが、所定のmビット重みと等しい請求項1に記載のシステム
  4. 前記2つの置換行列P1及びP2を決定することが、(擬似)ランダム方式で前記行列を繰り返し生成するステップを含む請求項1に記載のシステム
  5. 前記暗号が32ビットブロックに作用するラウンド関数を含み、前記[n, k, d]エラー訂正コードを生成することが、バイナリに拡張されたBose-Chaudhuri-Hocquenghem (XBCH)[64, 36, 12]コードを生成すること、及び4つの行を削除することによりこのコードを[60, 32, 12]縮小XBCHコードへ縮小することを含む請求項1に記載のシステム
JP2002518682A 2000-08-03 2001-07-20 対称鍵暗号のための線形変換 Expired - Lifetime JP5079204B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP00202753 2000-08-03
EP00202753.0 2000-08-03
PCT/EP2001/008470 WO2002013452A2 (en) 2000-08-03 2001-07-20 Linear transformation for symmetric-key ciphers

Publications (3)

Publication Number Publication Date
JP2004506246A JP2004506246A (ja) 2004-02-26
JP2004506246A5 JP2004506246A5 (ja) 2008-09-04
JP5079204B2 true JP5079204B2 (ja) 2012-11-21

Family

ID=8171882

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002518682A Expired - Lifetime JP5079204B2 (ja) 2000-08-03 2001-07-20 対称鍵暗号のための線形変換

Country Status (10)

Country Link
US (1) US7450720B2 (ja)
EP (1) EP1307993B1 (ja)
JP (1) JP5079204B2 (ja)
KR (1) KR100855890B1 (ja)
CN (1) CN100431293C (ja)
AT (1) ATE298952T1 (ja)
AU (1) AU2001277548A1 (ja)
DE (1) DE60111746T2 (ja)
ES (1) ES2244639T3 (ja)
WO (1) WO2002013452A2 (ja)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1193537C (zh) * 2000-07-04 2005-03-16 皇家菲利浦电子有限公司 将输入数据块加密转换成输出数据块的方法和系统
JP2003302899A (ja) * 2002-04-11 2003-10-24 Sony Corp ブーリアン・マトリクスに基づく暗号化および復号処理方法、並びに装置
US7840803B2 (en) 2002-04-16 2010-11-23 Massachusetts Institute Of Technology Authentication of integrated circuits
EP1387519A3 (fr) * 2002-07-09 2004-02-18 Cp8 Procédé de sécurisation d'un ensemble électronique contre des attaques par introduction d'erreurs
US20040078587A1 (en) * 2002-10-22 2004-04-22 Cameron Brackett Method, system, computer product and encoding format for creating anonymity in collecting patient data
EP1480371A1 (en) * 2003-05-23 2004-11-24 Mediacrypt AG Device and method for encrypting and decrypting a block of data
US7289629B2 (en) * 2004-02-09 2007-10-30 Microsoft Corporation Primitives for fast secure hash functions and stream ciphers
KR20050087271A (ko) * 2004-02-26 2005-08-31 삼성전자주식회사 가변 키 길이를 가지는 초기 라운드 키에 대응하는 암호라운드 키와 복호 라운드 키를 선택적으로 발생하는 키스케쥴 장치
WO2006071380A2 (en) 2004-11-12 2006-07-06 Pufco, Inc. Securely field configurable device
KR20070086656A (ko) 2004-12-28 2007-08-27 코닌클리케 필립스 일렉트로닉스 엔.브이. 생체측정 데이터 및 비밀 추출 코드를 사용하는 키생성
US7702099B2 (en) * 2005-06-30 2010-04-20 Chiou-Haun Lee Multipoint synchronous diffused encryption/decryption method
TWI416921B (zh) 2006-01-24 2013-11-21 Pufco Inc 用於信號產生器式裝置安全性之方法、積體電路及電腦程式產品
JP4882598B2 (ja) * 2006-07-28 2012-02-22 ソニー株式会社 暗号処理装置、暗号処理アルゴリズム構築方法、および暗号処理方法、並びにコンピュータ・プログラム
DE102006039327B4 (de) * 2006-08-22 2008-06-26 Nokia Siemens Networks Gmbh & Co.Kg Verfahren zur Authentifizierung
JP4967544B2 (ja) * 2006-09-01 2012-07-04 ソニー株式会社 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
US8559625B2 (en) * 2007-08-07 2013-10-15 Inside Secure Elliptic curve point transformations
US8782396B2 (en) 2007-09-19 2014-07-15 Verayo, Inc. Authentication with physical unclonable functions
US9548758B2 (en) * 2010-01-05 2017-01-17 Alcatel-Lucent Usa Inc. Secure compressive sampling using codebook of sampling matrices
US8712156B2 (en) * 2010-01-10 2014-04-29 Bronstein Bronstein Kimmel Technologies Ltd. Comparison of visual information
EP2813029B1 (en) * 2012-02-09 2020-12-02 Irdeto B.V. System and method for generating and protecting cryptographic keys
EP2885875A1 (fr) * 2013-02-27 2015-06-24 Morpho Procede d'encodage de donnees sur une carte a puce par des codes de poids constant
CN104769881A (zh) * 2013-03-27 2015-07-08 爱迪德技术有限公司 具有错误校正的aes实现方式
WO2017223509A1 (en) * 2016-06-23 2017-12-28 Cryptography Research, Inc. Cryptographic operations employing non-linear share encoding for protecting from external monitoring attacks
US10404667B2 (en) 2016-11-17 2019-09-03 Bank Of America Corporation Secure, autonomous file encryption and decryption
CN111786680B (zh) * 2019-04-03 2023-01-13 华为技术有限公司 一种生成矩阵的确定方法及装置
CN111431697B (zh) * 2020-03-31 2022-06-21 衡阳师范学院 一种新型轻量级分组密码corl的实现方法
US11610004B2 (en) * 2021-04-14 2023-03-21 Bank Of America Corporation System for implementing enhanced file encryption technique

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2725610B2 (ja) * 1994-09-27 1998-03-11 日本電気株式会社 秘密鍵暗号方法及び装置
US5991414A (en) * 1997-09-12 1999-11-23 International Business Machines Corporation Method and apparatus for the secure distributed storage and retrieval of information
JP3017726B2 (ja) * 1998-01-27 2000-03-13 日本電信電話株式会社 データ変換装置
US6363485B1 (en) * 1998-09-09 2002-03-26 Entrust Technologies Limited Multi-factor biometric authenticating device and method
EP1065593A1 (en) * 1999-07-02 2001-01-03 Institut Eurecom G.I.E. Process for securing the execution of a mobile code in an untrusted environment
US6947558B1 (en) * 1999-08-29 2005-09-20 Intel Corporation Stream cipher having a shuffle network combiner function

Also Published As

Publication number Publication date
DE60111746D1 (de) 2005-08-04
EP1307993B1 (en) 2005-06-29
KR100855890B1 (ko) 2008-09-03
DE60111746T2 (de) 2006-05-18
CN100431293C (zh) 2008-11-05
EP1307993A2 (en) 2003-05-07
CN1398467A (zh) 2003-02-19
WO2002013452A2 (en) 2002-02-14
WO2002013452A3 (en) 2002-07-25
US20020101986A1 (en) 2002-08-01
JP2004506246A (ja) 2004-02-26
US7450720B2 (en) 2008-11-11
ES2244639T3 (es) 2005-12-16
KR20020041815A (ko) 2002-06-03
ATE298952T1 (de) 2005-07-15
AU2001277548A1 (en) 2002-02-18

Similar Documents

Publication Publication Date Title
JP5079204B2 (ja) 対称鍵暗号のための線形変換
JP4828082B2 (ja) 対称キー暗号用の置換ボックス
US10009171B2 (en) Construction and uses of variable-input-length tweakable ciphers
US5511123A (en) Symmetric cryptographic system for data encryption
US7227948B2 (en) Encryption apparatus and method, and decryption apparatus and method based on block encryption
US8275125B2 (en) Method for designing a secure hash function and a system thereof
Seyedzade et al. A novel image encryption algorithm based on hash function
US8054967B2 (en) Computer system and computer program executing encryption or decryption
US20090041236A1 (en) Cryptographic primitives, error coding, and pseudo-random number improvement methods using quasigroups
CA2627136A1 (en) Message authentication device, message authentication method, message authentication program and storage medium therefor
WO2002017554A2 (en) Parallel bock encryption method and modes for data confidentiality and integrity protection
US20120314857A1 (en) Block encryption device, block decryption device, block encryption method, block decryption method and program
JP2004325677A (ja) 暗号処理装置および暗号処理方法、並びにコンピュータ・プログラム
JP2004511812A (ja) メッセージ認証コードのためのキーの整数の置換の生成
CN107493164B (zh) 一种基于混沌系统的des加密方法和系统
WO2012060685A1 (en) A method for linear transformation in substitution-permutation network symmetric-key block cipher
Yap et al. Security analysis of M‐DES and key‐based coded permutation ciphers in wireless channels
Sarkar et al. Sycon v1. 0 submission to lightweight cryptographic standards
Fleischmann et al. TWISTERπ–a framework for secure and fast hash functions
Najjar et al. d-HMAC Dynamic HMAC function
KHAN et al. A New Message Digest Function for Message Authentication
KR20030001888A (ko) 키를 사용하지 않고 블록 정보만을 이용하는 암호알고리즘 설계 방법
Jauhari et al. Secure and Optimized Algorithm for Implementation of Digital Signature
Tolba et al. A Novel 256-Bit Block Cipher

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20040903

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080718

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080718

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110510

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110809

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110816

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111109

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20120306

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120705

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20120712

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

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

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

Free format text: PAYMENT UNTIL: 20150907

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 5079204

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term