トレンド解説

DESとは? わかりやすく10分で解説

アイキャッチ
目次

はじめに

DESとは?

「DES」は、独自のアルゴリズムを使用した共通鍵暗号方式の一つで、主にデータのセキュリティを高めるために使用されていました。「Data Encryption Standard」の頭文字を取ったもので、その暗号方式が特徴的であり、広く知られています。

データを安全に保護するための手段として、存在している暗号化手法の一つであり、一定期間情報の安全性を維持するのに重要な役割を果たしています。以前は世界的に見ても評価が高く、多くのIT関連企業が利用していました。

今回は、「DES」が具体的にどのようなものであり、なぜそれが重要だったのかを見ていきます。

DESの定義

DES(Data Encryption Standard)は、1977年にアメリカ連邦政府に公募によって選出されたデータ暗号化のアルゴリズムです。特に、ビット単位のデータ変換や置換、移動等によって行われる暗号化と復号化の手順を規定しています。

DESは、元のデータ(平文)を64bit単位で切り出し、その半分ずつを16回のラウンドで処理します。この処理の単位をラウンドと言い、各ラウンドで異なる鍵を使用します。

DES暗号化の鍵は56bit長のものを使用します。 そのため、その鍵の組み合わせは約7200兆通りあり、総当たり攻撃に対してかなり耐性がありました。

DESの歴史

DESは、1977年にアメリカ連邦政府が採用した暗号化方式です。アメリカの情報処理規格(FIPS)で、そのアルゴリズムが公表されました。当初は、アメリカ連邦政府内の機密情報の保護に使用されたものが、その後、セキュリティを必要とするさまざまな業界、企業で採用されるようになりました。

しかしながら、現在ではその鍵長の短さから、断続的な他の暗号方式にとって代わられつつあります。

DESの基本

DESの基本的な考え方は、「暗号化」と「復号」の二つのプロセスから構成されています。暗号化プロセスでは、64bitの平文を取り、16回のラウンドを経て64bitの暗号文を生成します。復号プロセスは暗号化の逆を行い、文字列を元のプレーンテキストに戻します。

それぞれのラウンドでは、右半分の32ビットは左半分の32ビットに置き換えられ、そして右半分の32ビットは元の左半分と次のラウンド鍵との関数操作結果に置き換えられます。16ラウンド後、暗号化の出力は、元の右半分と左半分を反転させたものになるという巧妙なアルゴリズムとなっています。

DESの特徴

DESは16回の複雑なラウンドを通じてデータを暗号化します。各ラウンドで異なる部分鍵を使うことにより、同じ鍵が繰り返し使われるのを防ぎ、安全性を高めます。

他の特徴としては、ある程度の耐性を持つという点が挙げられます。この耐性は、暗号化プロセス中に一部のビット情報が失われても、それを修復する能力を指します。 DESは、そのアルゴリズム設計において、情報の一部が失われたとしても、十分な安全性を維持するように設計されています。

しかし、長年の使用と研究により、DESの脆弱性も見つかっています。そのため、現代ではAES(Advanced Encryption Standard)という新しい暗号規格が主流となりつつあります。AESは、安全性と効率性のバランスをよりうまく取ることが可能であると考えられています。

DESの暗号化プロセス

DESの暗号化プロセスは以下の4つのステップから構成されています。ここでは、それぞれのプロセスを詳しく見ていきましょう。

暗号化の基本フロー

DES暗号化の基本フローは、まず64bitの平文データを半分に分割します。その後、16回のラウンドと呼ばれるプロセスを経て64ビットの暗号文が生成されます。この一連のフローが暗号ブロックと呼ばれ、単一の暗号化作業ごとに実行されます。

各ラウンドの処理では、各半分のデータが急速に複雑な方法で混合され、予測不可能な結果を生成します。ラウンド関数と呼ばれるこの混合プロセスは、DESの強固なセキュリティをもたらす重要な要素の一つです。

