JP5268001B2 - ストリーム暗号向け擬似乱数生成装置とプログラムと方法 - Google Patents

ストリーム暗号向け擬似乱数生成装置とプログラムと方法 Download PDF

Info

Publication number
JP5268001B2
JP5268001B2 JP2009506348A JP2009506348A JP5268001B2 JP 5268001 B2 JP5268001 B2 JP 5268001B2 JP 2009506348 A JP2009506348 A JP 2009506348A JP 2009506348 A JP2009506348 A JP 2009506348A JP 5268001 B2 JP5268001 B2 JP 5268001B2
Authority
JP
Japan
Prior art keywords
data
transposition
bit
registers
linear
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
JP2009506348A
Other languages
English (en)
Other versions
JPWO2008117804A1 (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
NEC Solution Innovators Ltd
Original Assignee
NEC Corp
NEC Software Hokuriku Ltd
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, NEC Software Hokuriku Ltd filed Critical NEC Corp
Priority to JP2009506348A priority Critical patent/JP5268001B2/ja
Publication of JPWO2008117804A1 publication Critical patent/JPWO2008117804A1/ja
Application granted granted Critical
Publication of JP5268001B2 publication Critical patent/JP5268001B2/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
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • G06F7/582Pseudo-random number generators
    • G06F7/586Pseudo-random number generators using an integer algorithm, e.g. using linear congruential method
    • 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/002Countermeasures against attacks on cryptographic mechanisms
    • 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/065Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
    • H04L9/0656Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
    • H04L9/0662Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher with particular pseudorandom sequence generator
    • H04L9/0668Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher with particular pseudorandom sequence generator producing a non-linear pseudorandom sequence

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Mathematical Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • Nonlinear Science (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Computational Mathematics (AREA)
  • Storage Device Security (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Description

(関連出願についての記載)
本願は、先の日本特許出願2007−081755号(2007年3月27日出願)の優先権を主張するものであり、前記先の出願の全記載内容は、本書に引用をもって繰込み記載されているものとみなされる。
本発明は、データの通信や蓄積の際にデータを秘匿するための暗号装置に関し、特に高速な暗号化ができるストリーム暗号および暗号用の乱数生成に適用して好適な装置、プログラム、方法に関する。
<ストリーム暗号の概要説明>
データを秘匿するための手法として共通鍵暗号方式があり、ブロック暗号とストリーム暗号に大別することができる。
典型的なストリーム暗号は、擬似乱数系列(鍵ストリーム)を生成する擬似乱数生成部(鍵ストリーム生成部)と、擬似乱数系列と平文を結合する結合部からなる。
秘密鍵、もしくは秘密鍵と初期ベクトルをシードとして、擬似乱数系列を生成し、その擬似乱数系列を平文と排他的論理和して(結合部)、暗号文を生成する。
復号する場合は、暗号化で使用したシードから擬似乱数系列を生成し、暗号文に排他的論理和して平文を得る。
つまり、平文をP、暗号文をC、擬似乱数系列をR、排他的論理和を表す記号を(+)とすると、
P (+) R = C
C (+) R = P
の関係となる。
<ストリーム暗号の安全性>
ストリーム暗号は生成した擬似乱数系列を排他的論理和など簡単な処理で作用させることが多い。そのため、ストリーム暗号の安全性は、生成する擬似乱数系列の安全性に依存する。
一般的に、ストリーム暗号に用いられる擬似乱数系列の性質としては、予測不可能性、統計的一様性、無相関性、長周期性、非線形性などが挙げられる。
“真の乱数”は、周期がなく完全に無相関である。真の乱数は、サイコロを振ったり、自然現象を利用して生成するなどの方法で生成することができる。つまり、生成される擬似乱数系列が上記の性質を満たすならば、そのストリーム暗号は安全であるといえる。
逆に、生成される擬似乱数系列が真の乱数と区別できるような情報を見つけることができれば、そのストリーム暗号は何がしかの安全性が低下していると考えられる。
<ストリーム暗号の安全性評価手法の一例>
前述のような考え方に基づいて、ストリーム暗号の安全性を評価する手法がある。
出力された暗号文や擬似乱数が、真の乱数と区別がつくことを示す暗号の攻撃手法を、Distinguishing Attackとよぶ。
真の乱数との区別は、出力された暗号文や擬似乱数が、統計的な偏りや特徴を持っていることが示せれば、区別できたと判断する。
Distinguishing Attackでは、このような偏りや特徴を示す手段を、Distinguisherと呼び、このような偏りや特徴を示す手段を発見したり作成したりすることを、Distinguisher を構成すると言う。
Distinguisherが構成できるならば、Distinguishing Attackが適用できることになる。
ある暗号に、Distinguishing Attackが適用できるならば、その暗号は平文または鍵や内部の情報を漏らしている可能性があることから、安全な暗号であるとはいえない。
従って、Distinguishing Attackが適用できる暗号に修正を加え、Distinguishing Attackが適用出来なくなれば、暗号の安全性が向上したといえる。
<ストリーム暗号の具体例>
ストリーム暗号の具体例としてMir-1がある。Mir-1は2005年、Maximovによって提案され、eSTREAMに応募されたストリーム暗号である。
Mir-1は、T-functionと呼ばれる関数で内部状態を更新し、その更新されたデータを時刻毎の鍵として利用し、秘密鍵依存でエントリが変化するS−boxによる攪拌を利用して鍵ストリームを生成するストリーム暗号である。
T-functionとは、2002年、KlimovとShamirが以下の論文(非特許文献2)で提案した暗号学的な基礎関数である。
T-functionは、その内部状態を連結したデータが最長周期を持ちながら、最下位ビット以外は1次の線形関係式が成り立つというような代数的特性を持たない。
また古くから、最長周期を保証できる処理として、線形フィードバックシフトレジスタ(LFSR)が知られている。LFSRによって更新されるデータは、全てのビットが1次の線形関係を持つという代数的特性がある。
LFSRのもつ代数的特性を利用すると、内部データを連立方程式で表現し、その連立方程式を解くことで内部データを求める攻撃(Algebraic Attack)を適用できる可能性がある。
よって、T-functionはストリーム暗号におけるLFSRの代わりとなる部品として期待されている。
しかし、それ以降、T-functionを用いたストリーム暗号はいくつか提案されているが、いずれも、T-functionの特性を利用した解析によって、暗号としての安全性が十分でないことが報告されている。
Mir-1は、将来主流となるであろう64ビットプロセッサで、高速かつ小メモリでの実装が可能となるよう考慮し、T-functionとS-boxを基本構造としたアルゴリズムを選択している。
Mir-1では、LFSRの代わりに、T-functionを用いていることから、代数的攻撃への耐性が向上することが期待できる。
<発明が対象とする攻撃手法の要点>
Mir-1は連続する3時刻分の出力データを用いて構成されるDistinguisherが真の乱数系列で構成されるDistinguisherと比べて高い確率で成立する。
このDistinguisherにより、約2の10乗のデータ量で真の乱数系列と区別可能となる。
<攻撃手法の例示のための、Mir-1アルゴリズムの説明>
Mir-1アルゴリズムを説明するにあたり、変数の表記や定義について説明する。
ビット単位の排他的論理和、論理積、論理和をそれぞれ(+) 、&、|と表記する。
2の64乗を法とする加算、乗算をそれぞれ+、・と表記する。
1ワード(64ビット)の変数Xのtビット左ローテイトシフトを
X <<< t、または
ROLt(X)
と表記する。
ワードXのバイト単位、ビット単位をそれぞれ以下のように定義する。ただし、‖はデータの連結を意味している。
X = X.byte7 ‖ X.byte6 ‖ … ‖ X.byte0 = X.bit63 ‖ X.bit62 ‖ … ‖ X.bit0
またワードXの第Mビットから第NビットまでをX[M,N]と定義する。上記の表現を用いると、
X[M,N] = X.bitN ‖ X.bit(N-1) ‖ … ‖ X.bit(M)
となる。
Mir-1は、秘密鍵KEYが128ビット、初期ベクトルIVが64ビットであり、それぞれ以下のように表記する。
KEY = k.byte15 ‖ k.byte14 ‖ … ‖ k.byte0
IV = IV.byte7 ‖ IV.byte6 ‖ … ‖ IV.byte0
Mir-1の鍵ストリーム生成処理について説明する。
Mir-1の鍵ストリーム生成処理は大きく、
Loop State Update(“LS Update”という)と
Automata State Update(“AS Update”という)
の2つのパートに分かれている。
図5に、Mir-1のLS Updateのアルゴリズムを示す。図5に示すように、LS Updateは64ビットのレジスタxi(0≦i≦3)を4つ持ち、multi-word T-functionによってレジスタxiをそれぞれ更新する。
LS Updateの出力256ビット(x0‖x1‖x2‖x3)は最長周期2の256乗が保証されている。
図6に、Mir-1のAS Updateのアルゴリズムを示す。AS Updateは、64ビットのレジスタA、Bの2つを持ち、更新関数31を用いて、A’、B’を計算する。A’、B’は、そのままA、Bとなる。
このとき用いられるLS Updateからのレジスタ値は、それぞれ、(x0, x1, x2, x3)の上位32ビットを連結した64ビットデータであり、それぞれのワードを、
( x(i+2)[32,63] ‖ xi[32,63] )(i=0,1)
と表記する。
以降、
x20 = ( x2[32,63]‖x0[32,63] )、
x31 = ( x3[32,63]‖x1[32,63] )
で表現する。
Mir-1の鍵ストリーム生成処理では、時刻ごとに、LS UpdateとAS Updateを実行し、AS Updateで計算された64ビットのB'を鍵ストリームzとして出力する。
次にMir-1の初期化処理について説明する。初期処理は鍵ストリーム生成処理に先立って行われる。
Mir-1の初期処理は大きく分けて、Key Setupと、IV Setupの2つのパートに分かれている。
図7に、Mir-1のKey Setupのアルゴリズムを示す。Key Setupでは、128ビットの秘密鍵を用いてレジスタxi(i = 0〜3)、およびレジスタA、Bを初期化する。ここで、C0、C1は、図5に示す定数である。
Key Setupでは、最初に「secret S-box」と呼ばれる秘密鍵の値に応じて変化するS-boxを以下の式(1)で生成する。
ここで、SR[・]は、AES (Advanced Encryption Standard) で使用されているS-boxを意味しており、i=0, … , 255までのエントリについてそれぞれ計算する。
S-box[i] = SR[… SR[SR[i (+) k.byte0] (+) k.byte1] (+) … (+) k.byte15] ・・・ (1)
図8に、Mir-1のIV Setupのアルゴリズムを示す。IV Setupは、64ビットの初期ベクトルを用いて、Key Setupで初期化されたレジスタxi(0≦i≦3)、およびレジスタA、Bを更新する。
<発明が対象とするMir-1攻撃手法 Distinguishing Attackの説明>
Distinguishing Attackを適用するにあたり、Mir-1のIV Setupと、LS Updateにおいて成り立つ性質について説明する。ただし、Key Setupは、Distinguishing Attackには影響しない。
まず、IV Setupの構造的性質について説明する。
図8に示すように、IV Setupでは、64ビットのIVを、8ビットずつ8つ(IV.byte0〜IV.byte7)に分割し、それぞれを、secret S-boxで置換したデータを各レジスタに排他的論理和する。
ここで、各バイトが同じ値のIVa = (a‖a‖ … ‖a)を与える場合を考える。
排他的論理和の性質として、同じ値を排他的論理和すると結果は0になるので、結果的に、IV Setupで排他的論理和されるデータは、図9のようになる。図9は、IV Setupの性質を説明する図であり、IV Setupに、全バイト同じ値のIVが与えられた時に、各ワードによって全バイト同じデータが排他的論理和されるまたはIVの影響を受けないなどの問題が生じることを示す図である。
図9に示すように、ステップ2では、レジスタ(x0, x1, x2, x3)はIVの影響を受けない。
またステップ1、3でも、各レジスタxi.byte4(i=0〜3),A.byte0, A.byte4, B.byte0, B.byte4に排他的論理和されるデータは全てS[a]という同じデータとなる。
Secret S-boxのエントリは、秘密鍵依存のため未知であるが、全てのレジスタに同じ値が排他的論理和されることがわかる。
次に、LS Updateの性質を説明する。
Multi-word T-functionは、各ワードの第nビットは全ワードの第0〜nビットの影響しか受けない。
ブロック暗号に対する差分解析のように、LS Update開始時のレジスタxi(i=0〜3)に排他的論理和の差分(「差分」と略記される)Δiを与えたとき、差分Δiの第0〜nビットが全てゼロ(差分がない)の場合、レジスタxiの第0〜nビットの差分は、LS Updateの実行回数によらず常にゼロ、つまり差分が発生しない。
これは、LS Update(T-function)で行われる演算の影響が上位桁にしか波及しないためである。
図9に示すとおり、LS Updateでは全バイトが同じ値のIVaを与えたとき、レジスタxi(i = 0〜3)の第0〜31ビットはIVの影響を受けない。
よって、秘密鍵が固定の間(Key Setupの結果が同じ)は、全バイト同じ値という条件でIVaを変化させても、LS Updateの実行回数によらず、レジスタxiの第0〜31ビットには差分が生じない。
<選択IVを用いた差分攻撃>
上記2つの性質を利用した解析方法を説明する。
まず攻撃の条件として以下の3つが成り立つものとする。
・攻撃の間、秘密鍵は固定であるものとする。
・IVは攻撃者が自由に選択可能であるものとする。
・攻撃者は鍵ストリームを自由に入手可能であるものとする。
まずIV Setupにおいて、全バイトが同じ値である
Iva = (a‖a‖ … ‖a)
と、
IVb = (b‖b‖ … ‖b)
のペアで初期処理を行う。
IVaを与えたときのレジスタをxai、
IVbを与えたときのレジスタをxbi
とすると、IVSetupの構造的性質から、xaiとxbi(i = 0〜3)の下位32ビットの差分はゼロとなる。
xai[0,31] = xbi[0,31] (i=0〜3) ・・・ (2)
また図9のステップ1のように、レジスタxi.byte4にはそれぞれS[a]、S[b]が排他的論理和されるため、次式(3a)、(3b)のようになる(ただし、演算子(+)は排他的論理和を表す)。
xai.byte4 = xi.byte4 (+) S[a] (i=0〜3) ・・・ (3a)
xbi.byte4 = xi.byte4 (+) S[b] (i=0〜3) ・・・ (3b)
このとき、secret S-boxのエントリは不明であるが、
S[a] & 0x1 = S[b] & 0x1 ・・・ ・・・ (4)
を満たす場合、各レジスタxaiのビット32とxbiの第32ビットは以下の関係(5)を満たす。
xai.bit32 = xbi.bit32 (i=0〜3) ・・・ (5)
よって、IV Setupにおいて、全バイトが同じ値であるIVaとIVbを与えたとき、式(4)の条件を満たしていれば、式(2)と式(5)より以下の式(6)を満たす。
xai[0,32] = xbi[0,32] (i=0〜3) ・・・ (6)
つまり、IVaとIVbで更新されるレジスタxiの下位33ビットの関係はそれぞれ差分がゼロとなる。
LS Updateの性質からIV Setupおよび鍵ストリーム生成処理において、LS Updateの実行回数によらず式(4)の関係は必ず維持される。
次に、式(4)の条件を満たしているという仮定の元、鍵ストリーム生成処理について考える。
図10は、AS Updateの更新について3時刻分の状態遷移を示した図である。
時刻tにおけるデータXをX^(t)と表現する。
AS Updateでは、2の64乗を法とする加算を用いているが、最下位ビットのみを解読に利用することによって排他的論理和に置き換えて考えることができる。
図11は、最下位ビットのみを考慮し、連続する3時刻の鍵ストリームを利用してDistinguisherを構成することを説明するための図であり、最下位ビットのみを考慮し、図10における2の64乗を法とする加算を排他的論理和に置き換えた図である。
次にdistinguisherの構成方法について説明する。
IVaおよびIVbから生成される鍵ストリームをza、zbとする。
また、IVaおよびIVbを与えたときのLS Updateから挿入されるデータを(xa20, xa31)、(xb20, xb31)とする。
このとき、時刻tのsecret S-box出力ポジション(図11の81)において最下位ビットに関する式を立てると、次式(7a)、(7b)のようになる。
{ ROL29(za^(t-1)) (+) za^(t) (+) xa31^(t-1) (+) xa20^(t) (+) za^(t+1) }.bit0 = S[za^(t)].bit0 ・・・ (7a)
{ ROL29(zb^(t-1)) (+) zb^(t) (+) xb31^(t-1) (+) xb20^(t) (+) zb^(t+1) }.bit0
= S[zb^(t)].bit0 ・・・ (7b)
ここで、式(5)より、以下の関係(8)、(9)を満たしている。
xa20^(t).bit0 = xb20^(t).bit0 ・・・ (8)
xa31^(t-1).bit0 = xb31^(t-1).bit0 ・・・ (9)
またIVaおよびIVbから生成される鍵ストリームにおいて、
za^(t).byte0 = zb^(t).byte0 ・・・ (10)
を満たす時刻tを選択したとき、secret S-boxのエントリは不明であっても、入力が同じためsecret S-boxの出力も同じとなり以下の関係を満たす。
S[za^(t)] = S[zb^(t)] ・・・ (11)
よって、式(8)〜式(11)を考慮すると、以下の関係式(12)が成り立つ。
{ ROL29(za^(t-1) (+) zb^(t-1)) (+) za^(t+1) (+) zb^(t+1) }.bit0 = 0 ・・・ (12)
まとめると、任意に与えたIVaとIVbのペアにおいて式(4)を満たしているとき、式(10)が成り立つ時刻tにおいて、式(12)が常に成り立つ。
次に、式(12)がDistinguisherとして利用できることを説明する。
<Distinguisherが成り立つ確率と必要なデータ量>
ここでは、Distinguisherとして利用する式(12)の成立確率について説明する。
もしMir-1の出力する鍵ストリームが真の乱数系列であれば、Distinguisherである式(12)が成り立つ確率は1/2となる。
以降では異なるIVによって更新される内部状態、および鍵ストリームは独立であり一様に分布する、という仮定のもと議論を進める。
まず式(10)を満たす確率は、2の-8乗となる。ただし、鍵ストリームは攻撃者にとって既知の値となるため選択可能であり、常に式(10)を満たすことが可能である。
次に、式(4)を満たす確率は、ランダムに選択されたsecret S-boxエントリの最下位ビットが一致する確率であり1/2となる。
ここで式(4)を満たさない時、式(12)が成り立つ確率を理想的に1/2と仮定すると、Mir-1の出力系列において式(12)が成り立つ確率Pdは、
Pd = 1×1/2 + 1/2(1-1/2)
= 1/2(1+1/2) ・・・ (13)
となる。
よって真の乱数系列における確率1/2と比べて大きくなる。
次に、式(12)をdistinguisherとしたとき、Mir-1の出力系列と真の乱数系列を区別するために必要なデータ量を検討する。
非特許文献3(I. Mantin, and A. Shamir: "A Practical Attack on Broadcast RC4,"Fast Software Encryption, FSE 2001, LNCS 2355, pp.152-164,Springer-Verlag, 2001.)によると、2つの分布を区別するのに必要なデータ量は以下のようになることが示されている。
確率pで発生する事象分布Xと、確率p(q+1)で発生する事象分布Yにおいて、あるイベントeが生じる時、無視できない成功確率でXとYを区別するには、O(1/(p・qの2乗))のサンプルが必要である。
ただし、上記の定理はpが十分小さいとき成り立つ定理である。
非特許文献4(S. Paul, B. Preneel, and G. Sekar: "Distinguishing Attacks on the Stream Cipher Py,"eSTREAM, the ECRYPT Stream Cipher Project, Report 2005/081, 2005.)には、p=1/2のときには、2つの分布を区別するのに必要なデータ量は以下のようになることが示されている。
確率p = 1/2で発生する事象分布Xと、確率1/2(q+1)で発生する事象分布Yにおいて、あるイベントeが生じる時、無視できない成功確率でXとYを区別するには、O(1/(qの2乗))のサンプルが必要である。
先に述べたDistinguisherを使用した解読におけるイベントeは、式(12)が成り立つ事象であり、乱数におけるイベントeの分布をX、Mir-1の出力系列におけるイベントeの分布をYとみなすことができる。
よって、p=1/2、q=1/2と考えることができるため、解読に必要なデータ量はO(2の2乗)となる。
ここで、式(10)を満たす鍵ストリームを選択することを考慮に入れると、解読に必要なデータ量Tは、
T = 2の8乗 × O(2の2乗)
= O(2の10乗) ・・・ (14)
となる。
よって、選択IV攻撃を適用することで、理論的に、約2の10乗ワードの鍵ストリームを利用するとMir-1の出力系列と真の乱数列との区別が可能である。
A. Maximov,"A New Stream Cipher "Mir-1,"ECRYPT Stream Cipher Project, Report 2005/017, 2005. A. Klimov, and A. Shamir,"A New Class of Invertible Mappings,"CHES'02, LNCS 2523, pp.470-480, Springer Verlag, 2002. I. Mantin, and A. Shamir: "A Practical Attack on Broadcast RC4,"Fast Software Encryption, FSE 2001, LNCS 2355, pp.152-164,Springer-Verlag, 2001. S. Paul, B. Preneel, and G. Sekar: "Distinguishing Attacks on the Stream Cipher Py,"eSTREAM, the ECRYPT Stream Cipher Project, Report 2005/081, 2005.
以上の非特許文献1〜4の開示事項は、本書に引用をもって繰り込み記載されているものとする。以下に本発明による関連技術の分析を与える。
Mir-1の出力系列は、式(12)をDistinguisherとしたときの攻撃手法によって鍵ストリームが高い確率で真の乱数列との区別が可能であり、このため安全性が低い、という課題がある。
したがって、本発明の目的は、例えばMir-1等のストリーム暗号におけるDistinguisherの構成を困難にし、かつMir-1がもつ速度性能の低下をきたさない暗号装置、方法、プログラムを提供することにある。
本願で開示される発明は、前記課題を解決するため、概略以下の構成とされる。
本発明は、ストリーム暗号に用いられる擬似乱数生成装置であって、1個以上の内部状態を有し、前記内部状態を有し、前記内部状態に保存されている数値データを更新する非線形変換手段と、前記非線形変換手段で更新された数値データに対して、予め定められたルールに基づいてビット転置のみを行う転置手段と、を備えている。
本発明において、内部状態の更新は、擬似乱数列の出力よりも多く行われる。
本発明において、前記ビット転置のルール付けを、予め定められたテーブルの値に従って変更する。
本発明によれば、例えばMir−1等のストリーム暗号におけるDistinguisherの構成を困難にするとともに、速度性能の低下をきたすことはない。
本発明の一実施形態の手順を示すフローチャートである。 本発明の一実施例の構成を示す図である。 本発明の一実施例における転置手段の一例を示す図である。 本発明の一実施例の動作の一例を示す図である。 Mir−1 LS Updateのアルゴリズムを示す図である。 Mir−1 AS Updateのアルゴリズムを示す図である。 Mir−1 Key Setupのアルゴリズムを示す図である。 Mir−1 IV Setupのアルゴリズムを示す図である。 IV Setupの性質を説明する図である。 連続した3時刻分のAS Updateの状態遷移を示す図である。 Distinguisherの構成を示す図である。
符号の説明
11 内部状態
12 非線形変換手段
13 転置手段
31 更新関数
81 S-box出力ポジション
90、94、901、902、903、904、941、942 内部状態
91、95 非線形変換手段
92 セレクタ
93、931、932、933、934 転置手段
96、97 処理
111 Key Setup
112 セレクタ切替
113 IV Setup
114 セレクタ切替
115 鍵ストリーム生成処理
921〜928 セレクタ出力
図1は、本発明の一実施形態の構成を示す図である。本発明は、「選択IVを用いた差分攻撃」を適用できなくするものである。具体的には、IV Setupにおいて、内部状態11を、T-functionである非線形変換手段12で更新したあとに、あるルールに基づいたビット転置を行う転置手段13を有する。
本実施形態においては、このような転置手段13を用いることによって、T-functionにおける第nビットは、第0〜nビットの影響しか受けない、という性質を消すことができる。
つまり、内部状態の各ワードの第nビットは、全ワードの第nビットよりも上位のビットからの影響を受けるため、「選択IVを用いた差分攻撃」が実質的に適用出来なくなる。
よって、本発明により、従来のMir−1の出力系列が高い確率で真の乱数列との区別が可能であり安全性が低いという課題を解決できる。
図2は、図1に示した本発明の一具体例(実施例)の構成を示す図である。図2に示すように、本実施例は、内部状態90、94、非線形変換手段91、95、セレクタ92、転置手段93を有する。内部状態90は4つの内部状態(レジスタ)901〜904を有する。転置手段93は、4つの転置手段931〜934を有する。セレクタ92は、非線形変換手段91からの4つの出力データを、内部状態901〜904又は転置手段931〜934に供給する。内部状態94は2つの内部状態(レジスタ)941〜942を有する。
内部状態90に保持されている数値データを、非線形変換手段91に入力して非線形変換を行う。
非線形変換手段91は、例えばmulti-word T-function(図5参照)に相当する。
非線形変換手段91から出力されたデータは、セレクタ92によって処理が制御される。
セレクタ出力921、923、925、927が選択されているとき、データは内部状態90に戻され、保持される。
セレクタ出力922、924、926、928が選択されているとき、データは、転置手段93に入力される。
本実施例において、転置手段93は、図3に示したビット転置処理を行う。すなわち、64ビットの各データを、上位8ビットと下位56ビットに分割し、上位8ビットが別のワードの下位8ビットに配置されるようなビット転置を行う。
例えばx0の場合、
x0の上位8ビット(x0[56,63])がx1の下位8ビットに、
x0の下位56ビット(x0[0,55])がx0の上位56ビットに
配置されるように、ビット転置を行う。
ビット転置処理されたデータは、内部状態90に戻されて保持される。
一方、内部状態941、942に保持されているデータは、非線形変換手段95に入力され、非線形変換手段91又は転置手段93から出力されたデータと共に、非線形変換される(図6の更新関数31の処理に対応)。
非線形変換手段95で変換されたデータは、内部状態941、942に戻され、保持される。このとき、内部状態942に戻されるデータを、鍵ストリームとして出力する。
前述した従来の手法は、Mir-1の初期処理(LS UpdateとIV Setup)の性質を利用した手法である。本実施例では、鍵ストリームを生成する処理(AS Update)には、この従来手法に変更を施さない。
以下では、初期処理に、本発明を適用した一具体例について、図4を参照して説明する。
Key Setupステップ111は、図7に示したMir-1のKey Setupから変更はない。ここで、図2との対応は、x0〜x3が内部状態90、A、Bが内部状態94となる。
図2の96の処理が、LS Update、97の処理は、AS Updateに対応する。このとき、セレクタ92は、転置処理93を行わないようにセットされる(セレクタ切替112)。
図2において、非線形変換手段91は図5に対応し、転置手段93は図3に対応し、非線形変換手段95は図6に対応する。
以上の処理で、秘密鍵を入力として、内部状態の更新を行う。このとき、鍵ストリームは出力しない。
次に、IV Setupステップ113では、IVの挿入方法を、図8から、次式(15)のように変更する。
x0 = x0 (+) S[IV]x1
= x1 (+) S[ROL16(IV)]x2
= x2 (+) S[ROL32(IV)]x3
= x3 (+) S[ROL48(IV)]
・・・ (15)
S[X]はデータXをバイト単位でS-box参照する。
つまり
S[X] = S-box[X.byte7]‖S-box[X.byte6]‖…‖S-box[X.byte0]
・・・ (16)
を意味している。
IVの挿入後、セレクタ92は、転置処理93を行うようにセットされ、図2の処理を2回行う。このとき、鍵ストリームは出力しない。
そして、セレクタ92は、再度、転置処理93を行わないようセットされ(セレクタ切替114)、鍵ストリーム生成処理115に移行する。
鍵ストリーム生成処理115では、必要な鍵ストリームが得られるまで、図2の処理を繰り返し行う。
図4に示した実施例により、得られる作用効果を以下に説明する。
まず、IV Setupステップ113の変更により、全バイト同じ値となるIVを与えたとしても、内部状態の各ワードに必ず差分が入る、つまり入力差分を打ち消すようなIVを与えることが出来ない。
また、図2の転置手段93によって、内部状態に入る差分のバイト位置も、16ビットずつずれるため、処理96によって、下位側のバイトからの差分攪拌効果が期待できる。
また、この変更を行ったとしても、8ビット単位でのS−boxの参照回数および排他的論理和の実行回数に変更が無いため、処理速度の劣化はない。
また、64ビットプロセッサをターゲットとした暗号アルゴリズムであることを考えると、排他的論理和は64ビット変数のまま実行できるため、処理速度の向上が期待できる。
次に、転置手段93の追加により、全バイト同じ値となるような選択IVを与えたとしても、内部状態90のバイト4に挿入された差分が非線形変換手段91の処理によって上位側に波及し、その差分効果が転置手段93よって下位側および隣のワードに波及する。
よって、全バイト同じ値となるような選択IVを与えたとしても、内部状態90の更新において確率1で差分ゼロが伝播することは発生しない。
また図3の処理は、2の256乗→2の256乗の全単射な写像であり、IV Setupの終了直後の値としてIVのパタン2の64乗のバリエーションが保証できる。
これにより、T-functionの最長周期を保証するという特徴も鍵ストリーム生成処理においては影響しない。ただし、実装性の観点で処理速度が若干劣化するが、64ビットプロセッサをターゲットとした暗号アルゴリズムであることを考えれば、それほど大きな劣化はないと考えられる。
以上詳細に説明したように、本発明によれば、データの通信や蓄積の際にデータを秘匿するための安全性の高い暗号装置を得ることができる。かつ元来の暗号が有していた速度性能の低下をきたさない暗号装置の提供も可能となる。
以上、本発明を上記実施例に即して説明したが、本発明は上記実施例の構成にのみ制限されるものでなく、本発明の範囲内で当業者であればなし得るであろう各種変形、修正を含むことは勿論である。
以上本発明を上記実施例に即して説明したが、本発明は、上記実施例にのみ限定されるものではなく、本願特許請求の範囲の各請求項の発明の範囲内で当業者であればなし得るであろう各種変形、修正を含むことは勿論である。
本発明の全開示(請求の範囲を含む)の枠内において、さらにその基本的技術思想に基づいて、実施形態ないし実施例の変更・調整が可能である。また、本発明の請求の範囲の枠内において種々の開示要素の多様な組み合わせないし選択が可能である。

Claims (17)

  1. ストリーム暗号に用いられる擬似乱数生成装置であって、
    少なくとも1つの内部状態と、
    前記内部状態に保存されている数値データを更新する非線形変換手段と、
    前記非線形変換手段で更新された数値データに対して、予め定められたルールに基づいてビット転置のみを行う転置手段と、
    を備え、
    鍵ストリーム生成前の初期化ベクトル(Initialization Vector: IV)のセットアップにおいて、前記内部状態を前記非線形変換手段で更新したあと、前記転置手段にて、前記非線形変換手段で変換された複数のデータを入力し、各データを上位、下位ビットに分割し、一のデータの上位ビットが別のデータの下位ビットに配置されるようなビット転置を行い、ビット転置処理したデータを前記内部状態に戻す、ことを特徴とする擬似乱数生成装置。
  2. 前記内部状態の更新が、擬似乱数列の出力よりも多く行われる、ことを特徴とする請求項1に記載の擬似乱数生成装置。
  3. ストリーム暗号に用いられる擬似乱数を生成する処理をコンピュータに実行させるプログラムであって、
    少なくとも1つの内部状態に保存されている数値データを更新する非線形変換処理と、
    更新された数値データに対して、予め定められたルールに基づいて、ビット転置のみを施す転置処理と、
    を含み
    鍵ストリーム生成前の初期化ベクトル(Initialization Vector: IV)のセットアップにおいて、前記内部状態を前記非線形変換処理で更新したあと、前記転置処理にて、前記非線形変換手段で変換された複数のデータを入力し、各データを上位、下位ビットに分割し、一のデータの上位ビットが別のデータの下位ビットに配置されるようなビット転置を行い、ビット転置処理したデータを前記内部状態に戻す、プログラム。
  4. 前記内部状態の更新が、擬似乱数列の出力よりも多く行われる、ことを特徴とする請求項に記載のプログラム。
  5. 請求項又はに記載のプログラムを記録したコンピュータが読みとり可能な記録媒体。
  6. ストリーム暗号に用いられる擬似乱数を生成する方法であって、
    少なくとも1つの内部状態に保存されている数値データを更新する非線形変換工程と、
    更新された数値データに対して、予め定められたルールに基づいて、ビット転置のみを施す転置工程と、
    を含み、
    鍵ストリーム生成前の初期化ベクトル(Initialization Vector: IV)のセットアップにおいて、前記内部状態を前記非線形変換工程で更新したあと、前記転置工程にて、前記非線形変換工程で変換された複数のデータを入力し、各データを上位、下位ビットに分割し、一のデータの上位ビットが別のデータの下位ビットに配置されるようなビット転置を行い、ビット転置処理したデータを前記内部状態に戻す、ことを特徴とする擬似乱数生成方法。
  7. 前記内部状態の更新が、擬似乱数列の出力よりも多く行われる、ことを特徴とする請求項6記載の擬似乱数生成方法。
  8. 所定ビット幅のデータを保持するレジスタを複数備え、
    前記複数のレジスタに保持されている複数のデータを入力して非線形変換を行う非線形変換手段と、
    前記非線形変換手段で変換された複数のデータを入力し、各データを上位、下位ビットに分割し、一のデータの上位ビットが別のデータの下位ビットに配置されるようなビット転置を行う転置手段と、
    前記非線形変換手段と前記転置手段との間に配設され、前記非線形変換手段から出力される複数のデータを、前記転置手段に供給するか、又は前記複数のレジスタへ戻す選択を行うセレクタと、
    を備え、
    鍵ストリーム生成前の初期化ベクトル(Initialization Vector: IV)のセットアップにおいて、前記転置手段が、前記セレクタを介して、前記非線形変換手段で変換された複数のデータを入力してビット転置を行い、
    前記転置手段から出力される、ビット転置された複数のデータは、前記複数のレジスタに戻されて保持され、その後、前記セレクタは前記非線形変換手段から出力される複数のデータを、前記転置手段に供給せずに前記複数のレジスタへ戻すように切り替える、擬似乱数生成装置。
  9. 前記非線形変換手段が、マルチワードT−ファンクション(multi word T−function)である、請求項記載の擬似乱数生成装置。
  10. 第1、第2のレジスタと、
    前記第1、第2のレジスタから第1、第2のデータを入力し、
    請求項又は記載の擬似乱数生成装置の前記非線形変換手段又は前記転置手段から出力される複数のデータとともに、非線形変換を行う、別の非線形変換手段と、
    を備え、
    前記別の非線形変換手段から出力されるデータにて前記第1、第2のレジスタが更新されるとともに、前記データの一方は、鍵ストリームとして出力される、鍵ストリーム生成装置。
  11. 所定ビット幅のデータを保持するレジスタを複数備えたコンピュータに、
    前記複数のレジスタに保持されている複数のデータを入力して非線形変換を行う非線形変換処理と、
    前記非線形変換処理で変換された複数のデータを入力し、各データを上位、下位ビットに分割し、一のデータの上位ビットが別のデータの下位ビットに配置されるようなビット転置を行う転置処理であって、前記ビット転置された複数のデータは前記複数のレジスタに戻されて保持される転置処理と、
    前記非線形変換処理と前記転置処理との間に配設され、前記非線形変換処理から出力される複数のデータを、前記転置処理に供給するか、又は前記複数のレジスタへ戻す選択を行う選択処理であって、
    鍵ストリーム生成前の初期化ベクトル(Initialization Vector: IV)のセットアップにおいて、前記転置処理が、前記選択処理を介して、前記非線形変換処理で変換された複数のデータを入力してビット転置を行い、前記転置処理から出力される、ビット転置された複数のデータは、前記複数のレジスタに戻されて保持され、その後、前記セレクタは前記非線形変換手段から出力される複数のデータを、前記転置処理に供給せずに前記複数のレジスタへ戻すように切り替える前記選択処理と、
    を実行させるプログラム。
  12. 前記非線形変換処理が、マルチワードT−ファンクション(multi word T−function)である、請求項1記載の擬似乱数生成プログラム。
  13. 第1、第2のレジスタを備えたコンピュータに、
    前記第1、第2のレジスタから第1、第2のデータを入力し、請求項1又は1記載のプログラムの前記非線形変換処理又は前記転置処理から出力される複数のデータとともに、非線形変換を行う、別の非線形変換処理と、
    前記別の非線形変換処理から出力されるデータにて前記第1、第2のレジスタを更新するとともに、前記データの一方を、鍵ストリームとして出力する処理を実行させる鍵ストリーム生成プログラム。
  14. 請求項1乃至1のいずれか一に記載のプログラムを記録したコンピュータが読みとり可能な記録媒体。
  15. 所定ビット幅のデータを保持する複数のレジスタに保持されている複数のデータを入力して非線形変換を行う非線形変換工程と、
    前記非線形変換工程で変換された複数のデータを入力し、各データを上位、下位ビットに分割し、一のデータの上位ビットが別のデータの下位ビットに配置されるようなビット転置を行う転置工程と、
    前記非線形変換工程と前記転置工程との間に配設され、前記非線形変換工程から出力される複数のデータを、前記転置工程に供給するか、又は前記複数のレジスタへ戻す選択を行う選択工程と、
    を含み、
    鍵ストリーム生成前の初期化ベクトル(Initialization Vector: IV)のセットアップにおいて、前記転置工程が、前記選択工程を介して、前記非線形変換工程で変換された複数のデータを入力してビット転置を行い、前記転置工程から出力される、ビット転置された複数のデータは、前記複数のレジスタに戻されて保持され、その後、前記選択工程は前記非線形変換工程から出力される複数のデータを、前記転置工程に供給せずに前記複数のレジスタへ戻すように切り替える、ことを特徴とする擬似乱数生成方法。
  16. 前記非線形変換工程が、マルチワードT−ファンクション(multi word T−function)である、請求項1記載の擬似乱数生成方法。
  17. 第1、第2のレジスタから第1、第2のデータを入力し、請求項15又は16記載の擬似乱数生成方法の前記非線形変換工程又は前記転置工程から出力される複数のデータとともに、非線形変換を行う、別の非線形変換工程を有し、
    前記別の非線形変換工程から出力されるデータにて前記第1、第2のレジスタが更新されるとともに、前記データの一方は、鍵ストリームとして出力される、鍵ストリーム生成方法。
JP2009506348A 2007-03-27 2008-03-25 ストリーム暗号向け擬似乱数生成装置とプログラムと方法 Expired - Fee Related JP5268001B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009506348A JP5268001B2 (ja) 2007-03-27 2008-03-25 ストリーム暗号向け擬似乱数生成装置とプログラムと方法

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2007081755 2007-03-27
JP2007081755 2007-03-27
PCT/JP2008/055599 WO2008117804A1 (ja) 2007-03-27 2008-03-25 ストリーム暗号向け擬似乱数生成装置とプログラムと方法
JP2009506348A JP5268001B2 (ja) 2007-03-27 2008-03-25 ストリーム暗号向け擬似乱数生成装置とプログラムと方法

Publications (2)

Publication Number Publication Date
JPWO2008117804A1 JPWO2008117804A1 (ja) 2010-07-15
JP5268001B2 true JP5268001B2 (ja) 2013-08-21

Family

ID=39788538

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009506348A Expired - Fee Related JP5268001B2 (ja) 2007-03-27 2008-03-25 ストリーム暗号向け擬似乱数生成装置とプログラムと方法

Country Status (3)

Country Link
US (1) US20100128870A1 (ja)
JP (1) JP5268001B2 (ja)
WO (1) WO2008117804A1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100931581B1 (ko) * 2007-12-06 2009-12-14 한국전자통신연구원 Tsc-4 스트림 암호 연산을 수행하기 위한 장치
US20100303229A1 (en) * 2009-05-27 2010-12-02 Unruh Gregory Modified counter mode encryption
US9559844B2 (en) * 2011-11-09 2017-01-31 Kddi Corporation Non-linear processor, stream-cipher encrypting device, stream-cipher decrypting device, mask processing method, stream-cipher encrypting method, stream-cipher decrypting method, and program

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09325881A (ja) * 1996-06-05 1997-12-16 Nec Corp 擬似乱数発生装置
JP2003037482A (ja) * 2001-01-23 2003-02-07 Hitachi Ltd 疑似乱数生成装置またはそれを用いた暗号復号処理装置
JP2008139742A (ja) * 2006-12-05 2008-06-19 Kddi Corp 非線形関数器、ストリーム暗号の暗号化装置、復号化装置、mac生成装置、ストリーム暗号の暗号化方法、復号化方法、mac生成方法およびプログラム

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62213442A (ja) * 1986-03-14 1987-09-19 Hitachi Ltd デ−タ保護装置
US5581614A (en) * 1991-08-19 1996-12-03 Index Systems, Inc. Method for encrypting and embedding information in a video program
JP2000293587A (ja) * 1999-04-09 2000-10-20 Sony Corp 情報処理装置および方法、管理装置および方法、並びに提供媒体
US6826689B1 (en) * 1999-10-01 2004-11-30 Geneticware Co., Ltd. Method and system for emulating a secret code between two hardware modules
US7215768B2 (en) * 2002-06-25 2007-05-08 Intel Corporation Shared new data and swap signal for an encryption core
US20080120481A1 (en) * 2006-11-16 2008-05-22 Sandisk Il Ltd. Methods For Protection Of Data Integrity Of Updatable Data Against Unauthorized Modification

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09325881A (ja) * 1996-06-05 1997-12-16 Nec Corp 擬似乱数発生装置
JP2003037482A (ja) * 2001-01-23 2003-02-07 Hitachi Ltd 疑似乱数生成装置またはそれを用いた暗号復号処理装置
JP2008139742A (ja) * 2006-12-05 2008-06-19 Kddi Corp 非線形関数器、ストリーム暗号の暗号化装置、復号化装置、mac生成装置、ストリーム暗号の暗号化方法、復号化方法、mac生成方法およびプログラム

Also Published As

Publication number Publication date
US20100128870A1 (en) 2010-05-27
JPWO2008117804A1 (ja) 2010-07-15
WO2008117804A1 (ja) 2008-10-02

Similar Documents

Publication Publication Date Title
CN106788974B (zh) 掩码s盒、分组密钥计算单元、装置及对应的构造方法
JP3600454B2 (ja) 暗号化・復号装置、暗号化・復号方法、およびそのプログラム記憶媒体
JP4596686B2 (ja) Dpaに対して安全な暗号化
Hussain et al. Construction of S8 Liu J S-boxes and their applications
JP5229315B2 (ja) 共通鍵暗号機能を搭載した暗号化装置及び組込装置
EP2293487A1 (en) A method of diversification of a round function of an encryption algorithm
KR102620649B1 (ko) 암호화 동작을 위한 키 시퀀스 생성
AU2007232123B2 (en) Robust cipher design
JP2008058830A (ja) データ変換装置、およびデータ変換方法、並びにコンピュータ・プログラム
JPWO2008010441A1 (ja) 暗号装置及びプログラムと方法
KR20120109501A (ko) 커스트마이징된 마스킹에 의해 보호된 저-복잡성 전자 회로
US8437470B2 (en) Method and system for block cipher encryption
Wu et al. Resynchronization Attacks on WG and LEX
Masoodi et al. Symmetric Algorithms I
Duta et al. Randomness evaluation framework of cryptographic algorithms
JP5268001B2 (ja) ストリーム暗号向け擬似乱数生成装置とプログラムと方法
JPWO2012105352A1 (ja) ブロック暗号化装置、復号装置、暗号化方法、復号方法およびプログラム
JP5680016B2 (ja) 復号処理装置、情報処理装置、および復号処理方法、並びにコンピュータ・プログラム
Murtaza et al. Fortification of aes with dynamic mix-column transformation
Singh et al. Enhancing AES using novel block key generation algorithm and key dependent S-boxes
JP2002510058A (ja) 2進データ・ブロックの暗号変換のための方法
Abdulwahed Chaos-Based Advanced Encryption Standard
WO2009104827A1 (en) Method and apparatus for generating key stream for stream cipher, s-box for block cipher and method for substituting input vector using the s-box
Islam et al. Data encryption standard
JP5772934B2 (ja) データ変換装置、およびデータ変換方法、並びにコンピュータ・プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110204

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130115

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130318

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130426

R150 Certificate of patent or registration of utility model

Ref document number: 5268001

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313115

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees