ソフトウェアを開発されていてアルゴリズムや自社技術の流出を懸念されている方、データ/情報の秘匿性に苦慮されている方は、「暗号化」という技術についてご検討されているかと思います。暗号を語る上で、暗号鍵は欠かせない存在で、エンジニアが知っておくべき暗号鍵の基礎と最新の活用法をわかりやすく解説します。
本記事では、「暗号鍵とはなにか?」と、「用途によってのさまざまな鍵の種類、使い方」を説明致し、セキュリティー設計やリバースエンジニアリング対策を検討するエンジニアの方に、実務で役立つ知識をお届けします。
暗号鍵とはなにか
暗号鍵は、暗号時や復号時に使用するものであり、盗聴者や攻撃者に鍵を知られてしまった場合には機密性や証明を保つことが難しい状況になります。そのため、鍵の内容をしられないようにさまざまな鍵の運用や管理を実施する必要があります。
そもそも、ここでの鍵というのは何でしょうか?と疑問が発生するかと存じます。
鍵とは暗号化のアルゴリズムに用いられる通信する互いが認識している固有のデータの事で、鍵の総数を表現できるビット数(56ビット~256ビット或いは、それ以上)で表します。
鍵のビット数が大きいほど暗号化解読、総あたり攻撃等に対しての解読が困難になるためです。
対称暗号、公開鍵暗号、メッセージ認証暗号、デジタル署名などの暗号技術の使い方に応じてビット数が異なりますため、下記にそれぞれの鍵の内容を記載致します。
*DESとトリプルDESの場合、通信エラー検出用にパリティビットが付加されますが、暗号領域ではないためこの部分は省きます。
DES鍵
DESは「Data Encryption
Standard」の略で、共通鍵暗号方式によるデータ暗号化のアルゴリズムの1つです。一定の長さのデータをまとめて暗号化する方法をブロック暗号といい、DESは64bit単位にデータを区切り、それをまとめて暗号化するブロック暗号です。鍵長は56bitですが、パリティチェック用の8bitを加えて64bitとして扱います。
パリティチェックとは、データの送信が適切に行われたかを確認する仕組みです。DESでは合計64bitの鍵を使い、データを64bit単位で暗号化し出力します。
DESでは64bitのデータを半分(LとR)に分割し、同じような処理を繰り返す過程があります。この繰り返しの単位をラウンドと言います。繰り返すと言っても、変換処理に使う鍵は元になる鍵からラウンドごとに算出され、同じものは使いません。
半分に分割したデータは、まずRだけが変換処理されてLと合成されます。そして、その合成結果を新たなRとし、先ほどのRを今度はLとして、同じ処理を行います。データ全体を一度にまとめて処理せず、ラウンドごとの処理の負担が軽いのが特徴です。
トリプルDES鍵
DESは安全性の高い暗号化方法として採用されましたが、やがて脆弱性が見つかりました。その脆弱性を補う目的で工夫された方法のひとつがトリプルDESになります。これはDESの処理を3回繰り返す方法です。しかし、暗号化を3回繰り返すのではありません。暗号化→復号→暗号化の順に繰り返すのが特徴です。
普通に上記の順の処理を行うと、初めの暗号化は次の復号で無駄になり、結果的に1回しか暗号化していないのと同じです。そこで、トリプルDESでは、それぞれの処理で異なる鍵を使います。
中間一致攻撃は2回の処理の中間値を特定する方法です。トリプルDESは処理を3回繰り返すため、中間一致攻撃でもその一部しか特定されず、安全性を維持できます。
*対称暗号トリプルDESは、DES鍵を2個使用するDES-EDE2、DES鍵を3個使用するDES-EDE3があります。DES-EDE2のデータ長は112ビット長(14バイト長)、DES-EDE3のデータ長は168ビット(21バイト長)になります。
AES鍵
DESは脆弱性があるため、現在は利用が推奨されていません。DESの中でもっとも安全性の高いトリプルDESも、米国立標準技術研究所が2023年以降の使用禁止を提案しています。
どのような暗号化アルゴリズムにも絶対的な安全はありません。コンピューターの性能向上に伴い、古いアルゴリズムでは安全性を維持できなくなります。DESも、やがては使われなくなることを前提に採用された方式です。
現在、DESに代わってアメリカの標準規格となっているのはAES(Advanced Encryption Standard)です。共通鍵暗号方式である点はDESと同じですが、具体的な仕組みは異なります。AESの鍵長は128・192・256bitから選択可能で、DESの56bitより長く安全性が高くなっています。
上記のように鍵データは数値羅列になりますが、暗号文を入手した悪意のある者にとって、平文に復号できる鍵は非常に重要なデータとなります。単なる羅列データではないことの認識が必要になります。
また、暗号アルゴリズムを独自の強いアルゴリズムを採用、開発するのもよいですが、アルゴリズムの解読は悪意のあるハッカーにとって困難ではないと聞きます。
そのため、機密性を高める最善方法としては、上記実績のあるアルゴリズムを採用して、鍵を秘密にすることが暗号の世界では一般的な解のひとつとなっております。
用途によってのさまざまな鍵の種類、使い方① 対称暗号鍵
対称暗号鍵につきまして
対称暗号は、暗号化と復号で同じ鍵を使用します。
共通の鍵を使用することから共通鍵暗号とも言います。
対称暗号で使用される鍵は復号を許可する者以外には秘密にする必要があります。
(鍵が第3者に渡ってしまうと復号ができてしまいます)

