暗号化の仕組み

インターネットを使用するとき、私たちはニュース記事やブログ投稿を読むなど、常にクリックして受動的に情報を取り入れているわけではありません。オンライン時間の多くは、自分の情報を他の人に送信することに関係しています。本、 CD 、その他オンライン ベンダーに何かをインターネット上で注文したり、オンライン アカウントにサインアップしたりするには、大量の機密の個人情報を入力する必要があります。一般的な取引には、名前、電子メールアドレス、住所、電話番号だけでなく、パスワードや個人識別番号 (PIN) も含まれる場合があります。

インターネットの驚異的な成長は、私たちの生活や働き方を変えるという期待に、企業も消費者も同様に興奮させています。ラップトップの前に座りながら、世界中で商品を売買するのは非常に簡単です。しかし、インターネット上では、特に当事者間で機密情報を送信するためにインターネットを使用する場合、セキュリティが大きな懸念事項となります。

正直に言うと、次のような他の人に見られたくない情報がたくさんあります。

  • クレジットカード情報
  • 社会保障番号
  • 私信
  • 個人情報
  • 会社の機密情報
  • 銀行口座情報

情報セキュリティは、さまざまな方法でコンピュータやインターネット上で提供されます。シンプルだが簡単なセキュリティ方法は、機密情報をポータブル フラッシュ メモリ ドライブや外付けハード ドライブなどのリムーバブル ストレージメディアにのみ保存することです。しかし、最も一般的なセキュリティ形式はすべて暗号化に依存しています。これは、キーを持っている人 (またはコンピュータ) だけが情報を復号できるように情報をエンコードするプロセスです。

この記事では、暗号化と認証について学びます。また、公開鍵システムと対称鍵システム、ハッシュ アルゴリズムについても学習します。

セキュリティ暗号化システム

暗号化の仕組み

コンピューターの暗号化は暗号科学に基づいており、人間が情報を秘密にしたいと考えてきた限り使用されてきました。デジタル時代以前は、暗号化の最大のユーザーは政府、特に軍事目的でした。

たとえば、ギリシャの歴史家プルタルコスは、スキュタレ(木で作られた薄い円筒)を使って機密メッセージを送受信したスパルタの将軍について書いています。将軍は羊皮紙をスキュタレに巻き付け、その長さに沿ってメッセージを書きました。誰かがシリンダーから紙を取り出すと、その文字はナンセンスの寄せ集めのように見えました。しかし、羊皮紙を受け取ったもう一人の将軍が同じような大きさのスキュタレを持っていれば、羊皮紙をその周りに巻き付けることができ、意図されたメッセージを簡単に読み取ることができます。

ギリシャ人はまた、文字や数字の置換や転置を伴う特定の暗号である暗号を最初に使用した人でもあります。

両方の将軍が正しい暗号を持っている限り、相手が送信したメッセージを解読することができました。メッセージを解読しにくくするために、グリッド内の文字を任意の組み合わせで配置することができます。

最近使用されているほとんどの形式の暗号化はコンピュータに依存しています。これは単純に、人間が作成したコードはコンピュータでは解読するのが非常に簡単であるためです。暗号は、今日では暗号化のガイドであるアルゴリズムとしてもよく知られています。アルゴリズムは、メッセージを作成し、特定の範囲の可能な組み合わせを提供する方法を提供します。一方、キーは、人間またはコンピュータが特定の状況で 1 つの可能性を見つけ出すのに役立ちます。

コンピュータ暗号化システムは通常、次の 2 つのカテゴリのいずれかに属します。

  • 対称キー暗号化
  • 公開鍵暗号化

次のセクションでは、これらの各システムについて学習します。

対称キー

2 人のスパルタ将軍が互いにメッセージを送信するのと同じように、対称キー暗号化を使用して相互に情報を送信するコンピュータは同じキーを持っている必要があります。

対称キー暗号化では、各コンピューターは秘密キー (コード) を持ち、情報のパケットをネットワーク経由で別のコンピューターに送信する前に暗号化するために使用できます。対称キーでは、各コンピュータにキーをインストールできるように、どのコンピュータが相互に通信するかを知っている必要があります。対称キー暗号化は、情報を復号化するために 2 台のコンピューターのそれぞれが知っておく必要がある秘密コードと本質的に同じです。このコードは、メッセージを解読するための鍵を提供します。

