デジタル署名は難しい?

「秘密鍵で暗号化するわけではないですよ」と言われて、「じゃあどう考えればいいの…?」と悩む人もいそうなデジタル署名についての考え方のまとめ
5
angel (as ㌵㌤の猫) @angel_p_57

ところで、ことあるごとに「署名のことを『秘密鍵で暗号化』と説明するのは間違いですよ」という話をしているんだけど、それでも「その説明が分かり易い ( から捨てられない )」という人は一定数いるように思える。

2021-08-09 22:36:45
angel (as ㌵㌤の猫) @angel_p_57

それとは別に「おかげで分かり易く理解できていたのにてめえのせいで難しくなった!」とクレーム入れられたこともある。

2021-08-09 22:37:01
angel (as ㌵㌤の猫) @angel_p_57

ま、それは単なる八つ当たりに過ぎないし、考えが捨てられない人は固定観念に囚われたままに過ぎないとも言えるんだけど。 でも、やはりデジタル署名が ( 人によっては ) 難しい技術なのは確かかも知れない。

2021-08-09 22:37:27
angel (as ㌵㌤の猫) @angel_p_57

言うまでもないことかも知れないけど、これは公開鍵暗号(暗号化機能)やデジタル署名の詳細を比べて、どっちが難しいか、という話ではない。だって、どっちもどっちだから。なんなら共通鍵暗号だってそれなりに難しい。

2021-08-09 22:37:51
angel (as ㌵㌤の猫) @angel_p_57

そうではなくて、ごく基本部分の把握と「納得感」を得る部分。ここのところの話。

2021-08-09 22:38:08
angel (as ㌵㌤の猫) @angel_p_57

「納得感」というのは難しくて、早くは既に小学校レベルの算数で「何言ってんんか分かんない!」と投げ出す子が後を絶たない程で、先生の教え方と本人の考えの切り替え方が大きく効いてくる。

2021-08-09 22:38:31
angel (as ㌵㌤の猫) @angel_p_57

つまり、先生(≒参考書)が悪いと非常に不利になるし、挽回が効きにくい。デジタル署名の考え方も結構近いような気がする。( 割と他にもこういうの多い気もするけど )

2021-08-09 22:39:11
angel (as ㌵㌤の猫) @angel_p_57

さて、教科書的な ( ≒一般のデマ的な ) デジタル署名を習うに当たっては、1に共通鍵暗号がありまして、2にそれを改善した公開鍵暗号がありまして、3にハッシュも出てくるかな? で、最後で、公開鍵暗号を応用して、ハッシュとも組み合わせてデジタル署名の完成、となる。

2021-08-09 22:39:49
angel (as ㌵㌤の猫) @angel_p_57

ご存知の通り、これデマなので、真面目にやりたい人は捨てないとマズいんだけど。 ※ハッシュは有っても良い。けど、別に考え無くても良い。

2021-08-09 22:40:17

ちなみにハッシュも交えて考えるのであれば、別のまとめデジタル署名でハッシュを使う理由が参考になるだろうか。

angel (as ㌵㌤の猫) @angel_p_57

でも、デマではあるんだけど「納得感」という意味では凄くイイ ( アカン )。なぜって、こう、1つ1つ積み上げて理解できていくような気分にさせるところ。「え? なんで逆に使えるの?」とか、最高に嘘で誤魔化しなんだけど、そこを気にしなければ非常に納得できる。

2021-08-09 22:40:47
angel (as ㌵㌤の猫) @angel_p_57

で、実態はどうか。共通鍵暗号も、公開鍵暗号(暗号化機能)も関係なくて、なんならハッシュの話も別に必要なくて、単独で説明・理解できてしまう。「秘密鍵で署名して公開鍵で検証します」それだけで済むから。

2021-08-09 22:41:34
angel (as ㌵㌤の猫) @angel_p_57