最後に、各ラウンドの結果が組み合わせられ、最終的な64ビットの暗号文が出力されます。これを最終出力と言います。

ラウンドと鍵の役割

DES暗号化プロセスの核心部分はラウンドと呼ばれるステップです。これは繰り返し処理され、各ラウンドでは異なるサブキー(鍵の一部)が使用されます。

各ラウンドでは、平文データの半分が事前に選択されたサブキーと結合され、その結果がもう一方のデータ半分に適用されます。この一連の作業が、データの置換と混合を行い、予測不可能な暗号文を生成します。

鍵は56ビットで、それがサブキーとなって各ラウンドで使用されます。鍵スケジュールと呼ばれるこの段階では、各ラウンドに合わせて異なるサブキーが生成され、このプロセスがDESの強固なセキュリティを支えます。

ラウンド関数の詳細

ラウンド関数は、DES暗号化の中心的な部分です。これは複数の置換と混合のステージから成り、各ステージの詳細は次の通りです。

最初に、データの半分は拡大置換ステージを経て拡大されます。その後、この拡大したデータは現在のサブキーとXOR演算(排他的論理和)を行い、加算結果を生成します。

次に、生成された加算結果は再度ハッシュ化され、Sボックスと呼ばれる構造を通過して更に混ぜられます。さいごにP-置換が行われ、ラウンド関数の結果が得られます。

最終出力とDESの出力

DES暗号化のラウンド関数は16回繰り返され、その結果は各ラウンドで単に組み合わさった後、最終的な64ビットの暗号文を生成します。

生成された暗号文は、初期置換を逆に適用したもので、これによって最終的な出力データが得られます。

この最終出力は、平文データが暗号化され、保管、送信、さらに必要な場合には復号化を待つ暗号文です。これがDESの基本的な暗号化プロセスです。

DESの種類と特性

今から解説する内容は、DES暗号のさまざまな形態とそれぞれの特性についてです。"DES"はもともと単一の暗号アルゴリズムを指すのですが、その後さまざまな形状や応用が開発されてきました。「単一DES」、「二重DES」、「トリプルDES」の特性とそれぞれの強度と脆弱性について詳しくみていきましょう。

単一DES

単一DESは、もともとのDESアルゴリズムを指します。64bitのデータブロックを暗号化するための56bitのシークレットキーを用い、16回のラウンド(複雑化手続き)を行います。その強度は、一般的には”まあまあ”と評価されますが、現代のコンピュータ処理能力の観点から見ると短すぎる鍵長が危険性を孕んでいるとされています。

二重DES

二重DESは、単一DESを2回実施することでセキュリティを強化しようというものです。2つの56bit キーを順次使用し、鍵長を実質的に112bitとすることで安全性を増す試みです。しかし、中間一致攻撃という手法を使えば、2回のDES応用があってもそれほど強化されないという状況が判明しました。

トリプルDES

最後に、トリプルDESです。これはDES暗号化を3回行うという形態で、暗号化→復号化→再暗号化の3つのステージを経て処理します。各ステージで異なる鍵を使い、3つの鍵を全て異なるものとする3キー版と、最初と最後で同じ鍵を使う2キー版があります。

各種DESの強度と脆弱性

以上の各DESの強度と脆弱性を比較してみると、単一DESは鍵長が原則として56bitなので、現代のコンピュータによるブルートフォース攻撃に対しては無力です。一方、二重DESは鍵長を2倍にすることでセキュリティを向上させる試みですが、中間一致攻撃によりその増強効果が大幅に低下してしまいます。最後に、トリプルDESはその名の通りDESを3回適用することでセキュリティを強化した形態で、二重DESの欠点をある程度カバーすることができますが、それでも現代の暗号技術の主流であるAESには及ばないという評価です。

DESの評価と脆弱性

データ暗号化のアルゴリズムの一つとして昔から知られているDESですが、実際のところどのようにセキュリティ評価されているのでしょうか。また、脆弱性とは何か、それにはどのような対策が必要なのでしょうか。このセクションではそれらについて詳しく踏み込んでいきます。