次のように考えてください。友人に送信するコード化されたメッセージを作成します。このメッセージでは、各文字がアルファベットで 2 つ下の文字に置き換えられます。したがって、「A」は「C」になり、「B」は「D」になります。あなたはすでに信頼できる友人に、そのコードが「Shift by 2」であることを伝えました。友人はメッセージを受信して​​解読します。他の人がメッセージを見たとしても、それはナンセンスにしか見えません。

コンピューターにも同じことが当てはまりますが、当然のことながら、キーは通常よりもはるかに長くなります。米国のコンピュータ用に開発された最初の主要な対称アルゴリズムは、1970 年代に使用が承認されたデータ暗号化標準 (DES) でした。 DES は 56 ビットのキーを使用します。

70 年代以降、コンピュータはますます高速になったため、セキュリティ専門家はもはや DES が安全であるとは考えていません。ただし、56 ビット キーには 70,000,000,000,000,000 を超える可能な組み合わせ (70,000,000,000,000,000) があり、ブルート フォース攻撃 (考えられるすべての組み合わせを順番に試すだけです)正しいキーを見つけるため)、暗号化されたデータを短時間で簡単に解読できます。その後、DES は、128、192、または 256 ビットのキーを使用する Advanced Encryption Standard (AES) に置き換えられました。ほとんどの人は、AES が今後長い間十分な暗号化標準であると信じています。たとえば、128 ビット キーには 300,000,000,000,000,000,000,000,000,000,000,000 を超えるキーの組み合わせが含まれる可能性があります 。

シーザーの暗号

ジュリアス・シーザーも同様の置換手法を使用し、3 文字を上にシフトしました。たとえば、「ルビコンを渡る」と言いたければ、代わりに「FURVV LQJWK HUXEL FRQ」と書き留めるでしょう。ご覧のとおり、各単語のサイズがわかりにくくするために、テキストも均等なグループに分割されています。

公開鍵暗号化

対称キー暗号化について一部の人が指摘している弱点の 1 つは、2 人のユーザーが相互に通信しようとすると安全な方法が必要であるということです。そうしないと、攻撃者がストリームから必要なデータを簡単に抜き取ることができます。 1976 年 11 月に、ジャーナル IEEE Transactions on Information Theory に掲載された「暗号化の新しい方向性」というタイトルの論文では、この問題に対処し、公開キー暗号化という解決策を提案しました。

非対称キー暗号化とも呼ばれる公開キー暗号化では、2 つの異なるキー (秘密キーと公開キーの組み合わせ) を同時に使用します。秘密キーはあなたのコンピュータだけが知っていますが、公開キーはあなたのコンピュータから安全に通信したいすべてのコンピュータに与えられます。暗号化されたメッセージを復号するには、コンピュータは送信元のコンピュータから提供された公開キーと独自の秘密キーを使用する必要があります。あるコンピュータから別のコンピュータに送信されるメッセージは安全ではありません。暗号化に使用される公開キーは公開され、誰でも利用できるため、秘密キーがなければメッセージを受け取った人は誰でも読むことができません。キー ペアは、長い長さの素数(2、3、5、7、11 など、それ自身と 1 の約数のみを持つ数値) に基づいています。これにより、システムは非常に安全になります。これは、本質的に無限の数の素数が利用可能であり、キーにはほぼ無限の可能性があることを意味します。非常に人気のある公開キー暗号化プログラムの 1 つはPretty Good Privacy (PGP)で、これを使用すると、ほぼすべてのものを暗号化できます。

送信側コンピュータは対称キーを使用してドキュメントを暗号化し、次に受信側コンピュータの公開キーを使用して対称キーを暗号化します。受信側のコンピューターは、秘密キーを使用して対称キーを復号します。次に、対称キーを使用してドキュメントをデコードします。

