(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024123822
(43)【公開日】2024-09-12
(54)【発明の名称】暗号化装置、復号装置、暗号化方法及び暗号化プログラム
(51)【国際特許分類】
H04L 9/22 20060101AFI20240905BHJP
【FI】
H04L9/22 200
【審査請求】未請求
【請求項の数】6
【出願形態】OL
(21)【出願番号】P 2023031548
(22)【出願日】2023-03-02
【国等の委託研究の成果に係る記載事項】(出願人による申告)令和4年度、総務省、「安全な無線通信サービスのための新世代暗号技術に関する研究開発」委託事業、産業技術力強化法第17条の適用を受ける特許出願
(71)【出願人】
【識別番号】000208891
【氏名又は名称】KDDI株式会社
(74)【代理人】
【識別番号】100106002
【弁理士】
【氏名又は名称】正林 真之
(74)【代理人】
【識別番号】100120891
【弁理士】
【氏名又は名称】林 一好
(72)【発明者】
【氏名】仲野 有登
(72)【発明者】
【氏名】福島 和英
(72)【発明者】
【氏名】清本 晋作
(57)【要約】
【課題】既存の暗号方式において、規定の鍵長よりも長い鍵に対応できる暗号化装置、復号装置、暗号化方法及び暗号化プログラムを提供すること。
【解決手段】暗号化装置1は、所定のストリーム暗号方式で用いる規定の鍵長よりも長い鍵の入力を受け付け、当該規定の鍵長を超える部分を分割し、当該ストリーム暗号方式の入力パラメータである定数として割り当てるパラメータ設定部111と、パラメータ設定部111により割り当てられた入力パラメータにより、ストリーム暗号方式の初期化を行う初期化処理部112と、ストリーム暗号方式に従って暗号化を実行する暗号化実行部113と、を備える。
【選択図】
図1
【特許請求の範囲】
【請求項1】
所定のストリーム暗号方式で用いる規定の鍵長よりも長い鍵の入力を受け付け、当該規定の鍵長を超える部分を分割し、当該ストリーム暗号方式の入力パラメータである定数として割り当てるパラメータ設定部と、
前記パラメータ設定部により割り当てられた入力パラメータにより、前記ストリーム暗号方式の初期化を行う初期化処理部と、
前記ストリーム暗号方式に従って暗号化を実行する暗号化実行部と、を備える暗号化装置。
【請求項2】
前記定数は、前記ストリーム暗号方式の内部状態の一部として初期化される値である請求項1に記載の暗号化装置。
【請求項3】
前記ストリーム暗号方式は、Rocca又はRocca-Sであり、
前記パラメータ設定部は、2つの128ビットの定数それぞれに対して、512ビットの鍵の一部を割り当てる請求項1に記載の暗号化装置。
【請求項4】
所定のストリーム暗号方式で用いる規定の鍵長よりも長い鍵の入力を受け付け、当該規定の鍵長を超える部分を分割し、当該ストリーム暗号方式の入力パラメータである定数として割り当てるパラメータ設定部と、
前記パラメータ設定部により割り当てられた入力パラメータにより、前記ストリーム暗号方式の初期化を行う初期化処理部と、
請求項1から請求項3のいずれかに記載の暗号化装置により出力された暗号文を、前記ストリーム暗号方式に従って復号する復号実行部と、を備える復号装置。
【請求項5】
所定のストリーム暗号方式で用いる規定の鍵長よりも長い鍵の入力を受け付け、当該規定の鍵長を超える部分を分割し、当該ストリーム暗号方式の入力パラメータである定数として割り当てるパラメータ設定ステップと、
前記パラメータ設定ステップにおいて割り当てられた入力パラメータにより、前記ストリーム暗号方式の初期化を行う初期化処理ステップと、
前記ストリーム暗号方式に従って暗号化を実行する暗号化実行ステップと、をコンピュータが実行する暗号化方法。
【請求項6】
請求項1から請求項3のいずれかに記載の暗号化装置としてコンピュータを機能させるための暗号化プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、暗号方式の安全性向上のための技術に関する。
【背景技術】
【0002】
従来、128ビットの鍵を用いた共通鍵暗号方式が広く利用されているが、古典計算機に比べて効率的な計算アルゴリズムを実行できる量子計算機に対しては、√(2128)程度の試行回数で解読され得る64ビット安全しか確保することができず、大規模量子計算機によって解読される可能性が指摘されている。
そこで、量子計算機に対しても128ビット安全を確保するため、256ビットの鍵長に対応した暗号化方式が提案されている(例えば、非特許文献1~3参照)。
【先行技術文献】
【非特許文献】
【0003】
【非特許文献1】Hongjun Wu and Bart Preneel, AEGIS: A Fast Authenticated Encryption Algorithm, Selected Areas in Cryptography -- SAC 2013.
【非特許文献2】Daniel J. Bernstein. ChaCha, a variant of Salsa20. In Workshop Record of SASC, volume 8, 2008.
【非特許文献3】K. Sakamoto, F. Liu, Y. Nakano, S. Kiyomoto and T. Isobe. Rocca: An Efficient AES-based Encryption Scheme for Beyond 5G. IACR Transactions on Symmetric Cryptology, 2021(2), 1-30.
【発明の概要】
【発明が解決しようとする課題】
【0004】
256ビットの鍵を用いることで、量子計算機に対しても128ビット安全を確保できるが、さらに高い安全性を実現するため、より長い鍵長をサポートする暗号方式が望まれている。
【0005】
本発明は、既存の暗号方式において、規定の鍵長よりも長い鍵に対応できる暗号化装置、復号装置、暗号化方法及び暗号化プログラムを提供することを目的とする。
【課題を解決するための手段】
【0006】
本発明に係る暗号化装置は、所定のストリーム暗号方式で用いる規定の鍵長よりも長い鍵の入力を受け付け、当該規定の鍵長を超える部分を分割し、当該ストリーム暗号方式の入力パラメータである定数として割り当てるパラメータ設定部と、前記パラメータ設定部により割り当てられた入力パラメータにより、前記ストリーム暗号方式の初期化を行う初期化処理部と、前記ストリーム暗号方式に従って暗号化を実行する暗号化実行部と、を備える。
【0007】
前記定数は、前記ストリーム暗号方式の内部状態の一部として初期化される値であってもよい。
【0008】
前記ストリーム暗号方式は、Rocca又はRocca-Sであり、前記パラメータ設定部は、2つの128ビットの定数それぞれに対して、512ビットの鍵の一部を割り当ててもよい。
【0009】
本発明に係る復号装置は、所定のストリーム暗号方式で用いる規定の鍵長よりも長い鍵の入力を受け付け、当該規定の鍵長を超える部分を分割し、当該ストリーム暗号方式の入力パラメータである定数として割り当てるパラメータ設定部と、前記パラメータ設定部により割り当てられた入力パラメータにより、前記ストリーム暗号方式の初期化を行う初期化処理部と、請求項1から請求項3のいずれかに記載の暗号化装置により出力された暗号文を、前記ストリーム暗号方式に従って復号する復号実行部と、を備える。
【0010】
本発明に係る暗号化方法は、所定のストリーム暗号方式で用いる規定の鍵長よりも長い鍵の入力を受け付け、当該規定の鍵長を超える部分を分割し、当該ストリーム暗号方式の入力パラメータである定数として割り当てるパラメータ設定ステップと、前記パラメータ設定ステップにおいて割り当てられた入力パラメータにより、前記ストリーム暗号方式の初期化を行う初期化処理ステップと、前記ストリーム暗号方式に従って暗号化を実行する暗号化実行ステップと、をコンピュータが実行する。
【0011】
本発明に係る暗号化プログラムは、前記暗号化装置としてコンピュータを機能させるためのものである。
【発明の効果】
【0012】
本発明によれば、既存の暗号方式において、規定の鍵長よりも長い鍵に対応できる。
【図面の簡単な説明】
【0013】
【
図1】実施形態における暗号化装置の機能構成を示す図である。
【
図2】実施形態におけるパラメータの設定方法を例示する図である。
【
図3】実施形態における復号装置の機能構成を示す図である。
【発明を実施するための形態】
【0014】
以下、本発明の実施形態の一例について説明する。
本実施形態の暗号化方法は、既存のストリーム暗号を対象とした改良手法である。
ストリーム暗号を用いてデータを暗号化する場合、第1のステップとして初期化を実施する必要がある。初期化時に暗号化プログラムに入力する値として、鍵、初期値、定数の3つがある。
本実施形態では、この3つの値のうち、定数に対して、本来の値に代えて鍵の一部を入力することで、暗号方式が本来サポートする鍵長よりも長い鍵に対応する。
【0015】
図1は、本実施形態における暗号化装置1の機能構成を示す図である。
暗号化装置1は、制御部11及び記憶部12の他、各種の通信デバイス等を備えた情報処理装置(コンピュータ)であり、サーバ又はパーソナルコンピュータ等の汎用機器の他、携帯端末又はIoT機器等の小型ハードウェアであってもよい。
【0016】
制御部11は、暗号化装置1の全体を制御する部分であり、記憶部12に記憶された各種プログラムを適宜読み出して実行することにより、本実施形態における各機能を実現する。制御部は、CPUであってよい。
記憶部12は、ハードウェア群を暗号化装置1として機能させるための各種プログラム、及び各種データ等の記憶領域であり、ROM、RAM、フラッシュメモリ又はハードディスクドライブ(HDD)等であってよい。
【0017】
なお、暗号化装置1は、記憶部12に格納された暗号化プログラムを制御部11が実行する構成であってもよいが、制御部11及び記憶部12は、暗号化装置1に専用のハードウェア回路として実装されてもよい。
【0018】
制御部11は、パラメータ設定部111と、初期化処理部112と、暗号化実行部113とを備える。
【0019】
パラメータ設定部111は、所定のストリーム暗号方式で用いる規定の鍵長よりも長い鍵の入力を受け付けると、この規定の鍵長を超える部分を分割し、ストリーム暗号方式の入力パラメータである定数として割り当てる。
この定数は、ストリーム暗号方式の内部状態の一部として初期化される値である。
【0020】
図2は、本実施形態におけるパラメータの設定方法を例示する図である。
この例では、規定の鍵長が256ビット、定数が256ビットの暗号化方式の場合を説明している。
【0021】
内部状態を初期化する際の入力パラメータは、鍵、初期値、定数の3つであるが、鍵として設定できるのは256ビットである。この暗号化方式を512ビットの鍵に対応させるため、パラメータ設定部111は、512ビットの鍵のうち、256ビットを分割し、定数として設定する。
なお、初期値は、初期化処理の度に異なる値が設定される。
【0022】
このように設定された鍵及び定数は、暗号化側(暗号化装置1)と復号側(復号装置2)とで共通の値であり、この結果、暗号方式(アルゴリズム)を改変することなく、暗号化及び復号が可能となる。
【0023】
初期化処理部112は、パラメータ設定部111により割り当てられた入力パラメータにより、ストリーム暗号方式の初期化を行う。
暗号化実行部113は、対象のストリーム暗号方式のアルゴリズムに従って暗号化を実行する。
【0024】
図3は、本実施形態における復号装置2の機能構成を示す図である。
復号装置2は、暗号化装置1により暗号化されたデータを、対応する復号アルゴリズムにより復号する装置である。
復号装置2は、暗号化装置1と同様に、制御部21及び記憶部22の他、各種の通信デバイス等を備えた情報処理装置(コンピュータ)であり、サーバ又はパーソナルコンピュータ等の汎用機器の他、携帯端末又はIoT機器等の小型ハードウェアであってもよい。
【0025】
制御部21は、復号装置2の全体を制御する部分であり、記憶部22に記憶された各種プログラムを適宜読み出して実行することにより、本実施形態における各機能を実現する。制御部は、CPUであってよい。
記憶部22は、ハードウェア群を復号装置2として機能させるための各種プログラム、及び各種データ等の記憶領域であり、ROM、RAM、フラッシュメモリ又はハードディスクドライブ(HDD)等であってよい。
【0026】
なお、復号装置2は、記憶部22に格納された復号プログラムを制御部21が実行する構成であってもよいが、制御部21及び記憶部22は、復号装置2に専用のハードウェア回路として実装されてもよい。
【0027】
制御部21は、パラメータ設定部211と、初期化処理部212と、復号実行部213とを備える。
【0028】
パラメータ設定部211及び初期化処理部212は、それぞれ暗号化装置1のパラメータ設定部111及び初期化処理部112と同一の機能を実行する。
すなわち、前述の通り、鍵及び定数は、暗号化側(暗号化装置1)と復号側(復号装置2)とで共有されて初期化が実行されることにより、暗号方式(アルゴリズム)を改変することなく、暗号化及び復号が可能となる。
【0029】
復号実行部213は、暗号化装置1の暗号化実行部113に対応する機能部であり、対象のストリーム暗号方式のアルゴリズムに従って、暗号化装置1により暗号化されたデータの復号を実行する。
【0030】
ここで、対象とするストリーム暗号方式を具体的に例示して、本実施形態により改良される初期化処理を説明する。
【0031】
[AEGIS]
非特許文献1に示されている規定の鍵長が256ビットの暗号方式AEGIS-256の場合、初期化では、6つの内部状態S(それぞれ128ビット)に対して、鍵K、初期値IV、定数constが次のように設定される。
S(-16,0)=K(256,0)+IV(256,0);
S(-16,1)=K(256,1)+IV(256,1);
S(-16,2)=const1;
S(-16,3)=const0;
S(-16,4)=K(256,0)+const0;
S(-16,5)=K(256,1)+const1
(ただし、+はビット単位の排他的論理和)
【0032】
K(256,0)及びK(256,1)は、それぞれ256ビットの鍵Kの前半128ビット及び後半128ビットである。
Const1及びconst0は、それぞれ定数constの前半128ビット及び後半128ビットである。
IV(256,0)及びIV(256,1)は、それぞれ初期値IVの前半128ビット及び後半128ビットである。
【0033】
ここで、パラメータ設定部111は、512ビットの鍵に対応するため、例えば、前半の256ビットをK(256,0)及びK(256,1)に128ビットずつ割り当て、後半の256ビットをconst1及びconst0に128ビットずつ割り当てる。
これにより、暗号化装置1は、256ビットの定数部分を鍵の一部として利用することで、256ビットを超える512ビットの鍵を用いたストリーム暗号を実現できる。
【0034】
[ChaCha]
非特許文献2に示されている規定の鍵長が256ビットの暗号方式ChaChaの場合、内部状態として各要素がそれぞれ32ビットの次の行列が定義される。
x0 x1 x2 x3
x4 x5 x6 x7
x8 x9 x10 x11
x12 x13 x14 x15
【0035】
初期化では、各要素に対して、鍵key0~key7(合計256ビット)、初期値counter0及びnonce0~nonce2、並びに定数const1~const3(合計128ビット)が次のように設定される。
const0 const1 const2 const3
key0 key1 key2 key3
key4 key5 key6 key7
counter0 nonce0 nonce1 nonce2
【0036】
ここで、パラメータ設定部111は、384ビットの鍵に対応するため、例えば、前半の256ビットをkey0~key7に32ビットずつ割り当て、後半の128ビットをconst1~const3に32ビットずつ割り当てる。
これにより、暗号化装置1は、128ビットの定数部分を鍵の一部として利用することで、256ビットを超える384ビットの鍵を用いたストリーム暗号を実現できる。
【0037】
[Rocca]
非特許文献3に示されている規定の鍵長が256ビットの暗号方式Roccaの場合、8つの内部状態S(それぞれ128ビット)に対して、鍵K0,K1(それぞれ128ビット)、初期値N、定数Z0,Z1(それぞれ128ビット)が次のように設定される。
S[0]=K1,
S[1]=N,
S[2]=Z0,
S[3]=Z1,
S[4]=N+K1,
S[5]=0,
S[6]=K0,
S[7]=0
(ただし、+はビット単位の排他的論理和)
【0038】
また、同様に規定の鍵長が256ビットの暗号方式Rocca-Sの場合、7つの内部状態S(それぞれ128ビット)に対して、鍵K0,K1(それぞれ128ビット)、初期値N、定数Z0,Z1(それぞれ128ビット)が次のように設定される。
S[0]=K1,
S[1]=N,
S[2]=Z0,
S[3]=K0,
S[4]=Z1,
S[5]=N+K1,
S[6]=0
(ただし、+はビット単位の排他的論理和)
【0039】
ここで、パラメータ設定部111は、512ビットの鍵に対応するため、例えば、前半の256ビットをK0,K1に128ビットずつ割り当て、後半の256ビットをZ0,Z1に128ビットずつ割り当てる。
これにより、暗号化装置1は、256ビットの定数部分を鍵の一部として利用することで、本来の設計である256ビットを超える512ビットの鍵を用いたストリーム暗号を実現できる。
この結果、既存の暗号方式に大きな変更を加えることなく、本来の設計よりも長い鍵長をサポートすることができ、より安全な暗号方式を構築できる。
【0040】
本実施形態によれば、暗号化装置1及び復号装置2は、ストリーム暗号方式で用いる規定の鍵長よりも長い鍵の入力を受け付け、この規定の鍵長を超える部分を分割し、暗号方式の入力パラメータである定数として割り当てる。
これにより、既存の暗号方式において、暗号アルゴリズムを改変することなく規定の鍵長よりも長い鍵に対応できる。
【0041】
入力パラメータの定数は、通常、暗号アルゴリズムの仕様として固定の値が指定されているが、この他の値であっても、暗号化する側(暗号化装置1)と復号する側(復号装置2)とで共有できていれば実行可能である。
したがって、暗号化装置1及び復号装置2は、初期化の際に入力される通常の定数の代わりに鍵の一部を入力することで、対応する鍵サイズを従来よりも拡大できる。
【0042】
なお、暗号方式によって定数のサイズは異なるが、例えば、前述の通り最大2倍又は1.5倍の長さまで鍵サイズを拡張することができる。このとき、入力される鍵に固定値をパディングすることにより、最大長に満たない鍵にも対応可能である。
また、本実施形態が改良の対象とするストリーム暗号方式の鍵長は、256ビットには限られず、従来広く利用されている128ビットの鍵を用いる暗号方式、あるいは64ビットや512ビット等の暗号方式に適用することで、それぞれの安全性を強化することができる。
【0043】
また、入力パラメータである定数は、ストリーム暗号方式の内部状態の一部として初期化される値であり、この値を鍵の一部に置き換えても暗号アルゴリズムに不都合が生じることはなく、既存のアルゴリズムを改変することなく、容易に安全性を向上させることができる。
例えば、ストリーム暗号方式として、Rocca又はRocca-Sを対象とすると、2つの128ビットの定数それぞれに対して、鍵の一部(256ビット)を割り当てることにより、最大で512ビットの鍵を用いることができ、256ビットの安全性が得られる。
【0044】
なお、本実施形態により、例えばストリーム暗号の安全性を向上できることから、国連が主導する持続可能な開発目標(SDGs)の目標9「レジリエントなインフラを整備し、持続可能な産業化を推進すると共に、イノベーションの拡大を図る」に貢献することが可能となる。
【0045】
以上、本発明の実施形態について説明したが、本発明は前述した実施形態に限るものではない。また、前述した実施形態に記載された効果は、本発明から生じる最も好適な効果を列挙したに過ぎず、本発明による効果は、実施形態に記載されたものに限定されるものではない。
【0046】
暗号化装置1及び復号装置2による暗号化方法及び復号方法は、ソフトウェアにより実現される。ソフトウェアによって実現される場合には、このソフトウェアを構成するプログラムが、情報処理装置(コンピュータ)にインストールされる。また、これらのプログラムは、CD-ROMのようなリムーバブルメディアに記録されてユーザに配布されてもよいし、ネットワークを介してユーザのコンピュータにダウンロードされることにより配布されてもよい。さらに、これらのプログラムは、ダウンロードされることなくネットワークを介したWebサービスとしてユーザのコンピュータに提供されてもよい。
【符号の説明】
【0047】
1 暗号化装置
2 復号装置
11 制御部
12 記憶部
21 制御部
22 記憶部
111 パラメータ設定部
112 初期化処理部
113 暗号化実行部
211 パラメータ設定部
212 初期化処理部
213 復号実行部