DESのセキュリティ評価

DESは、1977年にアメリカの連邦政府によってデータ暗号化のアルゴリズムとして採用されました。データの保護には極めて有効であるため、一時期は非常に高い評価を受けていました。

しかし、DESの鍵長が56ビットであることは、そのセキュリティ性能に影響を及ぼしています。この鍵長は現在のコンピュータ技術においては短いとされ、これがDESの大きな脆弱性となっています。

さらに、同じ鍵を用いてラウンドを16回繰り返すというアルゴリズム上の制約から、特定の攻撃法に対して脆弱であることが明らかになっています。

DESの脆弱性

さて、前述したように、DESにおける脆弱性の一つが鍵長の短さです。これにより、暗号解読の際の試行回数が減り、総当たり攻撃に対して脆弱である事が指摘されています。

また、DESが持つもう一つの大きな脆弱性として、「中間一致攻撃」があります。これによって、DESの2倍または3倍の処理を繰り返しても安全性は向上しません。

これらの脆弱性を理解し、正しく対策を行うことが重要です。次節では、中間一致攻撃について詳しく解説します。

中間一致攻撃とは?

中間一致攻撃とは、暗号化と復号化の過程で生成される中間データを利用して暗号を解読する攻撃の一つです。

二重DESなど、一つの方法で暗号化を二回行う場合、この中間一致攻撃の影響を受けやすくなります。この攻撃を適切に防ぐには、それぞれ異なる鍵を使用して暗号化を行うトリプルDESなどが必要になります。

しかし、トリプルDESもまた鍵長の制限から最終的な安全性に疑問が残るため、より現代的な暗号化方式への移行が求められています。

攻撃シナリオと対策

DESの脆弱性を突く攻撃シナリオとしては、前述の総当たり攻撃や中間一致攻撃が挙げられます。これらの攻撃は、十分に長い鍵長を持つ暗号方式ならば効果的に防げます。

対策方法として最も推奨されるのは、AES(Advanced Encryption Standard)への移行です。これは鍵長が128、192、256ビットから選べるため、より強固なセキュリティを実現します。

最後に、どの暗号方式も完全に安全なものは存在しません。最新のセキュリティ状況を常に確認し、適切な対策を講じることが求められます。

DESからAESへの移行

共通鍵暗号方式の一つであるDESの登場から数十年が経ち、その後の技術進歩とともにDESの後継となるAES(Advanced Encryption Standard)が主流となりました。それでは、AESとは何か、そして何故DESからAESへと移行されたのかについて見ていきましょう。

そして、AESとDESの比較を行うとともに、今後の暗号化技術の展望についても考察してみたいと思います。

AESの概要

AESは「Advanced Encryption Standard」の略で、米国の連邦情報処理標準として2001年に採用された暗号化方式です。ブロック暗号の一種で、鍵長が128bit、192bit、256bitから選択可能です。

これに対し、DESの鍵長は56bitで、DESの処理を2〜3回行う二重DESやトリプルDESで拡張しても、最大でも112〜168bitです。つまり、より長い長さの鍵をサポートしており、その点でAESは大幅にセキュリティが強化されたと言えます。

AESのアルゴリズムは高速で効率的なため、非常に幅広いハードウェアやソフトウェア環境で支持され、現在の共通鍵暗号の主流となっています。

DESからAESへの理由

では、何故DESからAESへと移行したのでしょうか。それは、鍵の長さと処理の高速性、さらにはセキュリティ面での需要増加によるものです。

鍵の長さは暗号の安全性を左右します。DESの鍵長56bitでは、現代のパソコンであれば比較的容易に解読可能なレベルまで低下してしまいました。その脆弱性を改善するために、より長い鍵長を持つAESが登場したわけです。

また、AESは相対的に処理速度が速く、少ないリソースでも高速な処理が可能です。これは大量のデータをリアルタイムで暗号化・復号化する必要性が増してきた現代において、非常に重要な要素でした。

