公開鍵暗号はもちろんRSAだけではない

ツイッターでのやり取りの補足です。セキュリティなんもわからん。

https://twitter.com/angel_p_57/status/1555844942375026689 の回答

むしろ「公開鍵暗号」でどんな技術を想像されているのかが気になるところですが…。

まず私が「公開鍵暗号」をなんだと思っているか書きますと、「秘密鍵共有鍵公開鍵(2022/08/08 訂正)を使って暗号化と復号化を行う、事前鍵共有が不要で対称暗号と対になる概念」ぐらいに思っています。具体的にはRSAやECDHあたりを想定しています。また、ハイブリッド暗号等と呼ばれる方式や署名方式も公開鍵暗号として考えています。この部分には異論の余地があると思っていまして、一般向けにの説明であれば署名を公開鍵暗号の一部に含めるべきではないのかもしれませんね。しかし技術的にはほとんど同一のものだと理解していますので一緒くたに扱っています。
念のため文献なども確認してみましたが、『公開鍵暗号とは、暗号化と復号化で異なる鍵を用いる暗号で、対称暗号と同じくメッセージの機密性を守るために使われます』(結城浩『暗号技術入門 第3版』p390) などと記載されており、私も概ねそのように理解しています。

https://twitter.com/angel_p_57/status/1555779776438484992 に関する意見

基本情報的な「公開鍵暗号」という意味なら、sshでは使いませんし、gpgでも必須ではないです。SSL/TLSでももう使ってません。無くても実は困ってないんですよね。

ええと`基本情報的な「公開鍵暗号」`というテクニカルタームが理解できないのです。
基本情報のテキストは手元にありませんでしたので、似たような内容であることを期待して土田米一『徹底攻略 応用情報技術者教科書』を参照したところ、p274に『暗号化鍵と復号鍵が異なる方式です』との記載がありました。公開鍵暗号という言葉を使うときに前提になるのは、『秘密鍵と共有鍵が異なっていること』程度でそれ以上の制約は与えないのが割りと一般的な言葉遣いなのでは無いでしょうか。私は残念ながら大学でセキュリティの研究室に出入りしていた程度ですので正確な言葉遣いはわかりませんが。

さて、sshの認証はたしかにパスワード認証で動作させることもできますが、通信に公開鍵暗号を使っていると思っています。暗号を用いた通信をする上で公開鍵暗号を用いて共有鍵を共有し、その後共有鍵を用いて適当なブロック暗号モードで通信するものだと思っています。実装読んでませんが。
SSL/TLSも同様です。

ということで、公開鍵暗号は必須であって無いと困るものですし、httpsなどで使われる以上高等学校で教える意義は認められるものだと思っています。

公開鍵暗号 ( 要するにRSA暗号 ) は使ってないです。

要するにRSA暗号と言っておられますが、昨今の状況を踏まえますとECDHにも言及して然るべきでしょう。

https://twitter.com/ut_maito/status/1555784301069074432
にて`基本情報的な「公開鍵暗号」`という言葉の意味を問いましたが回答いただけ無いようで残念です。
特にSSL/TLSでも`もう使ってません`という情報は初めて伺いましたので大変興味深いです。共通鍵暗号方式を用いずに公開鍵暗号(2022/08/07 3:54 修正)を用いずにどうやって鍵配送問題を解決したのか、またその実装はどのように行われているのかお教えいただけると大変うれしく思います。

https://twitter.com/angel_p_57/status/1555830538690531328 に対する意見

世間一般的に言われる用語だと「公開鍵暗号」と「デジタル署名」は別物なので

この2つの概念は確かに分離して扱うこともできて(もちろん、実装は全く分離できませんが)世間一般の用語に署名が含まれないとの前提で、そのように発言をなさっているということは把握できました。しかし、鍵交換は署名を用いているわけではなく、対称暗号のセッション鍵を公開鍵暗号で暗号化し共有しています。sshhttpsも署名も暗号を用いた通信もどちらも関連するアプリケーションではありますが、デジタル署名部分を公開鍵暗号と呼ばないという立場を取ったとしても、ハイブリッド暗号として通信を行う以上、公開鍵暗号と呼ぶべきだと考えます。

実用されてる技術は今だとRSA暗号だけなんですよね。

主語が大きく論点が詳細にはわからないものの、実用で大変良く使われている暗号方式としてECDHがありますし、RSA暗号だけだと言い切るのは言い過ぎだと思います。

参考文献

- 結城浩『暗号技術入門 第3版』
- 斎藤考道『マスタリング TCP/IP 情報セキュリティ編』
- 土田米一『徹底攻略 応用情報技術者教科書』

追記(2022/08/08 14)

  • twitterのオタクども、**太郎だとか***マンだとか治安の悪い言い回しをするのはやめておけ、コミュニケーションが不自由程度でそこまで言うこったない
    • イライラするのはわかりますが
    • ブロックするのは自由ですが
  • tokusin氏がいろいろ問い合わせてわかったことによるとどうやら、基本情報的な「公開鍵暗号」=RSAで良いようです
  • どうやらangel_p_57氏はDH鍵交換を公開鍵暗号と呼ばない、という立場を取っている、という印象を受けます、氏の日本語は私の理解を超えるので私にはわかりません。
    • sshではRSAで共有鍵を送る、をやっていないというのは多分確かにそうなんでしょうが(ちゃんと知りませんでした)
    • DH鍵交換は公開鍵暗号と呼べると思うのですが、まあ確かに微妙なラインですね。DH鍵交換を公開鍵暗号と呼ばないのであればSSHにおいて公開鍵暗号を使わないことは`可能である`と言えると思います
      • どちらにしろssh公開鍵暗号を使わない、という宣言は誤解を招くだけで、適切な言い回しとは私は思いませんが
        • 認証部分でも使わない必要があるので、そんな環境で運用したいか、という話もあります
      • 正直、言葉の定義に一般的か怪しいものがしれっと混じっていて手元の文献ともwikipediaとも食い違うので、気をつけて読まないと意味が取れません。煽るために恣意的に意味を狭めていると思われても仕方ないと思います。せっかくsshの中を読もうとしてパケットまで開いているのにもったいない
      • SSL/TLSはServerKeyExchange時にRSAも選べる気がします
  • なんらかの追加の回答もいただけかけたのですが、私に解釈不可能なフォーマットでお送りなさり始めたので、氏の時間を浪費させるのも悪いのでお断りました。氏本人意外に読み方がわかる人が居たらおしえてください