JP7700960B2 - 情報処理装置、方法及びプログラム - Google Patents
情報処理装置、方法及びプログラム Download PDFInfo
- Publication number
- JP7700960B2 JP7700960B2 JP2024515190A JP2024515190A JP7700960B2 JP 7700960 B2 JP7700960 B2 JP 7700960B2 JP 2024515190 A JP2024515190 A JP 2024515190A JP 2024515190 A JP2024515190 A JP 2024515190A JP 7700960 B2 JP7700960 B2 JP 7700960B2
- Authority
- JP
- Japan
- Prior art keywords
- function
- bits
- tag
- input
- encryption
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
Description
以下、第一の実施形態及び第二の実施形態で用いる用語や技術等について説明する。
情報セキュリティの重要な概念に機密性と真正性がある。機密性とは、保護したいデータに関する情報を、悪意を持った攻撃者が不正に得ることはできないという状態のことである。機密性を得るための技術としては、共通鍵暗号や公開鍵暗号等がある。また、真正性とは、保護したいデータが攻撃者により不正に改ざんされていないという状態、又は、攻撃者が不正にデータを捏造できないという状態のことである。真正性を得るための技術としては、メッセージ認証符号やデジタル署名等がある。
共通鍵暗号技術とは、利用者が共通の秘密鍵を用いるような暗号技術のことである。例えば、或る人が別の人にデータを共通鍵暗号技術で暗号化して送る際には、暗号化と復号で同一の秘密鍵を使う必要がある。共通鍵暗号技術は、RSA暗号等の公開鍵暗号技術と違って鍵(の一部)を公開することはできない。その反面、素因数分解問題等の代数的問題を用いる必要がなく、処理が高速だという長所がある。SSL/TLS等をはじめとした多くのデータ保護技術は、鍵(の一部)を公開できる公開鍵暗号技術と高速な共通鍵暗号技術の双方の長所を上手く組み合わせて実現されている。公開鍵暗号技術と共通鍵暗号技術は両者ともにセキュリティの基盤技術として欠かせない存在である。以下で説明する第一の実施形態及び第二の実施形態は共通鍵暗号技術に関するものである。
ブロック暗号とは、固定長(例:256ビット)の鍵Kと固定長(例:128ビット)の平文Mとを入力に取り、平文と同じ長さの暗号文Cを出力する暗号Eのことである。CがM及びKに対応する暗号文であることをC=EK(M)と書く。EKは暗号化関数とも呼ばれる。ブロック暗号は復号可能であることが要請される。すなわち、暗号文を元に戻す復号関数DKが存在し、DK(EK(M))=Mが任意の平文Mに対して成り立つ。また、DK(EK(C))=Cが任意の暗号文Cに対して成り立つ。ブロック暗号の代表例としては、AESやCamellia等が挙げられる。
本明細書で狭義の共通鍵暗号といえば、固定長の鍵Kと固定長の初期ベクトルIVと任意長の平文Mとを入力に取り、暗号文Cを出力する暗号Eのことであるものとする。ここで、IVは、原則として、暗号化処理を一度行うごとに代わる値である。IVは暗号化処理ごとにランダムに選ばれることもある。また、単一のIVが繰り返し使われることを許容する方式も存在する。ブロック暗号ではMが固定長(例:128ビット)であったが、狭義の共通鍵暗号ではMは任意長であり、例えば、Mは1ビットでもよいし、1ギガバイト等であってもよい。Cが(K,IV,M)に対応する暗号文であることをC=EncK(IV,M)と書く。EncKは暗号化関数とも呼ばれる。ブロック暗号と同様に、狭義の共通鍵暗号も復号可能である。すなわち、暗号文を元に戻す復号関数DecKが存在し、DecK(IV,EncK(IV,M))=Mが任意の平文Mに対して成り立つ。
メッセージ認証符号は、固定長の鍵Kと任意長のメッセージMとを入力に取り、タグと呼ばれる固定長の出力Tを出す関数(タグ生成関数)MACK(M)と、(K,M,T)を入力に取り、記号
AEADの暗号化関数Eは、狭義の共通鍵暗号が入力として取る(K,IV,M)に加えて、任意長の関連データAも入力に取る。また、この暗号化関数Eは、暗号文Cに加えて、タグTも出力する。(T,C)が(K,IV,A,M)に対応するタグ及び暗号文であることを(T,C)=EK(IV,A,M)と書く。狭義の共通鍵暗号と同様に、暗号文を元に戻る復号関数DKが存在し、DK(IV,A,EK(IV,A,M))=Mが任意の平文Mに対して成り立つ。
暗号学的ハッシュ関数(以下、単にハッシュ関数と呼ぶ)Hは、任意長のデータMを入力に取り、固定長(例:256ビット)のビット列H(M)を出力する。ハッシュ関数は基本的にその仕様が公開されており、誰でも計算ができる固定された関数である。特に、ハッシュ関数は鍵を入力に取らない。安全なハッシュ関数は、原像攻撃や衝突攻撃に対して耐性を持つことが求められる。安全かつ広く使われているハッシュ関数の例としては、SHA-2やSHA-3等が挙げられる。ハッシュ関数は鍵を入力に取らないが、慣例的に共通鍵暗号技術に分類される。
一般に、暗号技術は、ブラックボックス攻撃に対して安全性が担保されるように設計される。ブラックボックス攻撃とは、暗号化関数や復号関数に関して、入出力のペアを攻撃者が知ることができるという設定の攻撃のことである。例えば、攻撃対象がブロック暗号の場合、攻撃者は、任意の平文Mを選び、それに対する暗号文C:=EK(M)を知ることが許される(あるいは、攻撃者は、任意の暗号文Cに対する平文M:=DK(C)を知ることが許される。)。攻撃者は、複数の平文に対応する暗号文を学習した後、秘密鍵Kを暴いたり、本来完全にランダムに見えるべきであるはずの暗号文に何等かの偏りがあることを発見したりすることを目指す。
以下、第一の実施形態について説明する。
メッセージ認証符号やAEADは任意長の入力から短い固定長のタグTを生成する必要がある。特に、入力が非常に長いときは、その長いデータを何等かの方法で短いデータへ圧縮せねばならない。GCMやCCMといった(ホワイトボックス攻撃を考慮に入れていない)既存方式では、秘密鍵Kに依存した方法で圧縮を行っている。ブラックボックス攻撃者には圧縮の過程が見えないためGCMやCCMはブラックボックス攻撃に対して安全であるが、ホワイトボックス攻撃者はソフトウェアの中身が見えるため、圧縮の過程も見えてしまう。この「圧縮の過程が見える」ということが、メッセージ認証符号やAEADの安全性を破ることに繋がりかねない。
・記法
EKを入出力長がnビットのブロック暗号の暗号化関数、Hを出力長がm≧2nビットの暗号学的ハッシュ関数とする。また、(EncK',DecK')を狭義の共通鍵暗号とする。加えて、f1,f2:{0,1}m→{0,1}nとf3:{0,1}n×{0,1}n→{0,1}nを以下の設定例1又は設定例2のいずれかで定まる関数とする。
f1:mビットの入力xのうちの上位nビットを出力する。
f1:mビットの入力xのうち、まずその上位nビットをd1とする。このd1のうち更に下位(n-2)ビットをd1'として、01||d1'を出力する。
以上のような記法及び設定の下、上述したアイデアに基づいて、任意長のデータXを入力に取り、図5に示すAlgorithm4のようにしてタグT=MAC1K(X)を計算及び出力するタグ生成関数を考える。すなわち、任意長のデータXを入力に取り、h←H(X)を計算(1行目)した後、s1←EK(f1(h))及びs2←EK(f2(h))を計算(2行目)し、その後、T←EK(f3(s1,s2))を計算及び出力(3~4行目)するタグ生成関数MAC1Kを考える。このとき、ハッシュ関数Hが安全で、かつ、EKがホワイトボックス安全であれば、MAC1Kもホワイトボックス安全であることが期待できる。このように構成されるタグ生成関数MAC1Kを模式的に表すと図6のようになる。
図1に示すAlgorithm1において、入力の「メッセージMおよびタグT」を「データXおよびタグT」、1行目の「T'←MACK(M)」を「T'←MAC1K(X)」にそれぞれ変更すれば、ホワイトボックス安全なメッセージ認証符号の検証関数(これをVER1K(X,T)と表す。)が構成できる。
第一の実施形態に係る通信システム1の構成例を図7に示す。図7に示すように、第一の実施形態に係る通信システム1では、送信側の端末である通信端末10と、受信側の端末である通信端末20とがインターネット等の通信ネットワーク30を介して通信可能に接続されている。なお、通信端末10及び通信端末20としては、例えば、PC、スマートフォン、タブレット端末、ウェアラブルデバイス、車載器、電化製品等といった通信可能な各種情報処理装置が挙げられる。
以下では、タグ生成関数MAC1Kのアルゴリズム(図5に示すAlgorithm4)の変形例について説明する。
図5に示すAlgorithm4の1行目の「h←H(X)」を「h←H(EK(0n)||X)」に変更する。秘密鍵に依存する値であるEK(0n)を追加で結合させることにより、安全性の向上が期待できる。
図5に示すAlgorithm4の3行目の「T←EK(f3(s1,s2))」を
変形例1-1と変形例1-2とを組み合わせる。すなわち、図5に示すAlgorithm4の1行目の「h←H(X)」を「h←H(EK(0n)||X)」に変更すると共に、3行目の「T←EK(f3(s1,s2))」を「T←(s1とs2の排他的論理和)」と変更する。安全性をあまり損なわずに処理効率の向上が期待できる。
以下、第二の実施形態について説明する。第二の実施形態では、第一の実施形態で構成したメッセージ認証符号からAEADを構成し、このAEADにより機密性及び真正性を満たすデータ通信を可能にする通信システム1について説明する。
安全なハッシュ関数Hとホワイトボックス安全なブロック暗号の暗号化関数EKとに加えて、狭義の共通鍵暗号(EncK',DecK')であってホワイトボックス安全なものがあったとすれば、第一の実施形態で説明したMAC1Kと(EncK',DecK')からSIVを構成することで、ホワイトボックス安全なAEADを構成することができる。
第二の実施形態に係る通信システム1の構成例を図8に示す。図8に示すように、第二の実施形態に係る通信システム1では、送信側の端末である通信端末10と、受信側の端末である通信端末20とがインターネット等の通信ネットワーク30を介して通信可能に接続されている。なお、通信端末10及び通信端末20としては、例えば、PC、スマートフォン、タブレット端末、ウェアラブルデバイス、車載器、電化製品等といった通信可能な各種情報処理装置が挙げられる。
以下では、ホワイトボックス安全なSIVの暗号化関数E(K,K')及び復号関数D(K,K')のアルゴリズムの変形例について説明する。なお、SIVの暗号化関数E(K,K')のアルゴリズムは、図2に示すAlgorithm2の1行目の「T←MACK(pad(IV,A,M))」を「T←MAC1K(pad(IV,A,M))」としたものである。また、SIVの復号関数D(K,K')のアルゴリズムは、図4に示すAlgorithm3の2行目の「T'←MACK(pad(IV,A,M))」を「T'←MAC1K(pad(IV,A,M))」としたものである。
第一の実施形態の変形例1-1~変形例1-3のいずれかのアルゴリズムで実現されるMAC1Kを用いる。
K'=Kとする。これにより、保持しておくべき秘密鍵の長さが削減され、処理効率の向上が期待できる。
変形例2-1と変形例2-2とを組み合わせる。すなわち、第一の実施形態の変形例1-1~変形例1-3のいずれかのアルゴリズムで実現されるMAC1Kを用いると共に、K'=Kとする。
第一の実施形態及び第二の実施形態に係る通信端末10及び通信端末20は、例えば、図9に示すコンピュータ500のハードウェア構成で実現可能である。図9に示すコンピュータ500は、入力装置501と、表示装置502と、外部I/F503と、通信I/F504と、RAM(Random Access Memory)505と、ROM(Read Only Memory)506と、補助記憶装置507と、プロセッサ508とを有する。これらの各ハードウェアは、それぞれがバス509を介して通信可能に接続されている。
参考文献1:Andrey Bogdanov and Takanori Isobe. White-box cryptography revisited: Space-hard ciphers. In Indrajit Ray, Ninghui Li, and Christopher Kruegel, editors, Proceedings of the 22nd ACM SIGSAC Conference on Computer and Communications Security, Denver, CO, USA, October 12-16, 2015, pp. 1058-1069. ACM, 2015.
参考文献2:Andrey Bogdanov, Takanori Isobe, and Elmar Tischhauser. Towards practical whitebox cryptography: Optimizing efficiency and space hardness. In Jung Hee Cheon and Tsuyoshi Takagi, editors, Advances in Cryptology - ASIACRYPT 2016 - 22nd International Conference on the Theory and Application of Cryptology and Information Security, Hanoi, Vietnam, December 4-8, 2016, Proceedings, Part I, Vol. 10031 of Lecture Notes in Computer Science,
pp. 126-158, 2016.
10 通信端末
20 通信端末
30 通信ネットワーク
101 認証部
102 送信部
103 暗号化部
201 受信部
202 検証部
203 復号部
500 コンピュータ
501 入力装置
502 表示装置
503 外部I/F
503a 記録媒体
504 通信I/F
505 RAM
506 ROM
507 補助記憶装置
508 プロセッサ
509 バス
Claims (8)
- ホワイトボックス攻撃に対して安全なメッセージ認証符号のタグ生成関数MAC1K(ただし、Kは鍵)を用いて、データXの真正性を検証するためのタグT=MAC1K(X)を生成するように構成されているタグ生成部、を有し、
前記タグ生成関数MAC1Kは、
ホワイトボックス攻撃に対して安全で入出力長がnビットのブロック暗号の暗号化関数EKと、出力長がm≧2nビットの所定のハッシュ関数Hと、所定の関数f1,f2:{0,1}m→{0,1}n及びf3:{0,1}n×{0,1}n→{0,1}nとを用いて構成される、情報処理装置。 - 前記タグ生成関数MAC1Kは、
前記データXを入力に取り、
h←H(X)又はh←H(EK(0n)||X)(ただし、|| はビット結合)、
s1←EK(f1(h))、s2←EK(f2(h))、
T←EK(f3(s1,s2))又はT←(s1とs2の排他的論理和)、
により前記タグTを出力する、請求項1に記載の情報処理装置。 - 前記関数f1は、mビットの入力のうちの上位nビットを出力し、
前記関数f2は、mビットの入力のうちの上位2nビットを取り出した後、前記上位2nビットの下位nビットを出力し、
前記関数f3は、(x,y)∈{0,1}n×{0,1}nが入力されたとき、xとyの排他的論理和を出力する、請求項2に記載の情報処理装置。 - 前記関数f1は、mビットの入力のうちの上位nビットを取り出した後、前記上位nビットから下位(n-2)を表すd1を更に取り出し、01||d1を出力し、
前記関数f2は、mビットの入力のうちの上位2nビットを取り出した後、前記上位2nビットから下位(n-2)を表すd2を更に取り出し、10||d2を出力し、
前記関数f3は、(x,y)∈{0,1}n×{0,1}nが入力されたとき、xとyの排他的論理和の下位(n-2)ビットを表すs3を取り出し、11||s3を出力する、請求項2に記載の情報処理装置。 - ホワイトボックス攻撃に対して安全な認証付き暗号の暗号化関数E(K,K')(ただし、K'は鍵)を用いて、データMの暗号文Cを生成すると共に、前記タグTとして前記暗号文Cの真正性を検証するためのタグを前記タグ生成部により生成するように構成されている暗号化部、を有し、
前記暗号化関数E(K,K')は、
前記タグ生成関数MAC1Kと、ホワイトボックス攻撃に対して安全な共通鍵暗号の暗号化関数EncK'とを用いて構成される、請求項1乃至3の何れか一項に記載の情報処理装置。 - 前記暗号化関数E(K,K')は、
初期ベクトルIVと、関連データAと、前記データMとを入力に取り、
X=IV||A||M||len(M)(ただし、|| はビット結合、len(M)はMの長さを表すビット列)として前記タグ生成部によりタグT←MAC1K(X)を計算し、
C←EncK'(adj(T),M)(ただし、adj(T)は、Tの長さを、前記共通鍵暗号の初期ベクトルの長さに調整する所定の関数)を計算し、
前記タグTと前記暗号文Cとを出力する、請求項5に記載の情報処理装置。 - ホワイトボックス攻撃に対して安全なメッセージ認証符号のタグ生成関数MAC1K(ただし、Kは鍵)を用いて、データXの真正性を検証するためのタグT=MAC1K(X)を生成するように構成されているタグ生成手順、をコンピュータが実行し、
前記タグ生成関数MAC1Kは、
ホワイトボックス攻撃に対して安全で入出力長がnビットのブロック暗号の暗号化関数EKと、出力長がm≧2nビットの所定のハッシュ関数Hと、所定の関数f1,f2:{0,1}m→{0,1}n及びf3:{0,1}n×{0,1}n→{0,1}nとを用いて構成される、方法。 - ホワイトボックス攻撃に対して安全なメッセージ認証符号のタグ生成関数MAC1K(ただし、Kは鍵)を用いて、データXの真正性を検証するためのタグT=MAC1K(X)を生成するように構成されているタグ生成手順、をコンピュータに実行させ、
前記タグ生成関数MAC1Kは、
ホワイトボックス攻撃に対して安全で入出力長がnビットのブロック暗号の暗号化関数EKと、出力長がm≧2nビットの所定のハッシュ関数Hと、所定の関数f1,f2:{0,1}m→{0,1}n及びf3:{0,1}n×{0,1}n→{0,1}nとを用いて構成される、プログラム。
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/JP2022/017506 WO2023199379A1 (ja) | 2022-04-11 | 2022-04-11 | 情報処理装置、方法及びプログラム |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPWO2023199379A1 JPWO2023199379A1 (ja) | 2023-10-19 |
| JP7700960B2 true JP7700960B2 (ja) | 2025-07-01 |
Family
ID=88329215
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2024515190A Active JP7700960B2 (ja) | 2022-04-11 | 2022-04-11 | 情報処理装置、方法及びプログラム |
Country Status (2)
| Country | Link |
|---|---|
| JP (1) | JP7700960B2 (ja) |
| WO (1) | WO2023199379A1 (ja) |
Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20180359081A1 (en) | 2017-06-07 | 2018-12-13 | Nxp B.V. | Cmac computation using white-box implementations with external encodings |
| US20200099525A1 (en) | 2018-09-24 | 2020-03-26 | Nxp B.V. | Password authentication using white-box cryptography |
-
2022
- 2022-04-11 JP JP2024515190A patent/JP7700960B2/ja active Active
- 2022-04-11 WO PCT/JP2022/017506 patent/WO2023199379A1/ja not_active Ceased
Patent Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20180359081A1 (en) | 2017-06-07 | 2018-12-13 | Nxp B.V. | Cmac computation using white-box implementations with external encodings |
| US20200099525A1 (en) | 2018-09-24 | 2020-03-26 | Nxp B.V. | Password authentication using white-box cryptography |
Also Published As
| Publication number | Publication date |
|---|---|
| JPWO2023199379A1 (ja) | 2023-10-19 |
| WO2023199379A1 (ja) | 2023-10-19 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US12101415B2 (en) | Method of RSA signature or decryption protected using a homomorphic encryption | |
| US8358781B2 (en) | Nonlinear feedback mode for block ciphers | |
| US8300828B2 (en) | System and method for a derivation function for key per page | |
| US11063743B2 (en) | Method of RSA signature of decryption protected using assymetric multiplicative splitting | |
| US8744078B2 (en) | System and method for securing multiple data segments having different lengths using pattern keys having multiple different strengths | |
| CN111448779A (zh) | 用于混合秘密共享的系统、设备和方法 | |
| US11336425B1 (en) | Cryptographic machines characterized by a Finite Lab-Transform (FLT) | |
| JP2015104119A (ja) | 完全性検証を含むブロック暗号化方法およびブロック復号化方法 | |
| US12609809B2 (en) | Method and apparatus for activating a remote device | |
| US20210135851A1 (en) | Encryption processing system and encryption processing method | |
| US7894608B2 (en) | Secure approach to send data from one system to another | |
| CN116881865A (zh) | 一种许可证生成方法以及系统 | |
| JP5992651B2 (ja) | 暗号化方法、プログラム、および、システム | |
| Muhammed et al. | A hybrid approach to cloud data security using ChaCha20 and ECDH for secure encryption and key exchange | |
| Schulman | Entropy: An essential component of cryptographic security | |
| JP6631989B2 (ja) | 暗号化装置、制御方法、及びプログラム | |
| US12328397B2 (en) | Memory processing apparatus, memory verification apparatus, memory updating apparatus, memory protection system, method, and computer readable medium | |
| WO2023199379A1 (ja) | 情報処理装置、方法及びプログラム | |
| Mohammed et al. | Cryptography and network security in modern era | |
| Aghili | Improving security using blow fish algorithm on deduplication cloud storage | |
| JP7466791B2 (ja) | 暗号化装置、復号装置、復号可能検証装置、暗号システム、暗号化方法、及び暗号化プログラム | |
| WO2025215393A1 (en) | Improved encryption and authentication method with associated data | |
| JP2001222218A (ja) | 暗号化装置、方法、復号装置、方法、暗号システム及びプログラムを記憶した記憶媒体 | |
| JP2000244479A (ja) | 暗号化方法および装置、ならびに、復号化方法および装置 | |
| JP2017129779A (ja) | 暗号生成装置、データ伝送システム、暗号生成方法及びデータ伝送方法 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20240726 |
|
| TRDD | Decision of grant or rejection written | ||
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20250520 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20250602 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 7700960 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| S533 | Written request for registration of change of name |
Free format text: JAPANESE INTERMEDIATE CODE: R313533 |
|
| R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |



