見出し画像

暗号化技術

重要なデータのやり取りをするときや、データを書き込むときに、暗号化を用いて機密性を高める必要があります。

共通鍵暗号方式

共通鍵暗号方式 (Symmetric cryptography) は、暗号化と復号に同じ鍵(共通鍵 :Symmetric Key)を用いる暗号方式です。送信者と受信者が同じ共通鍵を使います。

では、どのように暗号化するかです。

共通鍵暗号方式を大別すると、ブロック暗号方式とストリーム暗号方式に分類されます。

1.ブロック暗号方式

ブロック暗号方式は、平文を一定の長さに分割してそれぞれを暗号化する方式です。平文を分割したものをブロック、分割する長さであるブロック長には64ビット、128ビット、192ビット、256ビットなどがあります。ブロック暗号方式の代表的なものに DES、RC2、IDEA などがあります。

2.ストリーム暗号方式

ストリーム暗号方式は、平文を分割せずに逐次データを1ビット単位(1~数ビット毎)で暗号化する方式です。代表的なものに、RC4 が存在します。

共通鍵暗号方式を利用する暗号

共通鍵暗号方式を含む暗号は、「アルゴリズム」と「鍵」から構成されます。「アルゴリズム」とは、平文をどのように暗号化するかを定めたものです。「鍵」とは、暗号化や復号を行う際に用いる秘密のデータ(ビット列)です。

DES

共通鍵暗号方式の代表的なアルゴリズムとして、DES (Data Encryption Standard) があります。鍵の長さは使用するアルゴリズムによって異なるのですが、DES の場合は 56bitの長さの鍵が使用されます。

AES

AES(Advanced Encryption Standard)は強度が低くなったDESの変わりに2001年に制定された規格です。無線LANの暗号化規格WPA2で使用されています。鍵の長さは可変(128, 192, 256bit)です。

RC

RC(Rivest's Cipher)はDESより高速な処理が可能な暗号化の規格の総称です。ブロック暗号方式のRC2やRC5、ストリーム暗号方式のRC4があります。


公開鍵暗号方式

公開鍵暗号方式(Public Key Cryptography)は、暗号化する鍵(公開鍵)と復号する鍵(秘密鍵またはプライベート鍵)が異なる暗号方式です。このように公開鍵暗号方式では対になっている 2つの暗号鍵を用います。対となる 2つの鍵の組み合わせを「鍵ペア」と呼び
「片方の鍵(公開鍵)で暗号化した情報は、もう片方の鍵(秘密鍵)でないと復号できない」
という特殊な性質を持っています。この性質を用いることで、ネットワーク上の離れた相手に安全に情報を送信できます。
複数の送信相手に対して、同じ鍵で暗号化を行い、データを送信することができます。


公開鍵暗号方式を利用する暗号

RSA

RSA(Rivest-Shamir-Adleman)は、Rivest, Shamir, Adleman の 3名が 1978年に発明したアルゴリズムです。同じ鍵ペアを暗号化と署名の両方に利用できることが特徴です。大きな整数の素因数分解が困難であるという仮定に基づいています。ビット長は512ビット、1024ビット、2048ビットなどがあります。

楕円曲線暗号方式

楕円曲線暗号(ECC: Elliptic Curve cryptosystem)は、Neal Koblitz と Miller が 1985年に別々に考案した方式です。特定のアルゴリズムを指すのではなく、離散対数問題に楕円曲線という特殊な計算を行って、強度を保ちつつRSAより鍵長を小さくします。主な適用例として、DSA に適用したECDSA が有名です。

DSA

DSA(Digital Signature Algorithm)は、NIST が 1991年に提唱した、デジタル署名のためのアルゴリズムです。離散対数問題を解くことが難しいという仮定に基づいています。デジタル署名専用のアルゴリズムであり、暗号化の機能はありません。

デジタル署名

公開鍵暗号方式を使用しても、暗号化を行った人物が本人である保証はありません。そこで、なりすましや改ざんが行われていないかどうかを検知する方法としてデジタル署名やMAC(メッセージ認証コード)などを利用することができます。
MACでは送信者と受信者の間で決めておいた共通鍵を共有します。

ハッシュ関数

平文はハッシュ関数(hash function)をつかってハッシュ化されて、固定長(20バイト程度)のダイジェストが出力されます。元の平文が 1bit でも異なると、大きく異なったダイジェストを生成されるので改ざん防止に役立ちます。
                                                                       
MD5:広く用いられているハッシュ関数で、任意長メッセージから 128bit のハッシュ値を生成します。
SHA1:MD4 アルゴリズムを改良して作成されました。160bit のハッシュ値を生成します。
SHA2:SHA1の改良版

PKI(公開鍵基盤)

公開鍵を使って暗号化を行う場合、配布されている公開鍵の正当性を証明するのが認証局(CA)です。公開鍵暗号方式を利用するための周辺技術や概念などをPKI(Public Key Infrastructure:公開鍵基盤)といいます。


SSL/TLS

SSL(Secure Socket Layer)とは、インターネット上でデータを暗号化して送受信する仕組みのひとつです。

ユーザ認証

ユーザー認証とは、利用者自身が本人であるかどうかを認証することです。
パスワード認証
パスワードは、最もよく使用されるユーザ認証の手段です。
認証プロトコル
外部からダイヤルアップ接続方式でネットワークに接続する際に使用するプロトコルにPPPがあります。PPPを使った接続ではPAPやCHAPを使ってユーザ認証を行います。
PAP(Password Authentication Protocol)は、ユーザIDとパスワードの組合せだけで認証を行うプロトコルです。
CHAPは(Challenge-Handshake Authentication Protocol)は、認証サーバから送られたチャレンジコードをクライアント側に送信します。クライアントがチャレンジコードにパスワードを付加したデータをハッシュ化してレスポンスコードを作成し認証を行います。

この記事が気に入ったらサポートをしてみませんか?