対称暗号鍵使用運用図(例)
用途によってのさまざまな鍵の種類、使い方② 公開暗号鍵
公開鍵暗号は、暗号化と復号で異なる鍵を使用します。
暗号化する時の鍵は「公開鍵」、復号で使う鍵を「秘密鍵」といいます。
これらはデータ生成時に深く関連した数字(データ)を使用しており、鍵ペアと呼ばれます。

公開鍵暗号使用運用図(例)
用途によってのさまざまな鍵の種類、使い方③ メッセージ認証
メッセージ認証とは、データが改ざんされていないか共通暗号鍵を使ってチェックするための仕組みになります。
送信者と受信者が正しい鍵を持っていることが証拠となるため、それ以外には秘密にする必要があります。また対称暗号と異なる点はチェック用のデータを一緒に送ることにあります。
これにより改ざんやなりすましを防ぐことが可能となります。
手順概要としては以下になります。
① 送信側で送るデータを基にしてチェックデータを作る
② 平文メッセージとチェック用のデータを一緒に送る
③ 受信側は受け取った平文メッセージを基にチェック用のデータを作る
④ 送られてきたチェック用のデータと、受信側で作ったチェック用のデータが一致するか判別する。

メッセージ認証使用運用図(例)
*MAC値:Message Authentication Codeの略で、相手から届いたメッセージが途中で改竄やすり替えに合ってないか検証するための短い符号。送信者と受信者が共有する秘密のデータ(鍵)とメッセージ本体から生成する。
用途によってのさまざまな鍵の種類、使い方④ デジタル署名
デジタル署名は、送信されてきたデータが間違いなく本人のものであるのかを証明するための技術になります。
例えば、ネクスティ氏という送信者からデータを受信できても、そのデータが本当にネクスティ氏からなのかは確認することができません。通信上等でデータを改ざんやなりすましをされている可能性もでてきます。
送信者が本当にネクスティ氏であり、データの改ざんやなりすましがないことを確認するためは、本当にネクスティ氏からですよというデジタル署名を活用することで証明が可能になります。
デジタル署名はデータの送信者を証明できるので、データの改ざんが行われていないことを確認できます。
デジタル署名は公開鍵暗号を応用した技術であり、デジタル署名の仕組みのなかで公開鍵と秘密鍵があり、またハッシュ値生成も使用します。デジタル署名で使用される暗号方式はRSAやDSAなどが一般的です。
デジタル署名では、平文データではなく、平文データをハッシュ値にし、署名データとして受信者に送信します。
受信者は、受信したデータからハッシュ値を算出し、署名として受け取ったハッシュ値と比較することによりデータが改ざんされていないことを確認できます。また、第三者が知ることができない秘密鍵でハッシュ値を暗号化して送信するため、データとハッシュ値の両方が改ざんされたものを受信しても改ざんを検知することが可能となります。
手順概要としては以下になります。
① 送信側は公開鍵と秘密鍵を作成し、公開鍵を受信側に送付。
② 送信側は受信側に送付する平文データを作成し、ハッシュ関数を使用してハッシュ値を算出。
③ このハッシュ値を秘密鍵として使用し、暗号化。
④ 平文データと署名データ(暗号したハッシュ値)を送付。
⑤ 受信側は署名データを、送信側より入手した公開鍵を用いて復号。
⑥ 受信した平文データに対し、送信側と同様にハッシュ関数を使用してハッシュ値を算出。
⑦ 復号されたハッシュ値と、算出したハッシュ値を比較して一致すれば正しいデータと判断。

