(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024034894
(43)【公開日】2024-03-13
(54)【発明の名称】暗号処理装置、暗号処理方法及び暗号処理プログラム
(51)【国際特許分類】
G09C 1/00 20060101AFI20240306BHJP
【FI】
G09C1/00 610A
【審査請求】未請求
【請求項の数】3
【出願形態】OL
(21)【出願番号】P 2022139450
(22)【出願日】2022-09-01
(71)【出願人】
【識別番号】000208891
【氏名又は名称】KDDI株式会社
(74)【代理人】
【識別番号】100106002
【弁理士】
【氏名又は名称】正林 真之
(74)【代理人】
【識別番号】100120891
【弁理士】
【氏名又は名称】林 一好
(72)【発明者】
【氏名】仲野 有登
(72)【発明者】
【氏名】福島 和英
(57)【要約】
【課題】暗号アルゴリズムにおける内部状態のサイズを削減した暗号処理装置、暗号処理方法、暗号処理プログラムを提供すること。
【解決手段】暗号処理装置1は、内部状態を構成するk・n個のブロックを並列に更新する暗号アルゴリズムに対して、当該k・n個のブロックをk(≧2)個のグループに等分したn個のブロックからなる内部状態を保持する状態保持部21と、暗号アルゴリズムにおけるk個のグループそれぞれの更新処理を、n個のブロックに対して並列に、かつ、所定の順序で直列に実行する更新処理部11と、を備え、更新処理部11は、k個のグループの間の入力及び出力を、直列に実行する更新処理のうち互いに異なるいずれかの段階で行う。
【選択図】
図1
【特許請求の範囲】
【請求項1】
内部状態を構成するk・n個のブロックを並列に更新する暗号アルゴリズムに対して、当該k・n個のブロックをk(≧2)個のグループに等分したn個のブロックからなる内部状態を保持する状態保持部と、
前記暗号アルゴリズムにおける前記k個のグループそれぞれの更新処理を、前記n個のブロックに対して並列に、かつ、所定の順序で直列に実行する更新処理部と、を備え、
前記更新処理部は、前記k個のグループの間の入力及び出力を、直列に実行する前記更新処理のうち互いに異なるいずれかの段階で行う暗号処理装置。
【請求項2】
内部状態を構成するk・n個のブロックを並列に更新する暗号アルゴリズムに対して、当該k・n個のブロックをk(≧2)個のグループに等分したn個のブロックからなる内部状態を保持したコンピュータが、
前記暗号アルゴリズムにおける前記k個のグループそれぞれの更新処理を、前記n個のブロックに対して並列に、かつ、所定の順序で直列に実行し、
前記k個のグループの間の入力及び出力を、直列に実行する前記更新処理のうち互いに異なるいずれかの段階で行う暗号処理方法。
【請求項3】
請求項1に記載の暗号処理装置としてコンピュータを機能させるための暗号処理プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、暗号の省スペースな実装方法に関する。
【背景技術】
【0002】
従来、より安全な暗号アルゴリズムを、より高速に処理できる実装方法が求められ、例えば非特許文献1では、複数のブロックを持つ内部状態を並列に処理する構成が提案されている。
【先行技術文献】
【非特許文献】
【0003】
【非特許文献1】Ivica Nikolic, Tiaoxin-346, CAESAR Competition, 2016, <http://competitions.cr.yp.to/round3/tiaoxinv21.pdf>
【発明の概要】
【発明が解決しようとする課題】
【0004】
内部状態の更新は、並列処理することにより、サーバ又はパーソナルコンピュータ等の計算リソースが十分な環境では高速に処理が可能である。一方、内部状態が大きい暗号アルゴリズムの並列処理を実現するためには、IoT機器等の制約の大きな小型ハードウェア向けの実装が困難であるという課題があった。
【0005】
本発明は、暗号アルゴリズムにおける内部状態のサイズを削減した暗号処理装置、暗号処理方法、暗号処理プログラムを提供することを目的とする。
【課題を解決するための手段】
【0006】
本発明に係る暗号処理装置は、内部状態を構成するk・n個のブロックを並列に更新する暗号アルゴリズムに対して、当該k・n個のブロックをk(≧2)個のグループに等分したn個のブロックからなる内部状態を保持する状態保持部と、前記暗号アルゴリズムにおける前記k個のグループそれぞれの更新処理を、前記n個のブロックに対して並列に、かつ、所定の順序で直列に実行する更新処理部と、を備え、前記更新処理部は、前記k個のグループの間の入力及び出力を、直列に実行する前記更新処理のうち互いに異なるいずれかの段階で行う。
【0007】
本発明に係る暗号処理方法は、内部状態を構成するk・n個のブロックを並列に更新する暗号アルゴリズムに対して、当該k・n個のブロックをk(≧2)個のグループに等分したn個のブロックからなる内部状態を保持したコンピュータが、前記暗号アルゴリズムにおける前記k個のグループそれぞれの更新処理を、前記n個のブロックに対して並列に、かつ、所定の順序で直列に実行し、前記k個のグループの間の入力及び出力を、直列に実行する前記更新処理のうち互いに異なるいずれかの段階で行う。
【0008】
本発明に係る暗号処理プログラムは、前記暗号処理装置としてコンピュータを機能させるためのものである。
【発明の効果】
【0009】
本発明によれば、暗号アルゴリズムにおける内部状態のサイズが削減される。
【図面の簡単な説明】
【0010】
【
図1】実施形態における暗号処理装置の機能構成を示すブロック図である。
【
図2】実施形態における内部状態の更新手順を例示する図である。
【
図3】実施形態において実装対象とする暗号アルゴリズムの内部状態の更新処理を例示する図である。
【
図4】実施形態における実装対象とする暗号アルゴリズムの内部状態を分割し、サイズを削減した様子を例示する図である。
【
図5】実施形態において実装される亜種アルゴリズムの内部状態の更新処理を例示する第1の図である。
【
図6】実施形態において実装される亜種アルゴリズムの内部状態の更新処理を例示する第2の図である。
【発明を実施するための形態】
【0011】
以下、本発明の実施形態の一例について説明する。
本実施形態の暗号処理装置は、内部状態のサイズが大きく、メモリサイズ又は回路規模が実装可能な(許容可能な)範囲に収まらないような暗号アルゴリズムを対象とし、この暗号アルゴリズムにおける内部状態のサイズを削減した亜種アルゴリズムとして実装されたものである。
なお、亜種アルゴリズムでは、内部状態のサイズが1/kに削減されるが、ここでは、一例として、内部状態のサイズを1/2とし、状態更新を2回に分けて実行する場合を示す。
【0012】
図1は、本実施形態における暗号処理装置1の機能構成を示すブロック図である。
暗号処理装置1は、制御部10及び記憶部20の他、各種の通信デバイス等を備えた情報処理装置(コンピュータ)であり、サーバ又はパーソナルコンピュータ等の汎用機器の他、IoT機器等の制約が比較的大きな小型ハードウェアであってもよい。
【0013】
また、暗号処理装置1は、記憶部20(メモリ)に格納された暗号処理プログラムを制御部10(例えば、CPU)が実行する構成であってもよいが、制御部10及び記憶部20は、暗号処理装置1に専用のハードウェア回路として実装されてもよい。
【0014】
記憶部20は、内部状態を構成するk・n(≧2)個のブロックを並列に更新する暗号アルゴリズムに対して、このk・n個のブロックをk(≧2)個のグループに等分したn個のブロックからなる内部状態を保持する状態保持部21を備える。
【0015】
制御部10は、暗号アルゴリズムにおけるk個のグループそれぞれの更新処理を、状態保持部21のn個のブロックに対して並列に、かつ、所定の順序で直列に実行する更新処理部11を備える。
また、更新処理部11は、k個のグループの間の入力及び出力を、直列に実行する更新処理のうち互いに異なるいずれかの段階で行う。
【0016】
図2は、本実施形態における内部状態の更新手順を例示する図である。
ここでは、元の暗号アルゴリズムにおいてS[0],…,S[2n-1]であった内部状態を半分に分け、S[0],…,S[n-1]を左半分、S[n],…,S[2n-1]を右半分とする。
【0017】
また、S[0],…,S[2n-1]に対する内部状態の更新処理も2回に分け、例えば1回目で左半分の更新を行い、2回目で右半分に対する更新を行う。
さらに、元の状態更新において、左半分と右半分にまたがる処理が定義されている場合、例えば右半分から左半分に入力されるデータAは1回目の状態更新(左半分の更新)で反映し、左半分から右半分に入力されるデータBは2回目の状態更新(右半分の更新)で反映する。
【0018】
ここで、元の暗号アルゴリズムにおける内部状態の左半分と右半分とで、どちらを先に更新するか、また、データA,Bのどちらを先に反映させるかによって、以下の4種類の構成が可能である。
【0019】
[構成手法1]
・左半分→右半分の順に状態更新を適用する。
・右半分から左半分に入力されるデータを1回目の状態更新に反映させる。
[構成手法2]
・左半分→右半分の順に状態更新を適用する。
・左半分から右半分に入力されるデータを1回目の状態更新に反映させる。
[構成手法3]
・右半分→左半分の順に状態更新を適用する。
・右半分から左半分に入力されるデータを1回目の状態更新に反映させる。
[構成手法4]
・右半分→左半分の順に状態更新を適用する。
・左半分から右半分に入力されるデータを1回目の状態更新に反映させる。
【0020】
図3は、本実施形態において実装対象とする暗号アルゴリズムの内部状態の更新処理を例示する図である。
ここでは、6つのブロック(0~5)を持つ内部状態を更新する処理を示している。
各ブロックは、例えば、128ビットの固定長であり、それぞれが並列に処理される。なお、図中のMはメッセージを、AはAES(Advanced Encryption Standard)のラウンド関数を示している。
【0021】
図4は、本実施形態における実装対象とする暗号アルゴリズムの内部状態を分割し、サイズを削減した様子を例示する図である。
ここでは、元の暗号アルゴリズムにおける内部状態を、左半分のグループと右半分のグループとに2分割(半分)にしており、各グループは、3つのブロック(0~2)からなる。
【0022】
図5は、本実施形態において実装される亜種アルゴリズムの内部状態の更新処理を例示する第1の図である。
この例では、前述の構成手法1を採用し、
図4の左半分のグループを更新した後、右半分のグループを更新するように直列に構成されている。
また、右半分から左半分に入力されるデータを1回目の状態更新で反映させ(1)、左半分から右半分に入力されるデータを2回目の状態更新で反映させると(2)、図のような亜種アルゴリズムが構成される。
【0023】
図6は、本実施形態において実装される亜種アルゴリズムの内部状態の更新処理を例示する第2の図である。
この例では、前述の構成手法2を採用し、
図4の左半分のグループを更新した後、右半分のグループを更新するように直列に構成されている。
また、左半分から右半分に入力されるデータを1回目の状態更新で反映させ(1)、右半分から左半分に入力されるデータを2回目の状態更新で反映させると(2)、図のような亜種アルゴリズムが構成される。
【0024】
これらの他、前述の構成手法3又は4が採用されてもよい。
また、内部状態の分割は半分には限られず、ブロックの数に応じて、例えばブロック数が非常に多く実装困難な場合に4分割又は8分割等にグループ化されてもよい。これらの場合にも、各ブロックの処理順は適宜設定されてよく、グループ間のデータの入出力を反映させる段階及び順序も適宜設定されてよい。
【0025】
本実施形態によれば、暗号処理装置1は、大きな内部状態を持つ暗号アルゴリズムに対して、この内部状態のサイズを1/k(例えば、1/2)に削減する。そして、暗号処理装置1は、元の暗号アルゴリズムでは1回の並列処理により実行される状態更新の手順をk回に分けて実行する亜種アルゴリズムにより、元の状態更新と同程度の安全性を実現する。
すなわち、内部状態のサイズ(メモリ量又は回路規模)が削減されることにより、ハードウェアの実装コストを削減することが可能となり、また、制約が大きい小型ハードウェアに対しても回路を実装することが可能となる。
【0026】
なお、これにより、例えば暗号の省スペースな実装が可能となることから、国連が主導する持続可能な開発目標(SDGs)の目標9「レジリエントなインフラを整備し、持続可能な産業化を推進すると共に、イノベーションの拡大を図る」に貢献することが可能となる。
【0027】
以上、本発明の実施形態について説明したが、本発明は前述した実施形態に限るものではない。また、前述した実施形態に記載された効果は、本発明から生じる最も好適な効果を列挙したに過ぎず、本発明による効果は、実施形態に記載されたものに限定されるものではない。
【0028】
暗号処理装置1による暗号処理方法は、ソフトウェア又はハードウェア回路により実現される。ソフトウェアによって実現される場合には、このソフトウェアを構成するプログラムが、情報処理装置(コンピュータ)にインストールされる。また、これらのプログラムは、CD-ROMのようなリムーバブルメディアに記録されてユーザに配布されてもよいし、ネットワークを介してユーザのコンピュータにダウンロードされることにより配布されてもよい。さらに、これらのプログラムは、ダウンロードされることなくネットワークを介したWebサービスとしてユーザのコンピュータに提供されてもよい。
【符号の説明】
【0029】
1 暗号処理装置
10 制御部
11 更新処理部
20 記憶部
21 状態保持部