回答編集履歴
9
読みやすく編集
answer
CHANGED
@@ -6,29 +6,44 @@
|
|
6
6
|
|
7
7
|
以下、
|
8
8
|
|
9
|
+
```plain
|
9
10
|
暗号化された元の文書 : X
|
10
11
|
送受信者しか知らないハッシュ関数 : H
|
11
12
|
ハッシュ値 : x (← これをメッセージ認証コード[Message Authentication Code、MAC]と呼ぶそうです。)
|
12
13
|
|
13
14
|
間違った値の時 : ○!
|
14
15
|
間違っているかもしれない値の時 : ○?
|
16
|
+
```
|
15
17
|
|
16
18
|
とする。
|
17
19
|
|
18
20
|
- 正常時
|
19
21
|
|
22
|
+
```plain
|
20
|
-
|
23
|
+
送信側 : X → H → x
|
24
|
+
|
21
|
-
↓ Xとxを同時に送る
|
25
|
+
↓ Xとxを同時に送る
|
26
|
+
|
22
27
|
受信側 : X → H → x → 合ってる
|
28
|
+
```
|
23
29
|
|
24
30
|
- 異常時
|
25
31
|
|
32
|
+
```plain
|
26
|
-
|
33
|
+
送信側 : X → H → x
|
34
|
+
|
27
|
-
↓Xとxを同時に送る
|
35
|
+
↓Xとxを同時に送る
|
36
|
+
|
28
37
|
イタズラ
|
38
|
+
|
29
|
-
↓X?、x?になる
|
39
|
+
↓X?、x?になる
|
40
|
+
|
30
41
|
受信側 : X? → H → x?となる時 → 多分合ってる(「ハッシュ関数が漏れた」か、「[X!,x]で偶々ハッシュ値の衝突が起きた」か、など。イタズラが起きたかは不明)
|
42
|
+
|
43
|
+
または
|
44
|
+
|
31
45
|
受信側 : X? → H → y(≠x?)となる時 → X!であったか、x!であったか、またはその両方 → イタズラか障害が発生した
|
46
|
+
```
|
32
47
|
|
33
48
|
#
|
34
49
|
|
8
言葉の間違い修正
answer
CHANGED
@@ -34,4 +34,4 @@
|
|
34
34
|
|
35
35
|
私は聞きかじっただけなので詳しいことはわからないですが…(^ ^;
|
36
36
|
|
37
|
-
事前にハッシュ関数(またはそれを生成するためのキー)自体も共
|
37
|
+
事前にハッシュ関数(またはそれを生成するためのキー)自体も共通鍵暗号方式等で共有する必要があるみたいですね。(これが割れているなら完全な書き換えやなりすましが可能ですから…)
|
7
一部追記
answer
CHANGED
@@ -8,7 +8,7 @@
|
|
8
8
|
|
9
9
|
暗号化された元の文書 : X
|
10
10
|
送受信者しか知らないハッシュ関数 : H
|
11
|
-
ハッシュ値 : x
|
11
|
+
ハッシュ値 : x (← これをメッセージ認証コード[Message Authentication Code、MAC]と呼ぶそうです。)
|
12
12
|
|
13
13
|
間違った値の時 : ○!
|
14
14
|
間違っているかもしれない値の時 : ○?
|
6
文言の編集…何度もすみません…
answer
CHANGED
@@ -32,6 +32,6 @@
|
|
32
32
|
|
33
33
|
#
|
34
34
|
|
35
|
-
私
|
35
|
+
私は聞きかじっただけなので詳しいことはわからないですが…(^ ^;
|
36
36
|
|
37
|
-
|
37
|
+
事前にハッシュ関数(またはそれを生成するためのキー)自体も共有鍵暗号方式等で共有する必要があるみたいですね。(これが割れているなら完全な書き換えやなりすましが可能ですから…)
|
5
文言の追加等
answer
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
ハッシュ関数、ハッシュ値については他の回答者様方が答えられているので、別なアプローチで。
|
2
2
|
|
3
|
-
「メッセージ認証コード」なるものがあるらしく、以下のような仕組みだそうです。
|
3
|
+
データをやり取りする方法に「メッセージ認証コード」なるものがあるらしく、以下のような仕組みだそうです。
|
4
4
|
|
5
5
|
#
|
6
6
|
|
@@ -19,7 +19,7 @@
|
|
19
19
|
|
20
20
|
> 送信側 : X → H → x
|
21
21
|
↓ Xとxを同時に送る
|
22
|
-
受信側 : X → H → x
|
22
|
+
受信側 : X → H → x → 合ってる
|
23
23
|
|
24
24
|
- 異常時
|
25
25
|
|
4
編集
answer
CHANGED
@@ -27,7 +27,7 @@
|
|
27
27
|
↓Xとxを同時に送る
|
28
28
|
イタズラ
|
29
29
|
↓X?、x?になる
|
30
|
-
受信側 : X? → H → xとなる時 → 多分合ってる(ハッシュ値の衝突
|
30
|
+
受信側 : X? → H → x?となる時 → 多分合ってる(「ハッシュ関数が漏れた」か、「[X!,x]で偶々ハッシュ値の衝突が起きた」か、など。イタズラが起きたかは不明)
|
31
31
|
受信側 : X? → H → y(≠x?)となる時 → X!であったか、x!であったか、またはその両方 → イタズラか障害が発生した
|
32
32
|
|
33
33
|
#
|
3
文言の追加
answer
CHANGED
@@ -27,7 +27,7 @@
|
|
27
27
|
↓Xとxを同時に送る
|
28
28
|
イタズラ
|
29
29
|
↓X?、x?になる
|
30
|
-
受信側 : X? → H → xとなる時 → 多分合ってる
|
30
|
+
受信側 : X? → H → xとなる時 → 多分合ってる(ハッシュ値の衝突のせいで間違いかわからない)
|
31
31
|
受信側 : X? → H → y(≠x?)となる時 → X!であったか、x!であったか、またはその両方 → イタズラか障害が発生した
|
32
32
|
|
33
33
|
#
|
2
ちょっとした文言の編集
answer
CHANGED
@@ -28,10 +28,10 @@
|
|
28
28
|
イタズラ
|
29
29
|
↓X?、x?になる
|
30
30
|
受信側 : X? → H → xとなる時 → 多分合ってる
|
31
|
-
受信側 : X? → H → y(≠x?)となる時 → X!であったか、x!であったか、その両方 → イタズラか障害が発生した
|
31
|
+
受信側 : X? → H → y(≠x?)となる時 → X!であったか、x!であったか、またはその両方 → イタズラか障害が発生した
|
32
32
|
|
33
33
|
#
|
34
34
|
|
35
35
|
私も聞きかじっただけなので詳しいことはわからないですが…(^ ^;
|
36
36
|
|
37
|
-
ただ事前にハッシュ関数(またはそれを生成するためのキー)も共有鍵暗号方式等で共有する必要があるみたいですね。(これが割れているなら完全な書き換えやなりすましが可能ですから
|
37
|
+
ただ事前にハッシュ関数(またはそれを生成するためのキー)も共有鍵暗号方式等で共有する必要があるみたいですね。(これが割れているなら完全な書き換えやなりすましが可能ですから…)
|
1
ちょっとした編集
answer
CHANGED
@@ -26,12 +26,12 @@
|
|
26
26
|
> 送信側 : X → H → x
|
27
27
|
↓Xとxを同時に送る
|
28
28
|
イタズラ
|
29
|
-
↓X
|
29
|
+
↓X?、x?になる
|
30
|
-
受信側 : X
|
30
|
+
受信側 : X? → H → xとなる時 → 多分合ってる
|
31
|
-
X? → H → y(≠x?)となる → X!で
|
31
|
+
受信側 : X? → H → y(≠x?)となる時 → X!であったか、x!であったか、その両方 → イタズラか障害が発生した
|
32
32
|
|
33
33
|
#
|
34
34
|
|
35
35
|
私も聞きかじっただけなので詳しいことはわからないですが…(^ ^;
|
36
36
|
|
37
|
-
ただ事前にハッシュ関数(またはそれを生成するためのキー)も共有鍵暗号方式等で共有する必要があるみたいですね。(これが割れているなら完全な書き換えやなりすましが可能)
|
37
|
+
ただ事前にハッシュ関数(またはそれを生成するためのキー)も共有鍵暗号方式等で共有する必要があるみたいですね。(これが割れているなら完全な書き換えやなりすましが可能ですからね…)
|