デジタル署名使用運用図(例)
まとめ
暗号鍵はさまざまな用途、また用途によってさまざまな方式、使い方があります。
対称暗号や公開鍵暗号で使われるのは「機密性を保持」するための鍵方式になり、復号の際に正しい鍵を所有してない場合には、平文データの内容を見ることができないことになります。
メッセージ認証やデジタル署名で使用される鍵は、「認証を実施」するための鍵方式になり、正しい鍵を所有してない場合には、データを改ざんやなりすましをすることができないことになります。
本記事では入門的な知見として記載致しました。
鍵につきましては、色々と奥が深く、鍵で鍵を作ってワンタイム認証に活用、データを暗号化する鍵と鍵を暗号化する鍵を用いて、マスター鍵、セッション鍵作成及び活用などの使い方もあります。
また、そうなると鍵の管理が必要となる、鍵安全な転送方法、鍵の更新、交換、保存、消去方法等々、鍵の活用技術は幅広く存在致します。
暗号鍵は決められたビット数のデータですが、このデータは大事なデータを守り、署名によって証明を実現できるものになり、暗号技術においてもっとも重要なデータになるということを認識頂けましたらと存じます。
関連情報
お問い合わせ
関連製品情報
NXPの車載CAN/LINトランシーバー製品の特徴を徹底解説
車載ネットワーク製品をお探しのECU開発メーカー様向けに、車載環境の厳しい条件に耐えることのできる、NXPの車載CAN/LINトランシーバー製品の特徴について解説します。
- NXP Semiconductors N.V.
- NEXT Mobility
- ICT・インダストリアル
GMSL2 設計の勘所
アナログ・デバイセズの次世代GMSL、GMSL2について特徴と、 設計の勘所を説明します。
- Analog Devices, Inc.
- NEXT Mobility
エッジ処理による消費電力低減 第3世代MEMSセンサー
加速度+ジャイロのモノリシック集積センサ iNEMO™慣性モジュールのご紹介です。センサー内で一定のデータ処理が可能なほか、機能実装を容易に行えます。
- STMicroelectronics
- NEXT Mobility
- ICT・インダストリアル
- スマートファクトリー・ロボティクス
コネクテッドインテリジェントエッジ(Connected Intelligent Edge)を実現する Qualcomm IoT Application Processors
QualcommのIoT Application Processorsは、AIや5Gを活用し、ロボティクスやスマートカメラなどの多様なIoTソリューションを提供します。
- Qualcomm Technologies, Inc.
- NEXT Mobility
- ICT・インダストリアル
- スマートファクトリー・ロボティクス
ソフトウェア保護・暗号化とライセンシングソリューション
Wibu-SystemsのCodeMeterは、ソフトウェアの違法コピー対策、知的財産保護、収益化を強力に実現するソリューションです。
- WIBU-SYSTEMS AG
- ICT・インダストリアル
- スマートファクトリー・ロボティクス
- ソフトウェア
エッジAI向け、AIアクセラレータ搭載の低消費電力MCU
MAX78000シリーズは、低電力なエッジデバイス側でのAI処理で、マシンビジョンやオーディオ、顔認識などのアプリケーションをリアルタイムで処理できます。
- Analog Devices, Inc.
- NEXT Mobility
- ICT・インダストリアル
- スマートファクトリー・ロボティクス