プログラミング
 Computer >> コンピューター >  >> プログラミング >> プログラミング

DESの鍵生成手順とは?16ラウンドのサブキー生成プロセスを徹底解説

DES(データ暗号化標準)とは

Data Encryption Standard(DES)は、64ビット単位の平文ブロックを処理し、48ビットの鍵を用いて暗号文へ変換するブロック暗号アルゴリズムです。DESは共通鍵(対称鍵)暗号方式に分類され、暗号化と復号に同一の鍵を使用する点が大きな特徴です。

暗号化では、DESは64ビットの平文を受け取り、64ビットの暗号文を生成します。復号側ではその逆に、64ビットの暗号文から64ビットの平文ブロックを復元します。このとき、暗号化と復号の両方で同じ56ビットの暗号鍵が使用されます。

DESの本質的な特徴は、アルゴリズム自体が固定されており公開されているという点です。一方で、実際に使用される鍵は、送信者と受信者の間だけで共有される秘密情報として扱われます。

DESの発展形としては、鍵長を128ビットに拡張する手法や、複数の鍵を用いて暗号化・復号を通常3回繰り返す「マルチパスDES」(トリプルDESなど)が挙げられます。

DESの歴史的背景

DESは、1960年代後半にIBM(International Business Machines)社が実施した研究プロジェクトの成果として誕生しました。この研究から生まれた暗号が「LUCIFER」です。1970年代前半にはLUCIFERを改良することが決定され、数々の技術的革新が導入されることになりました。

鍵生成の全体像

DESのアルゴリズムは16ラウンドの暗号化処理を実行し、各ラウンドごとに固有の鍵(サブキー)が生成されます。具体的な手順に入る前に、平文のビットには1から64までの番号が付けられており、ビット1が最上位ビット(MSB)、ビット64が最下位ビット(LSB)であることを理解しておく必要があります。

鍵生成のプロセスは以下の通りです。

  • ラウンド鍵の生成: ラウンド鍵ジェネレータは、56ビットの暗号鍵から16個の48ビット鍵を生成します。入力される暗号鍵は64ビットですが、そのうち8ビットはパリティビットであり、実際の鍵生成が始まる前に破棄されます。
  • パリティビットの除去: パリティビット除去処理では、64ビットの鍵からパリティビット(8、16、24、32…64番目のビット)を取り除き、残りのビットを下記の表に示す規定のルールに従って置換します。
  • 56ビット鍵の確定: 残った56ビットが、以降の鍵生成に使用されます。
  • 分割とシフト: 置換後、鍵は28ビットずつの2つの部分に分割されます。それぞれの部分は、ラウンド番号に応じて1ビットまたは2ビットだけ左に循環シフトされます。
  • シフト量のルール: 第1、2、9、16ラウンドでは1ビットシフト、その他のラウンドでは2ビットシフトが行われます。シフト後の2つの部分を結合して、再び56ビットのデータを構成します。
  • 圧縮置換(PC-2): 最後に圧縮Dボックスによって56ビットが48ビットへ変換されます。この48ビットが、そのラウンドで使用される鍵となります。

パリティビット除去表(PC-1)

5749413325170901
5850423426181002
5951433527191103
6052443663554739
3123150762544638
3022140661534537
2921130528201204

DESの鍵生成手順とは?16ラウンドのサブキー生成プロセスを徹底解説

このようにして生成された16個の48ビットのサブキーは、それぞれ対応するラウンドの暗号化処理に供給されます。パリティビットの除去、置換、循環シフト、圧縮置換といった一連の手順により、毎ラウンド異なる鍵が作り出される仕組みこそが、DESの安全性を支える基盤となっているのです。

  1. 情報セキュリティにおける公開鍵暗号方式の主な応用と仕組みを解説

    公開鍵暗号方式とは公開鍵暗号方式は「非対称鍵暗号」とも呼ばれ、オンラインソフトウェアにおいて不可欠な暗号化・復号の仕組みです。この方式では、「公開鍵」と「秘密鍵」という2つの異なる鍵を使用します。対称鍵暗号アルゴリズムでは、暗号化と復号に同じ1つの鍵を使います。一方、公開鍵暗号方式では2つの鍵を使い分け、どちらか一方の鍵で暗号化したデータは、もう一方の鍵でのみ復号できるという特徴を持ちます。公開鍵暗号方式で生成される鍵は、512ビット、1024ビット、2048ビットなど非常に大きなサイズになります。そのため、これらの鍵を人が記憶することは現実的ではなく、USBトークンやハードウェアセキュリティ

  2. 情報セキュリティにおける公開鍵暗号システムの基本原理を解説

    公開鍵暗号システムとは公開鍵暗号(Public Key Cryptography)は、情報の機密性を確保するための不可欠な手段となっています。特に、秘密裏に通信を行いたい利用者同士が暗号鍵を交換する「鍵配布」の仕組みにおいて、その重要性が際立っています。また、デジタル署名の機能も備えており、ユーザーが鍵に署名することで本人性を検証できる点も大きな特徴です。この公開鍵暗号の考え方は、共通鍵暗号(対称鍵暗号)に関わる2つの難しい課題を解決しようとする試みから生まれました。第一の課題は鍵配布の問題です。共通鍵暗号における鍵配布では、以下のような要件が必要でした。通信を行う両者が、あらかじめ何らかの方