2018年2月20日

「電子署名=『秘密鍵で暗号化』」という良くある誤解の話

暗号技術の中で広く使われている「電子署名」そこに昔から蔓延している誤解について。「クラウドを支えるこれからの暗号技術」の著者の方との対話、自分で調べていたことの考察をまとめたもの。
13

非常に昔から、暗号技術の1つである「電子署名」これのことを「秘密鍵で暗号化することだ」とする説明が氾濫している。
もう、恐らく15年位前からその誤りが指摘されているにも関わらず、それでも見た目の分かり易さからか拡大再生産されていく様を見てきたわけだが…。

angel (as ㌵㌤の猫) @angel_p_57

どうしてここまで詳しく書きながらも、電子署名を「秘密鍵で暗号化」という切り口で説明しようとするのか… twitter.com/herumi/status/…

2018-02-17 15:54:09

たまたまtweetで見かけてPDF版に目を通した「クラウドを支えるこれからの暗号技術」、入門書として高名な結城さんの「暗号技術入門」あの先の話として、( 多少の数学力は要るけど ) 詳しくてとても読み応えがある! でも、やっぱりそうなのか…と。
すると、著者の光成さんからコメントを頂いた。

herumi @herumi

@angel_p_57 コメントありがとうございます。一応 「実際のところ,RSA 暗号以外の公開鍵暗号はそのままデジタル署名として使えるわけではありません. 一般に公開鍵暗号の公開鍵と秘密鍵の形は違うので,両者を入れ換えることはできないからです.」 と書いたのですが不十分でしたでしょうか。

2018-02-17 16:25:17
angel (as ㌵㌤の猫) @angel_p_57

@herumi いえ、そちらは結構ではないかと…。…引っかかりはあるのですが、まあ ( そもそもなければ多分ボロクソに言ってます )。ただ、だからこそではありますね。と言いますか、私のような反応は実は初体験なのでしょうか? 15年位前からある話で、私がオリジナルというわけでもないのですが。

2018-02-17 17:13:58

補足:こちらの遣り取りの通り、「RSA以外は違う」と説明が入っているので、この本の説明が誤りだと言っている訳ではない。むしろそのことに触れていない説明が多い中、貴重だとすら言える。

angel (as ㌵㌤の猫) @angel_p_57

@herumi 随分前の記事ですが、一番最近見た指摘はこれです。 takagi-hiromitsu.jp/diary/20080229… RSA以外が違うということに触れているかどうか、それが本質でないことはご理解頂けるのではないかと思います。(そういう意味で、私の見解としては「不十分」です)

2018-02-17 17:40:07
herumi @herumi

@angel_p_57 リンク先と同様の指摘は私もしたことがあります。だから「秘密鍵で暗号化」しても「暗号の意味をなしていない」と書いて専門の人に突っ込まれないように書いたつもりでした。 そういう切り口で説明したのは最初のデジタル署名(1978)がRSA暗号の「暗号化=復号」という性質を使ったものだったからです。

2018-02-18 05:29:14
herumi @herumi

@angel_p_57 もっと強く『「秘密鍵で暗号化」という説明は間違ってる』と書いた方がよかったということですね。 また機会があれば別の表現を考えてみます。

2018-02-18 05:29:25
angel (as ㌵㌤の猫) @angel_p_57

@herumi その、歴史的な経緯としては(といっても詳しいわけではないですが)、RSA暗号の逆から署名が生まれた、というのはあるのだと思います。ただ、いざ「署名って何?」と言われた時、「公開鍵暗号の逆」というのは本質ではないだろう、と。手段と目的というか、主従が逆になっているのが問題かと。

2018-02-18 12:43:36
angel (as ㌵㌤の猫) @angel_p_57

@herumi 「暗号化」という単語からイメージされる秘匿の機能は、別に署名として要るわけではないですし、「復号」と言っても、そもそも何かを復元したいわけでもなく…( というか、DSAとか、復元してませんし )。と、概念がぼやけるな、と。良い表現を著して頂けるのであれば、とても有難いです。

2018-02-18 12:48:21
herumi @herumi

@angel_p_57 歴史にとらわれすぎてるのかもしれませんがいきなりデジタル署名の定義から入ると唐突すぎるので「RSA暗号の逆」と書きたくなりますね…。ちなみにRSA暗号と署名は同時です。その論文 people.csail.mit.edu/rivest/Rsapape… ではD(E(M))=E(D(M))=Mとした上でMの署名は「平文を秘密鍵で復号する」と書いてます。

2018-02-18 13:29:23
angel (as ㌵㌤の猫) @angel_p_57

@herumi はい。単純にはいかない問題だとは。「だからこそ」詳しい方への期待がありますし、「詳しい方であっても」RSAの呪縛は大きいのだな、と難しさを改めて噛みしめている所です。まあ全ては「『逆』ならDSAの逆で暗号化できるよね!」と試そうとして途方に暮れた経験からの恨み節ではあります。

