(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023152133
(43)【公開日】2023-10-16
(54)【発明の名称】暗号化装置、暗号化方法及び暗号化プログラム
(51)【国際特許分類】
H04L 9/18 20060101AFI20231005BHJP
【FI】
H04L9/18
【審査請求】未請求
【請求項の数】8
【出願形態】OL
(21)【出願番号】P 2022062092
(22)【出願日】2022-04-01
(71)【出願人】
【識別番号】000208891
【氏名又は名称】KDDI株式会社
(74)【代理人】
【識別番号】100106002
【弁理士】
【氏名又は名称】正林 真之
(74)【代理人】
【識別番号】100120891
【弁理士】
【氏名又は名称】林 一好
(72)【発明者】
【氏名】清本 晋作
(72)【発明者】
【氏名】福島 和英
(72)【発明者】
【氏名】仲野 有登
(57)【要約】
【課題】暗号化を高速に実行できる暗号化装置、暗号化方法及び暗号化プログラムを提供すること。
【解決手段】暗号化装置1は、認証付き暗号方式における暗号化アルゴリズムを並列に複数実行し、複数の平文からそれぞれ暗号文を生成する暗号化処理部11と、複数の暗号文を、さらに暗号化アルゴリズムに順次入力して得られた出力に基づいて、認証コード生成アルゴリズムにより認証コードを生成する認証コード生成部12と、を備える。
【選択図】
図2
【特許請求の範囲】
【請求項1】
認証付き暗号方式における暗号化アルゴリズムを並列に複数実行し、複数の平文からそれぞれ暗号文を生成する暗号化処理部と、
複数の前記暗号文を、さらに暗号化アルゴリズムに順次入力して得られた出力に基づいて、認証コード生成アルゴリズムにより認証コードを生成する認証コード生成部と、を備える暗号化装置。
【請求項2】
前記暗号化処理部は、
連続データを、所定ビットずつ前記平文として前記暗号化アルゴリズムに入力して並列に実行し、
さらに、前記暗号化アルゴリズムの実行結果とともに、後続の平文を所定ビットずつ前記暗号化アルゴリズムに入力して並列に実行することを繰り返す、請求項1に記載の暗号化装置。
【請求項3】
前記暗号化処理部は、前記暗号化アルゴリズムを並列に実行するための複数の鍵を、一つの鍵に基づく所定の計算式により算出する請求項1又は請求項2に記載の暗号化装置。
【請求項4】
前記暗号化処理部は、1番目の鍵に所定数を加算していくことで、前記複数の鍵を算出する請求項3に記載の暗号化装置。
【請求項5】
前記暗号化処理部は、前記所定数を素数とする請求項4に記載の暗号化装置。
【請求項6】
前記暗号方式は、Roccaである請求項1に記載の暗号化装置。
【請求項7】
認証付き暗号方式における暗号化アルゴリズムを並列に複数実行し、複数の平文からそれぞれ暗号文を生成する暗号化処理ステップと、
複数の前記暗号文を、さらに暗号化アルゴリズムに順次入力して得られた出力に基づいて、認証コード生成アルゴリズムにより認証コードを生成する認証コード生成ステップと、をコンピュータが実行する暗号化方法。
【請求項8】
請求項1に記載の暗号化装置としてコンピュータを機能させるための暗号化プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、暗号化装置、暗号化方法及び暗号化プログラムに関する。
【背景技術】
【0002】
従来、携帯端末のモバイル通信サービスでは、SIMカードに書き込まれた秘密鍵を用いて、ネットワークとの間で認証及び鍵共有を行った後、所定の暗号方式を用いて通信が行われている。認証の手順は標準化され、非特許文献1に規定されている。
【0003】
ところで、6G等の次世代移動通信サービスにおいては、通信速度の向上に伴い、安全性を担保するための通信データの暗号化を高速に実行することが求められている。
そこで、例えば、非特許文献2では、量子計算機による解読への耐性を持たせた鍵長に対応し、かつ、通信速度のボトルネックとならない処理速度を実現した認証付きストリーム暗号であるRoccaが提案されている。
【先行技術文献】
【非特許文献】
【0004】
【非特許文献1】3GPP TS 33.102, V16.0.0 (2020-07), 3rd Generation Partnership Project; Technical Specification Group Services and System Aspects; 3G Security; Security architecture (Release 16).
【非特許文献2】Kosei Sakamoto et al., "Rocca: An Efficient AES-based Encryption Scheme for Beyond 5G," IACR Transactions on Symmetric Cryptology, ISSN 2519-173X, Vol. 2021, No. 2, pp. 1-30.
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、処理の高速化はさらに望まれており、非特許文献2のRoccaを含む既存の暗号方式に対しても、より高速に実行できる実装方法が課題となっている。
【0006】
本発明は、暗号化を高速に実行できる暗号化装置、暗号化方法及び暗号化プログラムを提供することを目的とする。
【課題を解決するための手段】
【0007】
本発明に係る暗号化装置は、認証付き暗号方式における暗号化アルゴリズムを並列に複数実行し、複数の平文からそれぞれ暗号文を生成する暗号化処理部と、複数の前記暗号文を、さらに暗号化アルゴリズムに順次入力して得られた出力に基づいて、認証コード生成アルゴリズムにより認証コードを生成する認証コード生成部と、を備える。
【0008】
前記暗号化処理部は、連続データを、所定ビットずつ前記平文として前記暗号化アルゴリズムに入力して並列に実行し、さらに、前記暗号化アルゴリズムの実行結果とともに、後続の平文を所定ビットずつ前記暗号化アルゴリズムに入力して並列に実行することを繰り返してもよい。
【0009】
前記暗号化処理部は、前記暗号化アルゴリズムを並列に実行するための複数の鍵を、一つの鍵に基づく所定の計算式により算出してもよい。
【0010】
前記暗号化処理部は、1番目の鍵に所定数を加算していくことで、前記複数の鍵を算出してもよい。
【0011】
前記暗号化処理部は、前記所定数を素数としてもよい。
【0012】
前記暗号方式は、Roccaであってもよい。
【0013】
本発明に係る暗号化方法は、認証付き暗号方式における暗号化アルゴリズムを並列に複数実行し、複数の平文からそれぞれ暗号文を生成する暗号化処理ステップと、複数の前記暗号文を、さらに暗号化アルゴリズムに順次入力して得られた出力に基づいて、認証コード生成アルゴリズムにより認証コードを生成する認証コード生成ステップと、をコンピュータが実行する。
【0014】
本発明に係る暗号化プログラムは、前記暗号化装置としてコンピュータを機能させるためのものである。
【発明の効果】
【0015】
本発明によれば、暗号化を高速に実行できる。
【図面の簡単な説明】
【0016】
【
図1】実施形態における暗号方式であるRoccaの構成を示す図である。
【
図2】実施形態における暗号化装置の機能構成を示す図である。
【
図3】実施形態における暗号化方法の処理手順を例示する図である。
【
図4】実施形態における暗号化方法により、大規模データを連続して暗号化する場合の処理手順を例示する図である。
【発明を実施するための形態】
【0017】
以下、本発明の実施形態の一例について説明する。
本実施形態の暗号化方法は、使用する認証付き暗号方式の一例として、非特許文献2で提案されているRoccaを採用する。なお、暗号方式はこれに限られないが、各種の認証付き暗号方式に適用可能である。
【0018】
図1は、本実施形態における暗号方式であるRoccaの構成を示す図である。
認証付きストリーム暗号方式であるRoccaのアルゴリズムでは、暗号化のための2つの鍵K
0,K
1が用いられ、鍵長はそれぞれ128ビット、合わせて256ビットに固定されている。
【0019】
この2つの鍵の他、ノンス(N)及び各種パラメータ(Z,AD)をAESのラウンド関数に順次入力して内部状態を初期化した後、順次入力されるメッセージMに対して、ラウンド関数を用いる暗号化アルゴリズムにより暗号文Cが出力される。
さらに、メッセージの長さ|M|を用いて、ラウンド関数を20回実行する認証コード生成処理アルゴリズムにより、認証コードTが出力される。
【0020】
図2は、本実施形態における暗号化装置1の機能構成を示す図である。
暗号化装置1は、制御部10及び記憶部20の他、各種データの入出力デバイス及び通信デバイス等を備えた情報処理装置である。
【0021】
制御部10は、暗号化装置1の全体を制御する部分であり、記憶部20に記憶された各種プログラムを適宜読み出して実行することにより、本実施形態における各機能を実現する。制御部10は、CPUであってよい。
具体的には、制御部10は、暗号化処理部11と、認証コード生成部12とを備える。
【0022】
記憶部20は、ハードウェア群を暗号化装置1として機能させるための各種プログラム、及び各種データ等の記憶領域であり、ROM、RAM、フラッシュメモリ又はハードディスクドライブ(HDD)等であってよい。具体的には、記憶部20は、本実施形態の各機能を制御部10に実行させるためのプログラム(暗号化プログラム)を記憶し、さらに、各種パラメータ、内部状態等を記憶する。
【0023】
暗号化処理部11は、認証付き暗号方式(例えば、Rocca)における暗号化アルゴリズムを並列に複数実行し、複数の平文からそれぞれ暗号文を生成する。
また、暗号化処理部11は、大規模データを連続して暗号化する場合、連続データを、所定ビットずつ平文として暗号化アルゴリズムに入力して並列に実行する。そして、暗号化処理部11は、さらに、暗号化アルゴリズムの実行結果とともに、後続の平文を所定ビットずつ暗号化アルゴリズムに入力して並列に実行することを繰り返す。
【0024】
例えば、暗号化アルゴリズムに対する1回の入力がLビットのとき、N個の並列実行の場合、暗号化処理部11は、暗号化したいデータ(平文)をLビット毎に順に分割し、最初のL×NビットをN個の暗号化アルゴリズムにLビットずつ入力する。
同様に、暗号化処理部11は、その後のデータをLビットずつ暗号化アルゴリズムに入力し、L×Nビットを並列処理する。
【0025】
ここで、暗号化アルゴリズムを並列に実行するために、複数の鍵が必要となるが、暗号化処理部11は、一つの鍵に基づく所定の計算式により他の鍵を算出してもよい。
例えば、暗号化処理部11は、1番目の鍵に所定数(例えば、1)を加算していくことで複数の鍵を算出する。
【0026】
具体的には、1番目の鍵をKとしたとき、i(1≦i≦N)番目の鍵を、K+(i-1)×t mod xとして算出できる。なお、xは、鍵の取り得る値の数、すなわち鍵の最大値+1(鍵長が256ビットの場合、2256)である。
所定数tは自然数であるが、xと互いに素な値(例えば、素数)とすることで、鍵の重複を防ぐことができる。
【0027】
認証コード生成部12は、暗号化処理部11により生成された複数の暗号文を、さらに暗号化アルゴリズムに順次入力して得られた出力に基づいて、認証コード生成アルゴリズムにより認証コードを生成する。
【0028】
図3は、本実施形態における暗号化方法の処理手順を例示する図である。
この例では、4個(N=4)の暗号化処理(暗号化アルゴリズム)が並列に実行される。この場合、平文はLビット以下に4分割され、それぞれに対して並列に暗号化処理が実施され、暗号文が出力される。
【0029】
出力された4個の暗号文は、いずれかの暗号化処理(例えば1番目)に順次入力され、最終的な出力に基づいて、認証コード生成処理(認証コード生成アルゴリズム)が実行される。この結果、4個の暗号文に対して、単一の認証コードTが出力される。
【0030】
また、L×Nビットを超える長さの平文を処理する場合は、次のように、暗号化の並列処理が繰り返し実行される。
【0031】
図4は、本実施形態における暗号化方法により、大規模データを連続して暗号化する場合の処理手順を例示する図である。
ここでも、4個(N=4)の暗号化処理(暗号化アルゴリズム)が並列に実行されることとする。
【0032】
まず、連続データの最初のL×Nビットを平文1としてN個の暗号化処理にLビットずつ入力すると、N個の暗号文(暗号文1)が出力される。
続いて、これらの暗号文それぞれと共に、後続のL×Nビットを平文2としてN個の暗号化処理にLビットずつ入力すると、N個の暗号文2が出力される。
同様に、暗号化処理の並列実行を繰り返すことにより、大規模データが暗号化される。これにより、例えば、高速なストリーム暗号が実現される。
【0033】
このようにして全ての平文の情報を引き継いで生成された最後のN個の暗号文は、
図3と同様に、1番目の暗号化処理に順次入力され、認証コード生成処理によって認証コードが出力される。
なお、暗号方式としてRoccaを用いた場合、
図1に示した初期化後のラウンド関数Rが暗号化処理(暗号化アルゴリズム)に該当し、初期化は予め実施される。
【0034】
本実施形態によれば、暗号化装置1は、認証付き暗号方式における暗号化アルゴリズムを並列に複数実行し、複数の平文からそれぞれ暗号文を生成した後、これらの暗号文を、さらに暗号化アルゴリズムに順次入力して得られた出力に基づいて、認証コード生成アルゴリズムにより認証コードを生成する。
したがって、暗号化装置1は、暗号化処理の並列実行により、認証付き暗号方式の全体として安全に高速化を実現し、かつ、並列化により認証コードが複数生成されることを防ぐのでデータサイズを増加させない。
【0035】
また、暗号化装置1は、暗号化処理の並列実行を繰り返すことにより、大規模なデータに対する暗号化も可能とし、さらに、全ての平文の情報を引き継ぐことで単一の認証コードを生成できる。
【0036】
暗号化装置1は、暗号化処理の並列実行のために、複数の鍵を一つの鍵から所定の計算式により算出する。
したがって、暗号化装置1は、効率的に並列実行の準備を行えるため、処理負荷を低減できる。
【0037】
具体的には、暗号化装置1は、1番目の鍵に所定数を加算していくことで、容易に複数の鍵を算出できる。
このとき、算出された鍵が互いに重複しないことが必要となるが、所定数に比べて鍵空間が十分に広い場合、重複なく算出することができる。また、暗号化装置1は、所定数を、鍵の取り得る値の数xと互いに素な値、特に素数とすることで、容易に重複を防ぐことができる。
【0038】
暗号化装置1は、認証付き暗号方式としてRoccaを用いることができる。Roccaは、認証コード生成アルゴリズムが暗号文生成後に実行される構成のため、暗号化装置1は、暗号化アルゴリズムのみを容易に並列化でき、データサイズを増やすことなく高速に処理できる。
【0039】
また、暗号化装置1により生成された暗号文を復号する際にも、暗号化の際と同様に、暗号文をLビットずつに分割することで並列化が可能であり、高速な復号処理が実現される。
さらに、このとき分割されたN個の暗号文を用いて、前述のように暗号化アルゴリズム及び認証コード生成アルゴリズムにより生成される認証コードを照合することで、データの完全性が保証される。
【0040】
なお、これにより、例えば認証付き暗号をさらに高速に実装できることから、国連が主導する持続可能な開発目標(SDGs)の目標9「レジリエントなインフラを整備し、持続可能な産業化を推進するとともに、イノベーションの拡大を図る」に貢献することが可能となる。
【0041】
以上、本発明の実施形態について説明したが、本発明は前述した実施形態に限るものではない。また、前述した実施形態に記載された効果は、本発明から生じる最も好適な効果を列挙したに過ぎず、本発明による効果は、実施形態に記載されたものに限定されるものではない。
【0042】
暗号化装置1による暗号化方法は、ソフトウェアにより実現される。ソフトウェアによって実現される場合には、このソフトウェアを構成するプログラムが、情報処理装置(コンピュータ)にインストールされる。また、これらのプログラムは、CD-ROMのようなリムーバブルメディアに記録されてユーザに配布されてもよいし、ネットワークを介してユーザのコンピュータにダウンロードされることにより配布されてもよい。さらに、これらのプログラムは、ダウンロードされることなくネットワークを介したWebサービスとしてユーザのコンピュータに提供されてもよい。
【符号の説明】
【0043】
1 暗号化装置
10 制御部
11 暗号化処理部
12 認証コード生成部
20 記憶部