読者です 読者をやめる 読者になる 読者になる

フルスタックエンジニアを目指して

いろいろやってみるブログ

秘密鍵方式と公開鍵方式

インフラ ネットワーク

いつまでたっても覚えられないのでメモしておく。

データの暗号化が必要な理由

ネットワークを利用すると遠隔地とのやりとりが便利になる反面、盗聴改ざんなりすましの危険がつきまとってしまいます。

  • 盗聴:受信者にデータが届くが、その間で第三者に内容を盗み見られてしまう
  • 改ざん:受信者に届く前に第三者に内容を書き換えられてしまう
  • なりすまし:第三者が送信者になりすましデータを受信者におくることで、受信者は本人だと思って内容を理解してしまう

そのため、データを暗号化することで第三者からの盗聴、改ざん、なりすましを防ぐことが大切です。送信者はデータを平文で送付するのではなく、暗号文にして送付すべきです。

  • 平文:暗号化をしていないオリジナル文のこと
  • 暗号文:暗号化を施した文のこと

受信者は暗号化されたデータをそのままよむことはできないので、データを復号してデータ内容を読み取ります。

  • 暗号化:平文を暗号文にすること
  • 複合:暗号文を平文にすること

 

代表的な暗号化方式

データを暗号化、複合するために使われるのがです。代表的な鍵に秘密鍵(共通鍵)方式公開鍵方式があります。

  • 秘密鍵(共通鍵)方式:暗号化と複合を共通の秘密鍵で行う方式
  • 公開鍵方式:暗号化の複合を別々の鍵で行う方式

秘密鍵方式

秘密鍵方式では、送信者と受信者が同じ鍵を使うため、秘密鍵を第三者に知られてしまわないようにする工夫が必要です。公開鍵方式に比べ暗号化、複合が単純で、時間がかからないメリットがあります。秘密鍵は共通のものを用いる必要があるので、データをやり取りする相手が増えるほど鍵の数が増えてしまい、鍵の管理、配布の問題が生じます。一般に、秘密鍵を交換する際には、公開鍵方式で暗号化して送付する手法が用いられています。

f:id:naoto408:20151012131124p:plain

秘密鍵方式の暗号化にはDES(デス:Data Encryption Standard)と呼ばれる暗号化アルゴリズムが使われてきました。これは1977年にIBMによって開発された暗号化アルゴリズムです。64bit単位でデータを可能な限りかき混ぜます。しかし、総当り等で見破られてしまうことから、近年では3DES(トリプルデス)やAES(Adbanced Encryption Standard)という暗号化方式を使うことが一般的となっています。

  • 3DES:DES処理を3回行う暗号化アルゴリズム。2030年までに使用中止するようIPAが勧告している
  • AES:128bit以上の長い鍵を使うことで暗号強度を高めつつ、高速処理が可能となっている

参考:マスターIT/暗号技術:第2回 DES暗号化 - @IT

 

公開鍵方式

公開鍵方式では、送信者と受信者が異なる鍵を使います。受信者は、公開鍵と秘密鍵をペアで作成し、公開鍵を送信者に配布します。公開鍵で暗号化したものはペアとなる秘密鍵でしか復号化できません。そのため、第三者が、データを盗み見たとしても複合することができないため、安全にデータのやり取りができます。秘密鍵方式と比べ仕組みが複雑なので暗号化、複合に時間がかかってしまいますが、鍵の管理、配布の問題から解消されるメリットがあります。そのため、不特定多数の相手とやり取りする場合には、公開鍵方式が向いていると言えます。

f:id:naoto408:20151012133608p:plain

一般に、公開鍵方式ではRSAと呼ばれる暗号化アルゴリズムが用いられます。ちなみにRSAという名前は、発明者であるロナルド・リベスト (Ron Rivest) 、アディ・シャミア (Adi Shamir) 、レオナルド・エーデルマン (Len Adleman) の頭文字の組み合わせです。この他にも楕円曲線暗号や、PGP(Pretty Good Privacy)が利用されている。

 参考:セキュリティ用語事典:公開鍵暗号方式 - @IT

 

理解が足りていなかったのは、公開鍵暗号化方式はあくまで一方向(共通鍵で暗号化→秘密鍵で復号化)のものであること。要注意です。

参考:公開鍵暗号について理解が足りていなかったのでメモ - かせいさんとこ