安全なWeb サーバーが必要とするような大規模な公開キー暗号化を実装するには、別のアプローチが必要です。ここでデジタル証明書が登場します。デジタル証明書は基本的に、Web サーバーが認証局と呼ばれる独立したソースによって信頼されていることを示す一意のコードまたは多数のコードです。認証局は、両方のコンピュータが信頼する仲介者として機能します。各コンピュータが実際に本人であることを確認し、各コンピュータの公開鍵を他のコンピュータに提供します。

SSLとTLS

暗号化の仕組み

公開キー暗号化の一般的な実装は、 Secure Sockets Layer (SSL) です。 SSL は、もともと Netscape によって開発された、インターネット ブラウザおよびWeb サーバーが機密情報を送信するために使用するインターネット セキュリティ プロトコルです。 SSL は、トランスポート層セキュリティ(TLS) として知られる全体的なセキュリティ プロトコルの一部となっています。

ブラウザでは、TLS などの安全なプロトコルを使用していることをいくつかの異なる方法で知ることができます。アドレス行の「http」が「https」に置き換えられ、ブラウザ ウィンドウの下部にあるステータス バーに小さな南京錠が表示されることがわかります。オンライン銀行口座やPayPalやGoogle Checkout などの支払い転送サービスなどの機密情報にアクセスする場合、この種の形式の変更を目にする可能性があり、情報が安全に送信される可能性が高いことがわかります。

TLS とその前身である SSL は、認証局を大幅に利用します。ブラウザが安全なページをリクエストし、「http」に「s」を追加すると、ブラウザは公開キーと証明書を送信し、次の 3 つのことを確認します。1) 証明書が信頼できる当事者からのものであること。 2) 証明書が現在有効であること。 3) 証明書が送信元のサイトと関係があること。

暗号化の仕組み

次に、ブラウザは公開キーを使用して、ランダムに選択された対称キーを暗号化します。公開キー暗号化には大量のコンピューティングが必要なため、ほとんどのシステムでは公開キー暗号化と対称キー暗号化を組み合わせて使用​​します。 2 台のコンピュータが安全なセッションを開始すると、一方のコンピュータは対称キーを作成し、公開キー暗号化を使用してもう一方のコンピュータに送信します。これにより、2 台のコンピュータは対称キー暗号化を使用して通信できるようになります。セッションが終了すると、各コンピュータはそのセッションに使用された対称キーを破棄します。セッションを追加するには、新しい対称キーを作成する必要があり、このプロセスが繰り返されます。

ハッシュアルゴリズム

公開鍵暗号化の鍵はハッシュ値に基づいています。これは、ハッシュ アルゴリズムを使用して基本入力数値から計算される値です。基本的に、ハッシュ値は元の値の要約です。ハッシュ値に関して重要なことは、ハッシュ値の作成に使用されたデータを知らずに元の入力数値を導き出すことはほぼ不可能であるということです。簡単な例を次に示します。

番号を入力してください

10,667

ハッシュアルゴリズム

入力番号×143

ハッシュ値

1,525,381

値 1,525,381 が 10,667 と 143 の乗算から得られると判断するのがいかに難しいかがわかります。しかし、乗数が 143 であることがわかっていれば、値 10,667 を計算するのは非常に簡単です。公開キー暗号化は実際にはこの例よりもはるかに複雑ですが、それが基本的な考え方です。

公開キーは通常、複雑なアルゴリズムと、40 ビットまたは 128 ビットの数値を含む非常に大きなハッシュ値を暗号化に使用します。 128 ビットの数値には 2 128 、つまり 3,402,823,669,209,384,634,633,746,074,300,000,000,000,000,000,000,000,000,000,000,000,000 個の異なる組み合わせが考えられます。これは、特定の組み合わせを見つけようとするようなものです。サハラ砂漠の砂粒。

認証

前述したように、暗号化は、あるコンピューターが別のコンピューターに送信するすべてのデータを取得し、他のコンピューターのみが復号できる形式にエンコードするプロセスです。別のプロセスである 認証 は、情報が信頼できるソースからのものであることを確認するために使用されます。基本的に、情報が「本物」であれば、その情報を作成した人がわかり、その人が作成して以来一切変更されていないことがわかります。これら 2 つのプロセス、暗号化と認証は連携して動作し、安全な環境を作成します。