AESとDESの比較

AESとDESの違いを比較すると、最も顕著なのはセキュリティ処理速度です。既述した通り、AESは鍵長が長く、処理速度が早いのが特徴です。さらにもう一つ、DESに対する既知の攻撃方法がAESには対応していないという点も大きな違いです。

また、DESは16のラウンドを経る一方で、AESでは10・12・14ラウンドの繰り返しが行われます。これも独自のセキュリティ強化措置と言え、AESの特徴の一つとなっています。

これらの特徴や性能の差から、現代の暗号化技術は脆弱性のあるDESから、より安全性、効率性に優れたAESへと取って代わられていったのです。

今後の暗号化技術の展望

現代におけるデータセキュリティの重要性は日々増大しています。対象のデータ量が増大する一方で、解読や改ざんの技術も進歩しています。その中で、AESのような確かな安全性と高速性を持つ暗号化方式は今後も引き続き活躍するでしょう。

他方で、新たな暗号化技術も積極的に研究・開発されています。量子コンピュータの登場により、今後は量子暗号などの新技術が実用化される可能性も指摘されています。

そのため、情報保護を目指す全ての人々が、日々進化する暗号化技術を注視し、適切な知識と対策を持つことが重要となっています。

はとめ

DESの現在の利用状況

DES(Data Encryption Standard)は1977年にアメリカ政府により採用された暗号化方式でしたが、現在ではその利用は大幅に減少しています。その理由として最も大きいのは、DESが持つ脆弱性です。

具体的には、鍵の長さが短く、コンピュータの処理能力向上に伴い、攻撃に対する耐性が低いという問題がありました。また、ビット数が増えるたびにセキュリティが脆弱になるという鍵スケジュールの問題も存在しました。

これらの理由から、セキュリティが重要な商用環境等では、代替の暗号化技術が使用されることが増えており、DESの使用率は年々下降しています。

DESの今後の展開

その一方で、旧式のシステムでは未だにDESが利用されているケースも存在します。これは、新たな暗号化方式への移行にはコストがかかるため、一部の企業や組織で使用が続けられていると考えられます。

しかし、そのような場合でも、長期的なセキュリティ対策やリスク管理の観点から、時間をかけてでもより安全な暗号化方式への移行が求められています。そのため、将来的にはDESの利用はさらに減ると予想されます。

一方、DESのアルゴリズム自体は、暗号化学や計算機科学の教育の一環として学習されることがあります。これは、DESが暗号化技術の歴史的な一部であり、その仕組みを理解することで現代の暗号化技術の理解に繋がるからです。

DESの代替技術

DESの脆弱性を補う暗号化方式として登場したのが、AES(Advanced Encryption Standard)です。AESは鍵長度が128・192・256bitから選択可能で、DESに比べて処理速度も高く、現在の主流となっています。

他にも、公開鍵暗号方式であるRSAや楕円曲線暗号(ECC)なども存在します。これらは、双方が秘密の鍵を共有しなくても通信することができるという特性から、デジタル署名や証明書など様々な用途で利用されています。

これらの新たな暗号化方式は、より強固なセキュリティと高速な処理能力を兼ね備えており、これからの時代に適応できるものとされています。

昨今の暗号化技術の動向

最近の暗号化技術の動向として注目されているのは、量子コンピュータ対応の暗号技術です。量子コンピュータは、現在のコンピュータよりも圧倒的に強力な計算機能を持っているため、現行の暗号システムが脅威に晒される可能性が指摘されています。

そのため、量子コンピュータに対抗可能な量子耐性暗号(prost-quantum cryptography)の研究が行われています。これには、ハッシュベース暗号、格子ベース暗号、コードベース暗号、多変数多項式系暗号などが存在します。

これら新しい暗号化技術は、今後の暗号化の主流になる可能性を秘めており、少なくともDESが主流だった時代とは大きく変わっていることは間違いありません。

記事を書いた人

ソリトンシステムズ・マーケティングチーム