(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2025008509
(43)【公開日】2025-01-20
(54)【発明の名称】認証コード生成装置、認証コード生成方法及び認証コード生成プログラム
(51)【国際特許分類】
H04L 9/32 20060101AFI20250109BHJP
【FI】
H04L9/32 200A
H04L9/32 200E
【審査請求】未請求
【請求項の数】6
【出願形態】OL
(21)【出願番号】P 2023110739
(22)【出願日】2023-07-05
【国等の委託研究の成果に係る記載事項】(出願人による申告)令和5年度、総務省、「安全な無線通信サービスのための新世代暗号技術に関する研究開発」委託事業、産業技術力強化法第17条の適用を受ける特許出願
(71)【出願人】
【識別番号】000208891
【氏名又は名称】KDDI株式会社
(74)【代理人】
【識別番号】100106002
【弁理士】
【氏名又は名称】正林 真之
(74)【代理人】
【識別番号】100120891
【弁理士】
【氏名又は名称】林 一好
(72)【発明者】
【氏名】仲野 有登
(72)【発明者】
【氏名】福島 和英
(57)【要約】
【課題】メッセージの改ざんがより困難な認証コード生成装置、認証コード生成方法及び認証コード生成プログラムを提供すること。
【解決手段】認証コード生成装置1は、他の機器との間で複数のメッセージを順次送受信する場合に、送受信済みのメッセージに関するデータを保存する保存部111と、他の機器と新たなメッセージを送受信する際に、保存されている送受信済みのメッセージに関するデータを抽出する抽出部112と、新たなメッセージ、及び抽出された送受信済みのメッセージに関するデータを連結したデータ列を入力として、所定の演算により、新たなメッセージに対して付与するためのメッセージ認証コードを算出する演算部113と、を備える。
【選択図】
図1
【特許請求の範囲】
【請求項1】
他の機器との間で複数のメッセージを順次送受信する場合に、送受信済みのメッセージに関するデータを保存する保存部と、
前記他の機器と新たなメッセージを送受信する際に、保存されている前記送受信済みのメッセージに関するデータを抽出する抽出部と、
前記新たなメッセージ、及び抽出された前記送受信済みのメッセージに関するデータを連結したデータ列を入力として、所定の演算により、前記新たなメッセージに対して付与するためのメッセージ認証コードを算出する演算部と、を備える認証コード生成装置。
【請求項2】
前記送受信済みのメッセージに関するデータは、当該メッセージ自体である請求項1に記載の認証コード生成装置。
【請求項3】
前記送受信済みのメッセージに関するデータは、当該メッセージに付与された前記メッセージ認証コードである請求項1に記載の認証コード生成装置。
【請求項4】
前記抽出部は、保存されている前記送受信済みのメッセージに関するデータのうち、最新のものから所定数を超えない最大数を抽出する請求項1から請求項3のいずれかに記載の認証コード生成装置。
【請求項5】
他の機器との間で複数のメッセージを順次送受信する場合に、送受信済みのメッセージに関するデータを保存する保存ステップと、
前記他の機器と新たなメッセージを送受信する際に、保存されている前記送受信済みのメッセージに関するデータを抽出する抽出ステップと、
前記新たなメッセージ、及び抽出された前記送受信済みのメッセージに関するデータを連結したデータ列を入力として、所定の演算により、前記新たなメッセージに対して付与するためのメッセージ認証コードを算出する演算ステップと、をコンピュータが実行する認証コード生成方法。
【請求項6】
請求項1から請求項4のいずれかに記載の認証コード生成装置としてコンピュータを機能させるための認証コード生成プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、メッセージ認証コードを生成するための技術に関する。
【背景技術】
【0002】
従来、送信者と受信者とで鍵が共有されている場合、送受信されるメッセージの改ざんを検知してメッセージの完全性を認証する技術として、Message Authentication Code(MAC)が利用されている。
MACは、入力として共通鍵と認証すべきメッセージとを受け取り、所定の演算を実行することにより生成される。送信者がこのMACをメッセージに付加し、共通鍵を持つ受信者が同様に生成したMACと照合することによりメッセージの改ざんを検知できる。
例えば、非特許文献1では、鍵付きハッシュ関数を用いた生成アルゴリズムが提案されている。
【先行技術文献】
【非特許文献】
【0003】
【非特許文献1】Dang, Q. (2008), The Keyed-Hash Message Authentication Code (HMAC), Federal Information Processing Standards Publication 198-1, National Institute of Standards and Technology.
【発明の概要】
【発明が解決しようとする課題】
【0004】
ところで、MACの安全性は、MACのデータ長にも依存するため、求められる安全性のレベルに応じて適切な長さを決定する必要がある。しかしながら、プロトコルの制約等によって、十分な長さのMACを確保できない場合、安全なMAC生成手法を利用した場合でも、現実的な計算量でメッセージの改ざんが可能となる場合があった。
【0005】
本発明は、メッセージの改ざんがより困難な認証コード生成装置、認証コード生成方法及び認証コード生成プログラムを提供することを目的とする。
【課題を解決するための手段】
【0006】
本発明に係る認証コード生成装置は、他の機器との間で複数のメッセージを順次送受信する場合に、送受信済みのメッセージに関するデータを保存する保存部と、前記他の機器と新たなメッセージを送受信する際に、保存されている前記送受信済みのメッセージに関するデータを抽出する抽出部と、前記新たなメッセージ、及び抽出された前記送受信済みのメッセージに関するデータを連結したデータ列を入力として、所定の演算により、前記新たなメッセージに対して付与するためのメッセージ認証コードを算出する演算部と、を備える。
【0007】
前記送受信済みのメッセージに関するデータは、当該メッセージ自体であってもよい。
【0008】
前記送受信済みのメッセージに関するデータは、当該メッセージに付与された前記メッセージ認証コードであってもよい。
【0009】
前記抽出部は、保存されている前記送受信済みのメッセージに関するデータのうち、最新のものから所定数を超えない最大数を抽出してもよい。
【0010】
本発明に係る認証コード生成方法は、他の機器との間で複数のメッセージを順次送受信する場合に、送受信済みのメッセージに関するデータを保存する保存ステップと、前記他の機器と新たなメッセージを送受信する際に、保存されている前記送受信済みのメッセージに関するデータを抽出する抽出ステップと、前記新たなメッセージ、及び抽出された前記送受信済みのメッセージに関するデータを連結したデータ列を入力として、所定の演算により、前記新たなメッセージに対して付与するためのメッセージ認証コードを算出する演算ステップと、をコンピュータが実行する。
【0011】
本発明に係る認証コード生成プログラムは、前記認証コード生成装置としてコンピュータを機能させるためのものである。
【発明の効果】
【0012】
本発明によれば、メッセージの改ざんが困難となり、改ざんを適切に検知できる。
【図面の簡単な説明】
【0013】
【
図1】実施形態における認証コード生成装置の機能構成を示す図である。
【
図2】実施形態における機器間でのメッセージの送受信の手順を例示するシーケンス図である。
【発明を実施するための形態】
【0014】
以下、本発明の実施形態1~3を例示して説明する。
これらの実施形態では、機器間で送受信されるデータの完全性を改善するために、データ(メッセージ)それぞれに付与されるメッセージ認証コードの生成手法が従来と比べて改良されている。
【0015】
[第1実施形態]
図1は、本実施形態における認証コード生成装置1の機能構成を示す図である。
認証コード生成装置1は、制御部11及び記憶部12の他、各種の通信デバイス等を備えた情報処理装置(コンピュータ)であり、サーバ又はパーソナルコンピュータ等の汎用機器の他、携帯端末又はIoT機器等の小型ハードウェアであってもよい。
また、認証コード生成装置1は、メッセージを送受信する各機器に組み込まれるものとするが、通信接続された別のデバイスであってもよく、さらに、所定の暗号方式と組み合わせて認証付き暗号システムとして構成されてもよい。
【0016】
制御部11は、認証コード生成装置1の全体を制御する部分であり、記憶部12に記憶された各種プログラムを適宜読み出して実行することにより、本実施形態における各機能を実現する。制御部は、CPUであってよい。
記憶部12は、ハードウェア群を認証コード生成装置1として機能させるための各種プログラム、及び各種データ等の記憶領域であり、ROM、RAM、フラッシュメモリ又はハードディスクドライブ(HDD)等であってよい。
【0017】
なお、認証コード生成装置1は、記憶部12に格納された認証コード生成プログラムを制御部11が実行する構成であってもよいが、制御部11及び記憶部12は、認証コード生成装置1に専用のハードウェア回路として実装されてもよい。
【0018】
制御部11は、保存部111と、抽出部112と、演算部113とを備え、入力された共通鍵及び認証すべきメッセージに対して、生成したメッセージ認証コードを出力する。
【0019】
保存部111は、他の機器との間で複数のメッセージを順次送受信する場合に、送受信済みのメッセージに関するデータを記憶部12に保存する。
ここで、送受信済みのメッセージに関するデータは、メッセージ自体であってよいが、送受信の双方で共通の演算(ハッシュ演算等)が施されてもよい。
【0020】
抽出部112は、通信相手である他の機器と新たなメッセージを送受信する際に、記憶部12に保存されている送受信済みのメッセージに関するデータを抽出する。
【0021】
演算部113は、新たなメッセージ、及び抽出された送受信済みのメッセージに関するデータを連結したデータ列を、共通鍵と共に入力として、所定の演算により、新たなメッセージに対して付与するためのメッセージ認証コードを算出する。
【0022】
具体的には、演算部113は、送信者と受信者で継続してメッセージ(m1,m2,…)の送受信を行う場合に、過去のメッセージもMAC計算に含めることで、一つのメッセージmiを以下のように複数回のMAC計算に利用する。ここで、HK_MAC()は、ハッシュ関数、又はブロック暗号アルゴリズム等を用いて構成されるMAC生成アルゴリズムであり、送受信の双方で共通の秘密鍵K_MACが用いられる。
HK_MAC(m1) (1)
HK_MAC(m1∥m2) (2)
HK_MAC(m1∥m2∥m3) (3)
HK_MAC(m1∥m2∥m3∥m4) (4)
HK_MAC(m1∥m2∥m3∥m4∥m5) (5)
【0023】
図2は、本実施形態における機器間でのメッセージの送受信の手順を例示するシーケンス図である。
なお、機器A(Alice)と機器B(Bob)とで、MAC計算に利用する秘密鍵K_MACを事前に共有しているとする。
【0024】
まず、AliceからBobに対して最初のメッセージm1を送信する場合、Aliceは、m1に対するMACとしてHK_MAC(m1)を計算する。
次に、メッセージm1に対するBobからAliceへの応答をm2とすると、Bobは、m2に対するMACとしてHK_MAC(m1∥m2)を計算する。
これ以降の通信でm3,m4,…が送受信されるとして、各メッセージmiに付与するMACは、HK_MAC(m1∥m2∥…∥mi)と計算される。
【0025】
なお、ここでは、AliceとBobの2者が交互にメッセージを送信する場合を例示しているが、本実施形態は、任意の順番でのメッセージ送受信に適用できる。例えば、一方の機器(端末)から他方の機器(サーバ)へ複数のメッセージを順次送信する場合等においても全く同様である。
【0026】
[第2実施形態]
第1実施形態において、メッセージmiを送信する際に、それまでに送受信した全てのメッセージm1,…,mi-1をMAC計算に利用する場合、認証コード生成装置1は、全てのメッセージを保持しておく必要があった。
【0027】
第2実施形態では、認証コード生成装置1は、過去の一定期間(回数)のメッセージのみを利用する。
すなわち、抽出部112は、記憶部12に保存されている送受信済みのメッセージに関するデータのうち、最新のものから所定数を超えない最大数を抽出する。
【0028】
例えば、新たに送信するメッセージを含めて直近5回分のデータを利用するとすれば、演算部113は、新たなメッセージmi(i≧5)に付与するMACを、HK_MAC(mi-4∥mi-3∥…∥mi)と計算する。
【0029】
[第3実施形態]
第3実施形態では、保存部111が保存する送受信済みのメッセージに関するデータが第1及び第2実施形態と異なる。
すなわち、メッセージ自体ではなく、送受信されたメッセージに付与されていたMACが保存され、新たなメッセージに対するMACの生成に利用される。
【0030】
具体的には、演算部113は、新たなメッセージmi(i≧2)に付与するMACを、HK_MAC(HK_MAC(mi-1)∥mi)と計算する。
なお、ここでは、前回のメッセージに対して付与されたMACのみを新たなメッセージに連結しているが、これには限られず、第2実施形態と同様に、過去の複数回分のMACが連結されてもよい。
【0031】
前述の実施形態によれば、認証コード生成装置1は、他の機器との間で複数のメッセージを順次送受信する場合に、送受信済みのメッセージに関するデータを保存しておき、新たなメッセージを送受信する際に、保存されている送受信済みのメッセージに関するデータと、新たなメッセージとを連結したデータ列からMACを算出する。
したがって、認証コード生成装置1は、過去に送受信したメッセージを含んだ入力からMACを算出するため、複数のメッセージに対する改ざん検知を可能とする。また、一つのメッセージに対して複数回、MAC計算を実行することになり、MAC長を延長する場合に近い効果が得られる。
【0032】
すなわち、あるタイミングでメッセージを改ざんできたとすると、攻撃者は、後続のMACも変化させないように、以降のメッセージを改ざんし続ける必要があるため、改ざんが非常に困難となる。
【0033】
また、認証コード生成装置1は、送受信済みのメッセージ自体を保続して、新たなメッセージに付与するMACに利用してもよいが、メッセージ自体に代えて、生成されたMACを利用してもよい。
これにより、認証コード生成装置1は、通常はメッセージ自体よりも短いMACにより保存容量を節約しつつ、過去のメッセージに基づく新たなMACを生成できる。さらに、連結する過去のMACを一つのみとすることで、容量及び処理負荷を低減することができる。
また、認証コード生成装置1は、メッセージ自体を保存し連結する場合であっても、その数を制限することにより、容量及び処理負荷を低減することができる。
【0034】
なお、前述の実施形態により、例えばメッセージの改ざんが困難となり、送受信されるメッセージの完全性を向上できることから、国連が主導する持続可能な開発目標(SDGs)の目標9「レジリエントなインフラを整備し、持続可能な産業化を推進すると共に、イノベーションの拡大を図る」に貢献することが可能となる。
【0035】
以上、本発明の実施形態について説明したが、本発明は前述した実施形態に限るものではない。また、前述した実施形態に記載された効果は、本発明から生じる最も好適な効果を列挙したに過ぎず、本発明による効果は、実施形態に記載されたものに限定されるものではない。
【0036】
認証コード生成装置1による認証コード生成方法は、ソフトウェアにより実現される。ソフトウェアによって実現される場合には、このソフトウェアを構成するプログラムが、情報処理装置(コンピュータ)にインストールされる。また、これらのプログラムは、CD-ROMのようなリムーバブルメディアに記録されてユーザに配布されてもよいし、ネットワークを介してユーザのコンピュータにダウンロードされることにより配布されてもよい。さらに、これらのプログラムは、ダウンロードされることなくネットワークを介したWebサービスとしてユーザのコンピュータに提供されてもよい。
【符号の説明】
【0037】
1 認証コード生成装置
11 制御部
12 記憶部
111 保存部
112 抽出部
113 演算部