コンピュータ上の個人または情報を認証するには、いくつかの方法があります。

  • パスワード– ユーザー名とパスワードの使用は、最も一般的な認証形式を提供します。コンピュータのプロンプトが表示されたら、名前とパスワードを入力します。ペアを安全なファイルと照合して確認します。名前またはパスワードのいずれかが一致しない場合、それ以上のアクセスは許可されません。
  • パス カード– これらのカードは、クレジット カードに似た磁気ストライプが付いた単純なカードから、コンピュータ チップが組み込まれた高度なスマート カードまで多岐にわたります。
  • デジタル署名– デジタル署名は基本的に、電子文書 (電子メール、スプレッドシート、テキスト ファイル) が本物であることを確認する方法です。デジタル署名標準(DSS) は、デジタル署名アルゴリズム(DSA) を使用する一種の公開キー暗号化方式に基づいています。 DSS は、米国政府によって承認されたデジタル署名の形式です。 DSA アルゴリズムは、文書の作成者 (署名者) だけが知っている秘密キーと公開キーで構成されます。公開キーには 4 つの部分があります。詳細については、「 」を参照してください。デジタル署名が添付された後に文書内で何かが変更されると、デジタル署名が比較する値が変更され、署名が無効になります。

最近、より洗練された認証形式が家庭やオフィスのコンピュータ システムに登場し始めています。これらの新しいシステムのほとんどは、認証に何らかの形式の生体認証を使用します。バイオメトリクスでは、生物学的情報を使用して身元を確認します。生体認証には次のような方法があります。

チェックサムとCRC

セキュア コンピューティングのもう 1 つのニーズは、送信または暗号化中にデータが破損していないことを保証することです。これを行う一般的な方法がいくつかあります。

チェックサム– おそらくデータが正しいことを確認する最も古い方法の 1 つであり、無効なチェックサムはデータが何らかの方法で侵害されたことを示唆するため、チェックサムは認証の形式も提供します。チェックサムは 2 つの方法のいずれかで決定されます。パケットのチェックサムの長さが 1バイトだとします。 1 バイトは 8 ビットで構成され、各ビットは 2 つの状態のいずれかになり、合計 256 (2 8 ) 通りの組み合わせが可能になります。最初の組み合わせはゼロに等しいため、バイトの最大値は 255 になります。

  • パケット内の他のバイトの合計が 255 以下の場合、チェックサムにはその正確な値が含まれます。
  • 他のバイトの合計が 255 を超える場合、チェックサムは合計値を 256 で割った残りになります。

チェックサムの例を見てみましょう。

  • 合計 1,151 バイト
  • 1,151 / 256 = 4.496 (4 に四捨五入)
  • 4 x 256 = 1,024
  • 1,151 – 1,024 = 127 チェックサム

巡回冗長検査(CRC) – CRC は概念としてはチェックサムに似ていますが、多項式の除算を使用して CRC の値を決定します。CRC の値は通常、長さが 16 ビットまたは 32 ビットです。 CRC の良い点は、非常に正確であることです。 1 つのビットが間違っている場合、CRC 値は一致しません。チェックサムと CRC はどちらも、送信中のランダム エラーを防ぐのに役立ちますが、データに対する意図的な攻撃からはほとんど保護されません。対称キー暗号化技術と公開キー暗号化技術は、より安全です。

これらのさまざまなプロセスがすべて組み合わされて、インターネット上で送受信する情報の安全性を確保するために必要なツールが提供されます。実際、コンピュータ ネットワーク経由で情報を送信することは、他の方法で送信するよりもはるかに安全であることがよくあります。電話機、特にコードレス電話機は、特に無線スキャナを持った悪意のある人によって盗聴される可能性があります。従来の郵便やその他の物理媒体は、宛先に届くまでに多くの人の手を経由することが多く、破損の可能性が高くなります。暗号化を理解し、インターネット経由で送信する機密情報が安全であることを確認するだけで (「https」と南京錠の記号を思い出してください)、より大きな安心感を得ることができます。