受け入れの素地のある人はこれだけで十分だし、デマ教科書的なやり方に比べて1ステップだけだから、非常に簡単に済む話になる。

2021-08-09 22:42:17
angel (as ㌵㌤の猫) @angel_p_57

でも「1ステップだけ」という点に戸惑いを覚える人が結構いるように感じる。逆に、こう、積み上げていく感じが全くないままに受け入れないといけないから。

2021-08-09 22:42:46
angel (as ㌵㌤の猫) @angel_p_57

なので、説明を受けた後でも「署名・検証ってどうやるんだろう、そのために何を勉強すればいいんだろう」と自ら落とし穴を掘ってはまる。つまり、なんらかの「基礎」となるべきものを探して延々と彷徨うことになる。実際はそんな基礎などありはしないのに。

2021-08-09 22:43:27
angel (as ㌵㌤の猫) @angel_p_57

個人的な本心としては、そういう基礎があるなら是非提示したいとは思う。思うんだけれども、無理くり作って提示しちゃうと逆に嘘になっちゃう。

2021-08-09 22:44:20
angel (as ㌵㌤の猫) @angel_p_57

デジタル署名の特性は「誰でも(元のメッセージに対して)本物と確認出来て、特定の人のみ作成できる『署名』というデータの実現」である。逆に言うと、この特性が実現できるなら、なんだって署名と認めることができる。

2021-08-09 22:45:02
angel (as ㌵㌤の猫) @angel_p_57

なんらかの基礎を仮に設けちゃうと、将来的にそれに外れるような、でも同じ特性を持った技術が出た時に受け入れられなくなってしまうし、現状でも既に全てを統一できるような基礎を見出すのに無理がある。

2021-08-09 22:45:58
angel (as ㌵㌤の猫) @angel_p_57

まあ、暗号の専門家の方なら、デジタル署名にアプローチするための道具というのも幾つか思い浮かぶものがあるのかもしれないけど。ただ、一般の人は安全性を評価したり、ましてや新たな署名を開発したりするわけではないので、その辺の道具は基礎にはならないだろうと思う。

2021-08-09 22:47:00
angel (as ㌵㌤の猫) @angel_p_57

ということで、少なくとも私くらいの一般人レベルで言うなら、仕組みがどうなってるとか、そういうことに頭を悩ませる前に、次のことを把握するのが十分だし、それ以上はやり過ぎになるのである。

2021-08-09 22:47:26
angel (as ㌵㌤の猫) @angel_p_57

その把握すべきことととは、 1.「誰でも(元のメッセージに対して)本物と確認出来て、特定の人のみ作成できる『署名』というデータの実現」という特性を実現した技術(色々)をデジタル署名と呼ぶこと。 ※他の技術と混ぜて考えない。

2021-08-09 22:49:54
angel (as ㌵㌤の猫) @angel_p_57

2. その「署名データ」を作成する処理を「署名(作成)」、本物と確認する処理を「(署名)検証」と呼ぶこと。 ※その仕組みは? とか悩まない

2021-08-09 22:50:28

もちろん、暗号化とか復号も持ち出さないこと。

angel (as ㌵㌤の猫) @angel_p_57

3. 署名(作成)という「特定の人のみ」のための操作のために使うデータを「秘密鍵」、(署名)検証という「誰でも」できる操作のために使うデータを「公開鍵」と呼ぶこと。 ※他の技術の公開鍵・秘密鍵と混ぜて考えない。兼用できちゃう例もあったりするけど、深く気にしない

2021-08-09 22:51:29
angel (as ㌵㌤の猫) @angel_p_57

特に2番目だけど、「仕組みが分からないと納得いかない」と考えるなら、大いに傲慢だと思う。じゃあCPUが計算を実現してる方法把握してるんですか、とか。納得できないならPCやスマホ使えないんですか、とか。幾らでもツッコミどころが出る。実現しちゃってるんだからしゃあない、としか言えない。

2021-08-09 22:52:30