ここから本文です

情報セキュリティー 公開鍵 共通鍵 暗号方式

hgh********さん

2010/7/2008:54:36

情報セキュリティー 公開鍵 共通鍵 暗号方式

ある研修に対して報告のプレゼンをしていたのですが
暗号化方式の場所での質問に答えれなかったのでここで質問させてもらいます。

教科書等には、共通鍵方式は処理が速く、公開鍵方式は処理が遅いとあります。
では、共通鍵方式は何故、暗号・複合処理が早いのか?
逆に公開鍵暗号化方式は何故、暗号・複合処理が遅いのか?

共通鍵・公開鍵・秘密鍵とは具体的になんなのか?
暗号化・複合化するためのアルゴリズム自体なのか、それとも暗号化・複合化するための
アルゴリズムの一部の情報なのでしょうか。

出来たら具体的な説明をお願いします。

閲覧数:
1,084
回答数:
1
お礼:
50枚

違反報告

ベストアンサーに選ばれた回答

b_f********さん

2010/7/2014:47:00

共通鍵暗号というのは、暗号化と複合化に同じ鍵(キー)を使う暗号化ロジックの総称です。
具体的なアルゴリズムはいくつもありますが、基本的にキーから生成される乱数テーブルをつかって、元のデータを加工し、複合化時には同じ乱数テーブルを使って暗号化データから乱数を取り除くというような方法を用います。
たいていのアルゴリズムでは、NOR(排他的論理和)をかける感じですね。

この方法なら、乱数テーブルができてしまえば、あとはテーブルの数字を論理演算していくだけなので高速なのです。


それに対して、公開鍵暗号というのは、暗号化キーを公開し、それとは異なる複合化キーを秘密にしておくというものです。
暗号化キーは公開されているので、だれでも暗号電文を作ることはできますが、複合化キーは秘匿されているために複合化できるのは正規の権利者だけということになります。

この場合、数学的手法で公開鍵で暗号化されたものが、それとは別の秘密鍵でしか複合できないようにする必要があります。
具体的な方法はかなり複雑で難解なのでパスしておきますが、基本的には「大きな数の素因数分解には時間がかかる」という原理を使っています。

このように、複雑な計算によって成り立っていますので、データを暗号化するときか複合化するときのどちらかは(もしくは両方)、非常に膨大な量の計算をせねばならず、そのためにこの方法は処理に時間がかかります。
それくらい複雑な計算でないと、暗号化キーと複合化キーを分けるということができないわけですね。

実際には、公開鍵暗号で共通鍵暗号のキーを取り交わし、実際のデータの暗号化は共通鍵暗号で行うというのが一般的です。

ちなみに、上で書いた内容から想像がつくと思いますが、公開鍵暗号は原理的に脆弱です。
膨大な処理時間(マシンパワー×時間)さえかければ、100%解読できます。
ですので、その時々のコンピュータで事実上解読などしていられないくらいの長いキーを要するわけですね。

共通鍵暗号は、原理的には元の平文がわからない限り100%解読することはどんなに時間をかけても不可能です。
総当たりで鍵を探したところで、「正常にでコードできたのかそうでないのか」が判断できないと何ともならないというわけですね。

質問した人からのコメント

2010/7/25 21:12:30

ありがとうございます!

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる