IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ KDDI株式会社の特許一覧

特開2024-125008暗号化装置、暗号化方法、及び暗号化プログラム
<>
  • 特開-暗号化装置、暗号化方法、及び暗号化プログラム 図1
  • 特開-暗号化装置、暗号化方法、及び暗号化プログラム 図2
  • 特開-暗号化装置、暗号化方法、及び暗号化プログラム 図3
  • 特開-暗号化装置、暗号化方法、及び暗号化プログラム 図4
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024125008
(43)【公開日】2024-09-13
(54)【発明の名称】暗号化装置、暗号化方法、及び暗号化プログラム
(51)【国際特許分類】
   G09C 1/00 20060101AFI20240906BHJP
【FI】
G09C1/00 610A
【審査請求】未請求
【請求項の数】11
【出願形態】OL
(21)【出願番号】P 2023033059
(22)【出願日】2023-03-03
【国等の委託研究の成果に係る記載事項】(出願人による申告)令和4年度、総務省、「安全な無線通信サービスのための新世代暗号技術に関する研究開発」委託事業、産業技術力強化法第17条の適用を受ける特許出願
(71)【出願人】
【識別番号】000208891
【氏名又は名称】KDDI株式会社
(74)【代理人】
【識別番号】100106002
【弁理士】
【氏名又は名称】正林 真之
(74)【代理人】
【識別番号】100120891
【弁理士】
【氏名又は名称】林 一好
(72)【発明者】
【氏名】福島 和英
(72)【発明者】
【氏名】仲野 有登
(72)【発明者】
【氏名】清本 晋作
(57)【要約】
【課題】既存の128ビットブロック長を持つ暗号又は256ビットブロック長を持つ暗号を用いて、512ビットの派生鍵を導出し、大規模な量子コンピュータに対しても256ビットセキュリティ相当の安全性を担保することができる暗号化装置、暗号化方法、及び暗号化プログラムを提供すること。
【解決手段】暗号化装置は、512ビット長のデータを4つの128ビット長のデータに分割する分割部と、行方向及び列方向にFeistel構造により組み合わせられた複数の128ビット長のブロック暗号により、分割された前記4つの128ビット長のデータそれぞれを暗号化する暗号化部と、暗号化された前記4つの128ビット長のデータをつなげて暗号化された前記512ビット長のデータを出力する出力部と、を備える。
【選択図】図1
【特許請求の範囲】
【請求項1】
512ビット長のデータを4つの128ビット長のデータに分割する分割部と、
行方向及び列方向にFeistel構造により組み合わせられた複数の128ビット長のブロック暗号により、分割された前記4つの128ビット長のデータそれぞれを暗号化する暗号化部と、
暗号化された前記4つの128ビット長のデータをつなげて暗号化された前記512ビット長のデータを出力する出力部と、
を備える暗号化装置。
【請求項2】
前記複数の128ビット長のブロック暗号それぞれは、同じ鍵を入力する、請求項1に記載の暗号化装置。
【請求項3】
前記複数の128ビット長のブロック暗号それぞれは、互いに異なる鍵を入力する、請求項1に記載の暗号化装置。
【請求項4】
前記複数の128ビット長のブロック暗号それぞれは、複数のグループに分けられ、前記グループ毎に異なる鍵を入力する、請求項1に記載の暗号化装置。
【請求項5】
512ビット長のデータを2つの256ビット長のデータに分割する分割部と、
Feistel構造により組み合わせられた複数の256ビット長のブロック暗号により、分割された前記2つの256ビット長のデータそれぞれを暗号化する暗号化部と、
暗号化された前記2つの256ビット長のデータをつなげて暗号化された前記512ビット長のデータを出力する出力部と、
を備える暗号化装置。
【請求項6】
前記複数の256ビット長のブロック暗号それぞれは、同じ鍵を入力する、請求項5に記載の暗号化装置。
【請求項7】
前記複数の256ビット長のブロック暗号それぞれは、互いに異なる鍵を入力する、請求項5に記載の暗号化装置。
【請求項8】
前記複数の256ビット長のブロック暗号それぞれは、複数のグループに分けられ、前記グループ毎に異なる鍵を入力する、請求項5に記載の暗号化装置。
【請求項9】
コンピュータを暗号化装置として機能させるための暗号化方法であって、
512ビット長のデータを4つの128ビット長のデータに分割する分割ステップと、
行方向及び列方向にFeistel構造により組み合わせられた複数の128ビット長のブロック暗号により、分割された前記4つの128ビット長のデータそれぞれを暗号化する暗号化ステップと、
暗号化された前記4つの128ビット長のデータをつなげて暗号化された前記512ビット長のデータを出力する出力ステップと、
を備える暗号化装置。
【請求項10】
コンピュータを暗号化装置として機能させるための暗号化方法であって、
512ビット長のデータを2つの256ビット長のデータに分割する分割ステップと、
Feistel構造により組み合わせられた複数の256ビット長のブロック暗号により、分割された前記2つの256ビット長のデータそれぞれを暗号化する暗号化ステップと、
暗号化された前記2つの256ビット長のデータをつなげて暗号化された前記512ビット長のデータを出力する出力ステップと、
を備える暗号化装置。
【請求項11】
請求項1又は請求項5に記載の暗号化装置としてコンピュータを機能させるための暗号化プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、単一の鍵から複数の鍵を導出する暗号化装置、暗号化方法、及び暗号化プログラムに関する。
【背景技術】
【0002】
3GPP(3rd Generation Partnership Project)(登録商標)のセキュリティアーキテクチャでは、鍵導出アルゴリズムを用いて、単一の鍵から異なる目的に利用する複数の鍵を派生する。3G(3rd Generation)~5G(5th Generation)の通信システムにおいては、鍵導出アルゴリズムとして、MILENAGE及びTUAKが利用されている(例えば、非特許文献2、3参照)。現在、B5G(Beyond 5th Generation)/6G(6th Generation)向けの鍵導出アルゴリズムとして、256ビット版の鍵導出アルゴリズムが検討されている。
非特許文献1において、AES(Advanced Encryption Standard)-128並びにRijndael-256/256を用いることで、256ビットの派生鍵を導出できる鍵導出アルゴリズムを提案している。
【先行技術文献】
【非特許文献】
【0003】
【非特許文献1】ETSI Sage, “Choice of cryptographic algorithm in 256-bit Milenage,” 3GPP TSG-SA3 Meeting #102-e, S3-210095
【非特許文献2】3GPP, “Universal Mobile Telecommunications System (UMTS); LTE; 3G Security; Specification of the MILENAGE algorithm set: An example algorithm set for the 3GPP authentication and key generation functions f1, f1*, f2, f3, f4, f5 and f5*; Document 2: Algorithm specification (3GPP TS35.206 version 16.0.0 Release 16)”(https://www.etsi.org/deliver/etsi_ts/135200_135299/135206/16.00.00_60/ts_135206v160000p.pdf)
【非特許文献3】3GPP, “Universal Mobile Telecommunications System (UMTS); LTE; Specification of the TUAK algorithm set: A second example algorithm set for the 3GPP authentication and key generation functions f1, f1*, f2, f3, f4, f5 and f5*; Document 1: Algorithm specification (3GPP TS35.231 version 16.0.0 Release 16)” (https://www.etsi.org/deliver/etsi_ts/135200_135299/135231/16.00.00_60/ts_135231v160000p.pdf)
【発明の概要】
【発明が解決しようとする課題】
【0004】
上記非特許文献1に記載の技術においては、大規模な量子コンピュータに対しても、128ビットセキュリティ相当の安全性を担保できる。一方、非特許文献1に記載の技術では、量子コンピュータに対する256ビットセキュリティ相当の安全性は担保できない。
【0005】
本発明は、既存の128ビットブロック長を持つ暗号又は256ビットブロック長を持つ暗号を用いて、512ビットの派生鍵を導出し、大規模な量子コンピュータに対しても256ビットセキュリティ相当の安全性を担保することができる暗号化装置、暗号化方法、及び暗号化プログラムを提供することを目的とする。
【課題を解決するための手段】
【0006】
本発明に係る暗号化装置は、512ビット長のデータを4つの128ビット長のデータに分割する分割部と、行方向及び列方向にFeistel構造により組み合わせられた複数の128ビット長のブロック暗号により、分割された前記4つの128ビット長のデータそれぞれを暗号化する暗号化部と、暗号化された前記4つの128ビット長のデータをつなげて暗号化された前記512ビット長のデータを出力する出力部と、を備える。
【0007】
前記複数の128ビット長のブロック暗号それぞれは、同じ鍵を入力してもよい。
【0008】
前記複数の128ビット長のブロック暗号それぞれは、互いに異なる鍵を入力してもよい。
【0009】
前記複数の128ビット長のブロック暗号それぞれは、複数のグループに分けられ、前記グループ毎に異なる鍵を入力してもよい。
【0010】
本発明に係る暗号化装置は、512ビット長のデータを2つの256ビット長のデータに分割する分割部と、Feistel構造により組み合わせられた複数の256ビット長のブロック暗号により、分割された前記2つの256ビット長のデータそれぞれを暗号化する暗号化部と、暗号化された前記2つの256ビット長のデータをつなげて暗号化された前記512ビット長のデータを出力する出力部と、を備える。
【0011】
前記複数の256ビット長のブロック暗号それぞれは、同じ鍵を入力してもよい。
【0012】
前記複数の256ビット長のブロック暗号それぞれは、互いに異なる鍵を入力してもよい。
【0013】
前記複数の256ビット長のブロック暗号それぞれは、複数のグループに分けられ、前記グループ毎に異なる鍵を入力してもよい。
【0014】
本発明に係る暗号化方法は、コンピュータを暗号化装置として機能させるための暗号化方法であって、512ビット長のデータを4つの128ビット長のデータに分割する分割ステップと、行方向及び列方向にFeistel構造により組み合わせられた複数の128ビット長のブロック暗号により、分割された前記4つの128ビット長のデータそれぞれを暗号化する暗号化ステップと、暗号化された前記4つの128ビット長のデータをつなげて暗号化された前記512ビット長のデータを出力する出力ステップと、を備える。
【0015】
本発明に係る暗号化方法は、コンピュータを暗号化装置として機能させるための暗号化方法であって、512ビット長のデータを2つの256ビット長のデータに分割する分割ステップと、Feistel構造により組み合わせられた複数の256ビット長のブロック暗号により、分割された前記2つの256ビット長のデータそれぞれを暗号化する暗号化ステップと、暗号化された前記2つの256ビット長のデータをつなげて暗号化された前記512ビット長のデータを出力する出力ステップと、を備える。
【0016】
本発明に係る暗号化プログラムは、前記暗号化装置としてコンピュータを機能させるためのものである。
【発明の効果】
【0017】
本発明によれば、既存の128ビットブロック長を持つ暗号又は256ビットブロック長を持つ暗号を用いて、512ビットの派生鍵を導出し、大規模な量子コンピュータに対しても256ビットセキュリティ相当の安全性を担保することができる。
【図面の簡単な説明】
【0018】
図1】第1実施形態における暗号化装置の機能構成を示す図である。
図2】第1実施形態における暗号化部の機能構成の一例を示す図である。
図3】第2実施形態における暗号化装置の機能構成を示す図である。
図4】第2実施形態における暗号化部の機能構成の一例を示す図である。
【発明を実施するための形態】
【0019】
<第1実施形態>
まず、本実施形態の概略を説明する。本実施形態では、暗号化装置は、512ビット長のデータを4つの128ビット長のデータに分割し、行方向及び列方向にFeistel構造により組み合わせられた複数の128ビット長のブロック暗号により、分割した4つの128ビット長のデータそれぞれを暗号化し、暗号化した4つの128ビット長のデータをつなげて暗号化された512ビット長のデータを出力する。
これにより、本実施形態によれば、既存の128ビットブロック長を持つ暗号を用いて、512ビットの派生鍵を導出し、大規模な量子コンピュータに対しても256ビットセキュリティ相当の安全性を担保することができる。
以上が本実施形態の概略である。
【0020】
図1は、第1実施形態における暗号化装置1の機能構成を示す図である。
暗号化装置1は、制御部10及び記憶部20の他、各種の入出力インタフェース等を備えた情報処理装置(コンピュータ)である。
【0021】
制御部10は、暗号化装置1の全体を制御する部分であり、記憶部20に記憶された各種プログラムを適宜読み出して実行することにより、本実施形態における各機能を実現する。制御部10は、CPUであってよい。
【0022】
記憶部20は、ハードウェア群を暗号化装置1として機能させるための各種プログラム、及び各種データ等の記憶領域であり、ROM、RAM、フラッシュメモリ又はハードディスクドライブ(HDD)等であってよい。
具体的には、記憶部20は、本実施形態の各機能を制御部10に実行させるためのプログラム(暗号化プログラム)等を記憶する。
【0023】
制御部10は、暗号化プログラムを実行することにより、分割部11、暗号化部12、及び出力部13として機能する。
【0024】
分割部11は、例えば、外部から入力される512ビット長の平文のデータを4つの128ビット長のデータに分割する。分割部11は、分割した4つの128ビットのデータを後述する暗号化部12に出力する。
【0025】
暗号化部12は、行方向及び列方向にFeistel構造により組み合わせられた複数の128ビット長のブロック暗号により、分割された4つの128ビットのデータそれぞれを暗号化する。
図2は、暗号化部12の機能構成の一例を示す図である。
図2に示すように、暗号化部12は、例えば、行方向及び列方向にそれぞれにFeistel構造により組み合わせられた16個の128ビットブロック暗号121(1)~121(16)を有する。なお、128ビットブロック暗号121(1)~121(16)それぞれは、例えば、AES-128を利用するようにしてもよい。また、暗号化部12は、例えば、128ビットブロック暗号121(1)~121(16)それぞれに入力する鍵として、512ビットの鍵を互いに異なる4つの128ビットK、K、K、Kに分割する。暗号化部12は、図2の左から1列目のグループの4つの128ビットブロック暗号121(1)、121(5)、121(9)、121(13)それぞれに鍵Kを入力し、2列目のグループの4つの128ビットブロック暗号121(2)、121(6)、121(10)、121(14)それぞれに鍵Kを入力するようにしてもよい。また、暗号化部12は、3列目のグループの4つの128ビットブロック暗号121(3)、121(7)、121(11)、121(17)それぞれに鍵Kを入力し、4列目のグループの4つの128ビットブロック暗号121(4)、121(8)、121(12)、121(16)それぞれに鍵Kを入力するようにしてもよい。
暗号化部12は、暗号化した4つの128ビットのデータを後述する出力部13に出力する。
【0026】
出力部13は、暗号化された4つの128ビットのデータをつなげて暗号化された512ビットのデータを出力する。
【0027】
以上により、第1実施形態に係る暗号化装置1は、既存の128ビットブロック長を持つ暗号を用いて、512ビットの派生鍵を導出することができる。
また、暗号化装置1は、大規模な量子コンピュータに対しても256ビットセキュリティ相当の安全性を担保できる。
また、暗号化装置1は、AESをブロック暗号として利用する場合、AESのハードウェア命令を利用した高速な処理が期待できる。
以上、第1実施形態について説明した。
【0028】
<第2実施形態>
次に、第2実施形態について説明する。第1実施形態では、暗号化装置1は、512ビットのデータを4つの128ビットのデータに分割し、行方向及び列方向にFeistel構造により組み合わせられた複数の128ビット長のブロック暗号により、分割した4つの128ビット長のデータそれぞれを暗号化した。これに対して、第2実施形態では、暗号化装置1Aは、512ビットのデータを2つの256ビットのデータに分割し、Feistel構造により組み合わせられた複数の256ビット長のブロック暗号により、分割した2つの256ビット長のデータそれぞれを暗号化する点で、第1実施形態と相違する。
これにより、第2実施形態に係る暗号化装置1Aは、既存の256ビットブロック長を持つ暗号を用いて、512ビットの派生鍵を導出し、大規模な量子コンピュータに対しても256ビットセキュリティ相当の安全性を担保することができる。
以下、第2実施形態について説明する。
【0029】
図3は、第2実施形態における暗号化装置1Aの機能構成を示す図である。なお、図1の暗号化装置1の要素と同様の機能を有する要素については、同じ符号を付し、詳細な説明は省略する。
暗号化装置1Aは、制御部10a及び記憶部20の他、各種の入出力インタフェース等を備えた情報処理装置(コンピュータ)である。
記憶部20は、第1実施形態における記憶部20と同様の機能を有する。
【0030】
制御部10aは、暗号化プログラムを実行することにより、分割部11a、暗号化部12a、及び出力部13aとして機能する。
【0031】
分割部11aは、例えば、外部から入力される512ビット長の平文のデータを2つの256ビット長のデータに分割する。分割部11aは、分割した2つの256ビットのデータを後述する暗号化部12aに出力する。
【0032】
暗号化部12aは、Feistel構造により組み合わせられた複数の256ビット長のブロック暗号により、分割された2つの256ビットのデータそれぞれを暗号化する。
図4は、暗号化部12aの機能構成の一例を示す図である。
図4に示すように、暗号化部12aは、例えば、Feistel構造により組み合わせられた4個の256ビットブロック暗号122(1)~122(4)を有する。なお、256ビットブロック暗号122(1)~122(4)それぞれは、例えば、Rijndael-256/256を利用するようにしてもよい。また、暗号化部12aは、例えば、256ビットブロック暗号122(1)~122(4)それぞれに入力する鍵として、512ビットの鍵を互いに異なる2つの256ビットK、Kに分割する。暗号化部12aは、図4において上から1段目と3段目とのグループの256ビットブロック暗号122(1)、122(3)それぞれに鍵Kを入力し、2段目と4段目とのグループの256ビットブロック暗号122(2)、122(4)それぞれに鍵Kを入力するようにしてもよい。
暗号化部12aは、暗号化した2つの256ビットのデータを後述する出力部13aに出力する。
【0033】
出力部13aは、暗号化された2つの256ビットのデータをつなげて暗号化された512ビットのデータを出力する。
【0034】
以上により、第2実施形態に係る暗号化装置1Aは、既存の256ビットブロック長を持つ暗号を用いて、512ビットの派生鍵を導出することができる。
また、暗号化装置1Aは、大規模な量子コンピュータに対しても256ビットセキュリティ相当の安全性を担保できる。
以上、第2実施形態について説明した。
【0035】
なお、第1実施形態及び第2実施形態により、例えば、より安全な暗号技術を実現できることから、国連が主導する持続可能な開発目標(SDGs)の目標9「レジリエントなインフラを整備し、持続可能な産業化を推進するとともに、イノベーションの拡大を図る」に貢献することが可能となる。
【0036】
以上、本発明の実施形態について説明したが、本発明は上述した実施形態に限るものではない。また、上述した実施形態に記載された効果は、本発明から生じる最も好適な効果を列挙したに過ぎず、本発明による効果は、実施形態に記載されたものに限定されるものではない。
【0037】
<変形例1>
上述の第1実施形態及び第2実施形態では、暗号化装置1、1Aは、グループ毎に異なる鍵を入力したが、これに限定されない。
例えば、暗号化装置1は、128ビットブロック暗号121(1)~121(16)それぞれに同じ鍵を入力してもよく、互いに異なる鍵を入力してもよい。
また、暗号化装置1Aは、256ビットブロック暗号122(1)~122(4)それぞれに同じ鍵を入力してもよく、互いに異なる鍵を入力してもよい。
【0038】
<変形例2>
また例えば、第1実施形態の暗号化装置1は、行方向及び列方向それぞれに4つずつ並べた128ビットブロック暗号121(1)~121(16)を用い、第2実施形態の暗号化装置1Aは、4つの256ビットブロック暗号122(1)~122(4)を用いたが、これに限定されない。
例えば、暗号化装置1は、行方向と列方向とで異なる4つ以上の数の128ビットブロック暗号121を配置するようにしてもよい。
また、暗号化装置1Aは、5つ以上の256ビットブロック暗号122を配置するようにしてもよい。
【0039】
暗号化装置1、1Aによる暗号化方法は、ソフトウェアにより実現される。ソフトウェアによって実現される場合には、このソフトウェアを構成するプログラムが、情報処理装置(コンピュータ)にインストールされる。また、これらのプログラムは、CD-ROMのようなリムーバブルメディアに記録されてユーザに配布されてもよいし、ネットワークを介してユーザのコンピュータにダウンロードされることにより配布されてもよい。さらに、これらのプログラムは、ダウンロードされることなくネットワークを介したWebサービスとしてユーザのコンピュータに提供されてもよい。
【符号の説明】
【0040】
1、1A 暗号化装置
10、10a 制御部
11、11a 分割部
12、12a 暗号化部
121(1)~121(16) 128ビットブロック暗号
122(1)~122(4) 256ビットブロック暗号
13、13a 出力部
20 記憶部
図1
図2
図3
図4