質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
暗号化

ネットワークを通じてデジタルデータをやり取りする際に、第三者に解読されることのないよう、アルゴリズムを用いてデータを変換すること。

Q&A

3回答

1747閲覧

公開鍵暗号(RSA暗号)で「暗号文」や「署名」を鍵として再利用することに問題はあるか

退会済みユーザー

退会済みユーザー

総合スコア0

暗号化

ネットワークを通じてデジタルデータをやり取りする際に、第三者に解読されることのないよう、アルゴリズムを用いてデータを変換すること。

0グッド

2クリップ

投稿2017/08/12 07:17

###質問主旨
暗号に関して知識がないのでお聞きしたく思い質問します。
公開鍵暗号方式(具体性が必要であれば、RSAと仮定してください)において、公開鍵または秘密鍵を用いてある平文から生成された「暗号文」もしくは「署名」を、適当な共通鍵暗号の鍵として再利用することに安全上の問題はありますか。

###質問背景

あるハードウェアに電子的に書き込まれた公開鍵暗号の鍵ペアがあるとします。このハードウェアは任意のデータ入力に対してその鍵ペアのどちらかを用いて暗号文または署名を生成し出力します。このとき、書き込まれた鍵がこのハードウェア以外の場所に存在しないならば、このハードウェアの出力を共通鍵暗号の鍵として利用できるか、という質問です。それならば最初から共通鍵を保存したハードウェアでいいということも考えられますが、この鍵ペアは他の用途で用いられるため必要と考えてください。

###自分なりの検討

  • ある鍵ペアから生成される暗号文・署名は入力に対し一意に定まる→長さが十分であれば鍵ペアと同等の性能の鍵としてつかえる?
  • 署名はハッシュ関数を通すことから上の議論においては性能が比較的劣る?
  • ハードウェアに入力するデータがわかってしまえば、ハードウェアがなくても共通鍵方式の暗号を解読できてしまう?

以上、暗号の常識としてはありえない話かもしれませんが、よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2017/08/12 07:24

公開鍵: 入力→RSA→署名文(これを共通カギにする) 秘密鍵: 入力→RSA→暗号文(これを共通カギにする) ということが安全かどうか?ということでしょうか?
退会済みユーザー

退会済みユーザー

2017/08/12 07:39

はい、そのとおりです。どちらか一方についてでも構いません。わかりづらかったら申し訳ありません。
guest

回答3

0

暗号化する平文が同じであれば、平文をハッシュ関数に通して得られたハッシュ値を鍵にするのでもいい気がします。暗号化には確率的に変わるパラメータがあるので、同じメッセージを暗号化しても同じ結果が得られるとは限りません。もちろんこの変化は正しい鍵を持っている人には復号可能なものですが。

投稿2020/03/03 12:24

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

公開鍵暗号/署名アルゴリズムによって出力された暗号文または署名を単独で見れば理想的には十分なランダム性があるはずなので、そのデータを共通鍵暗号の鍵として使っても安全なはずです。

ただしシステム全体で見て安全と言えるかは別問題です。

ある鍵ペアから生成される暗号文・署名は入力に対し一意に定まる

と書かれていますが、この前提から間違っています。実際の実装では、同一の平文を同一の鍵で暗号化しても異なる暗号文が出力されます。これは意味があってこうなっています。もしこうなっていないと、例えば暗号文が一致する=同じ平文という情報が漏れてしまいます。

署名の場合は入力が同じであれば署名も同一になります。が、これをそのまま単純に鍵にして暗号化すると「同一の平文=同一の暗号文」になってしまい、まずいことになります。

これは問題のほんの一例で、暗号というのは「鍵さえ秘密になっていればOK」というものではなく、安易に使うと全然意味がないと言うことになります。

個人レベルでやるにしてもきちんと勉強された方がいいでしょう。入門書として「暗号技術入門 第3版」を紹介します。業務なのであれば、知識のあるコンサルタントに相談されることをお勧めします。

投稿2017/08/14 07:32

suzukis

総合スコア1449

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

問題に対する回答、というよりも一緒に考えたい人としての意見です。

この問題はつまるところ、RSAなりElgamalなどを平文から共通鍵を作るためのSaltにしているような感じですよね。


ある鍵ペアから生成される暗号文・署名は入力に対し一意に定まる
→長さが十分であれば鍵ペアと同等の性能の鍵としてつかえる?

鍵と暗号文(著名)は、入力が同じであればアウトプットも同じですので、言い換えるなら「暗号化前後で乱雑さは同じだけれども、暗号文(著名)の方がかさばる」状態が起きると思います。それを共通鍵にする、ということですので、ブルートフォースで解決するには相当に苦労しそうです。でたらめな文字列が共通鍵になると思いますので辞書攻撃は無意味ですね…

署名はハッシュ関数を通すことから上の議論においては性能が比較的劣る?

この辺はよくわかりませんでした、ごめんなさい。

ハードウェアに入力するデータがわかってしまえば、ハードウェアがなくても共通鍵方式の暗号を解読できてしまう?

この場合、入力値から共通鍵の暗号を解読するには、まず暗号鍵を解読しなければならないため、ハードウェアをタンパすることなしに解読するのは難しそうです。

投稿2017/08/12 13:00

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2017/08/12 13:08

メリット:共通鍵の鍵を公開鍵暗号経由で任意に変えられる デメリット:公開鍵暗号で処理が遅くなる でしょうか
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問