削除された内容 追加された内容
Melan (会話 | 投稿記録)
→‎安全性: サイドチャネル攻撃
74行目:
* XSL攻撃 [[:en:XSL attack]]
ショートカット法が存在するアルゴリズムは学術的には「解読可能」と呼ばれるが、その必要な計算量が現実的であるかどうかは考慮されない。すなわち、学術的に解読可能であることが、即、その暗号を利用したシステムの破綻につながるわけではない。しかしながら、設計者が想定した強度を有していないという事実はその暗号アルゴリズムが[[信頼性の低い暗号アルゴリズム]]であることを意味する。
<!--
=== 計算量的でない安全性 ===
暗号化鍵と暗号化文が一対一対応するすべての暗号は時間さえあれば全鍵探索で解読可能です。
全鍵探索しても秘密鍵を解読できないブロック暗号があります。
3ビットのブロック暗号による擬似乱数発生器の例を3つの入出力対応表で示します。
列見出しは暗号攻撃者が入力する任意の数であり、乱数の種は秘密で行見出しの2進数です。
乱数発生のアルゴリズムは公開されていて、攻撃者は表を全て事前に用意できます。
 
=== サイドチャネル攻撃 ===
{|class="wikitable" style="text-align:center"
ハードウェアやソフトウェアに実装された暗号をアルゴリズムではなく、消費電力や実行時間等の情報を用いて攻撃する手法をサイドチャネル攻撃と呼ぶ。サイドチャネル攻撃は実装とアルゴリズムの両方に影響される。
|+ 対応表0
* [[電力攻撃|:en:Power_Analysis]] Simple Power Analysis
! !! 0 !! 1 !! 2 !! 3 !! 4 !! 5 !! 6 !! 7
* [[電力差分攻撃|:en:Power_Analysis]] Power Analysis
|-
* [[タイミング攻撃|:en:Timing_Attack]] Timing Attack
!0 0 0
|style="width:2em"|0||style="width:2em"|7||style="width:2em"|7||style="width:2em"|0||style="width:2em"|7||style="width:2em"|0||style="width:2em"|0||style="width:2em"|7
|-
!0 0 1
|5||2||1||6||1||6||5||2
|-
!0 1 0
|5||2||1||0||7||6||5||2
|-
!0 1 1
|6||4||2||3||4||5||3||1
|-
!1 0 0
|6||4||2||3||4||5||3||1
|-
!1 0 1
|5||2||1||0||7||6||5||2
|-
!1 1 0
|5||2||1||6||1||6||5||2
|-
!1 1 1
|0||7||7||0||7||0||0||7
|-
|}
 
攻撃者は表0の出力の値から乱数の種の値を決定できません。
乱数の種の値は出力の値と2対1対応しています。
<ref name="cited">参考文献 PCT/JP2005/008646, personally identificapable sieved confidential information sign-up</ref>
<references/>
乱数の種を増分して、その出力を下に表示します。見出しは元の種の値です。
 
{|class="wikitable" style="text-align:center"
|+ 対応表1
! !! 0 !! 1 !! 2 !! 3 !! 4 !! 5 !! 6 !! 7
|-
!0 0 0
|style="width:2em"|3||style="width:2em"|4||style="width:2em"|7||style="width:2em"|0||style="width:2em"|7||style="width:2em"|0||style="width:2em"|3||style="width:2em"|4
|-
 
!0 0 1
|3||7||2||6||1||5||0||4
|-
!0 1 0
|3||7||2||6||1||5||0||4
|-
!0 1 1
|3||4||7||0||7||0||3||4
|-
!1 0 0
|3||2||7||6||1||0||5||4
|-
!1 0 1
|0||1||4||0||7||3||6||7
|-
!1 1 0
|0||1||4||0||7||3||6||7
|-
!1 1 1
|3||2||7||6||1||0||5||4
|-
|}
表0と表1を用いて攻撃者が最初と2度目の出力の値から乱数の種の値を決定できるのは、入力の値が1か3か4、又は6でそのうち16の場合だけです。
たとえば攻撃者の入力が1・1であり出力が7・4のとき、乱数の種の値は000です。
乱数の種の値が111のときの出力は7・2であり、差異があります。
再び乱数の種を増分して、その出力を下に表示します。
 
{|class="wikitable" style="text-align:center"
|+ 対応表2
! !! 0 !! 1 !! 2 !! 3 !! 4 !! 5 !! 6 !! 7
|-
!0 0 0
|style="width:2em"|7||style="width:2em"|6||style="width:2em"|5||style="width:2em"|2||style="width:2em"|5||style="width:2em"|2||style="width:2em"|1||style="width:2em"|0
|-
!0 0 1
|1||6||5||2||5||2||1||6
|-
!0 1 0
|7||0||0||7||0||7||7||0
|-
!0 1 1
|7||0||0||7||0||7||7||0
|-
!1 0 0
|1||6||5||2||5||2||1||6
|-
!1 0 1
|7||6||5||2||5||2||1||0
|-
!1 1 0
|4||5||3||1||6||4||2||3
|-
!1 1 1
|4||5||3||1||6||4||2||3
|-
|}
 
攻撃者は今までの結果と表2の出力の値から乱数の種の値を決定できます。
ただし乱数の種の値が000か101で攻撃者の入力が4・4・4のとき、000か101かを決定できません。
この擬似乱数発生器は2.8125回とプラスαだけ攻撃者の予測できない情報を発信します。
表0と表1は出力の値と乱数の種の値から入力の値を決定できないことも示しています。
この擬似乱数発生器は一方向性関数でもあります。
{{節stub}}
-->
 
== 歴史 ==