2018-02-18 13:46:46

その後ふと考えてみた。

angel (as ㌵㌤の猫) @angel_p_57

暗号の話題における「電子署名を『秘密鍵で暗号化』と説明してしまう問題」、根は抽象化とかそういうところにあるのかな。

2018-02-18 15:26:36
angel (as ㌵㌤の猫) @angel_p_57

似ているなと思ったのは、数学におけるベクトルの話。高校まではひたすら図形的性質を扱うためのモノとして叩き込まれるけど、大学からは一転する。図形的性質を引き継ぐベクトル解析はともかく、それ以外だと「え? 関数がベクトル? は!?」とか、皆を混乱に陥れる ( らしい )。

2018-02-18 15:29:48
angel (as ㌵㌤の猫) @angel_p_57

だからと言って高校の時から、「ベクトルとは線形性を持ったモノの総称です」とか教えても、それはそれで「は?!」と言われるだけだろうから、具体例として図形の問題を叩き込むのはしようがないんだろうけど、抽象化を忘れてのめり込むと…。

2018-02-18 15:32:54
angel (as ㌵㌤の猫) @angel_p_57

RSAについては、(公開鍵)暗号と署名の機能は同時に開発されたらしい。その時は表裏一体だったんだろうけど、実際そこから抽象化された署名という概念は、暗号とは実は切り離されたもので。というか切り離さないと、他の署名方式を理解できない。

2018-02-18 15:41:14
angel (as ㌵㌤の猫) @angel_p_57

(RSA以前に電子署名の概念があったか知らないので推測に過ぎないけど) 電子署名という概念を生み出したという意味でもRSAは偉大だけど、抽象化ができずに囚われ過ぎると、却って理解の妨げになるというジレンマかな。

2018-02-18 15:43:26
angel (as ㌵㌤の猫) @angel_p_57

多分頭の良い人だと、そういうジレンマがあっても「それはそれ、これはこれ」で比較的容易に適応しちゃうから、問題にならないんじゃないかな。私の場合、とてつもない混乱に見舞われた挙句、やっと気付くことができて解消した。「あ、そもそもそれ嘘ぴょんじゃん」と。

2018-02-18 15:47:47

そう言えばSSHの説明もなあ…と思って調べていて見つけたのが…

angel (as ㌵㌤の猫) @angel_p_57

「電子署名のことを『秘密鍵で暗号化』と言っちゃう」問題、大学の講義資料にも、か…。 coins.tsukuba.ac.jp/~yas/coins/lit… これはちょっと…。リテラシの講義でデマ拡散してどうするよ。

2018-02-20 20:12:18
angel (as ㌵㌤の猫) @angel_p_57

あ。ただ言っておくと、大学のサイトにある資料では、マトモな説明されていたのが多かった。こっちはそういう意味では例外的…だと思う…。多分。

2018-02-20 20:13:32
angel (as ㌵㌤の猫) @angel_p_57

ただこれ、書籍「入門OpenSSH」の記述をそのまま持ってきただけ、ともいえる。 unixuser.org/%7Eeuske/doc/o… この本もこの本で、誤解をばらまくという意味では、「秘密鍵で暗号化」と同じくらい罪深いのかも。

2018-02-20 20:17:08
残りを読む(12)

コメント

アオカビさん @Penicillium_ch 2018年2月21日
電子署名の話をするにはまずハッシュ関数の話をしないとダメで、ハッシュの説明が面倒だな~と思ったら端折ってしまうのかと。あとたぶん「素人相手に説明するのに、厳密さは重要ではない」って思想が根本にあると思う。どうせ自分でやろうと思ったらちゃんと勉強し直すし。
0
ざっぷ @zap3 2018年2月21日
まず電子署名とデジタル署名も別概念として扱ったりするのだが正しく語れる自信はないのだった…
0
tog20xx @tog20xx 2018年2月22日
よく分からん。署名の強度の問題であって、実用性はともかく電子署名=秘密鍵じゃないの?あと、共通鍵のことを秘密鍵とも呼ぶことがあるのは正直知らんかった
0
angel (as ㌵㌤の猫) @angel_p_57 2018年2月22日
Penicillium_ch ええと、ハッシュ関数は大変重要で無いと困りますし、MACである鍵付きハッシュとの対比という意味もあるのですが、実はハッシュって電子署名の話の中で優先順位的にトップでは無いと思います。あと、「厳密さ」という話かどうかは、人によって見方が変わると思いますが、例えば料理で塩と砂糖を取り違えたとして、それを指摘するのが「厳密さ」の話なのかどうか、と。私も重箱の隅をつつくようなマネをする気はないとだけ。
0