JP6273226B2 - 暗号化システム、認証システム、暗号化装置、復号装置、認証子生成装置、検証装置、暗号化方法、認証方法 - Google Patents

暗号化システム、認証システム、暗号化装置、復号装置、認証子生成装置、検証装置、暗号化方法、認証方法 Download PDF

Info

Publication number
JP6273226B2
JP6273226B2 JP2015036192A JP2015036192A JP6273226B2 JP 6273226 B2 JP6273226 B2 JP 6273226B2 JP 2015036192 A JP2015036192 A JP 2015036192A JP 2015036192 A JP2015036192 A JP 2015036192A JP 6273226 B2 JP6273226 B2 JP 6273226B2
Authority
JP
Japan
Prior art keywords
bit
initial value
bits
tag
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
Application number
JP2015036192A
Other languages
English (en)
Other versions
JP2016157055A (ja
Inventor
悠 佐々木
悠 佐々木
幹 安田
幹 安田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2015036192A priority Critical patent/JP6273226B2/ja
Publication of JP2016157055A publication Critical patent/JP2016157055A/ja
Application granted granted Critical
Publication of JP6273226B2 publication Critical patent/JP6273226B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、追加認証データ付きの認証暗号を実行する暗号化システム、暗号化装置、復号装置、暗号化方法、メッセージなどの認証を実行する認証システム、認証子生成装置、検証装置、暗号化方法、認証方法に関する。
追加認証データ付認証暗号とは、メッセージMの秘匿および、Mと追加認証データAの認証(改ざん検知)を同時に行う共通鍵暗号プリミティブである。暗号化関数と復号関数の2つの関数から構成される。追加認証データ認証暗号では、受信者と送信者はあらかじめ秘密の鍵Kを共有しておく。送信者は、メッセージM、追加認証データAに加えて、暗号化関数を呼び出すたびに変化する値(ナンスと呼ばれる)Nを選択する。暗号化関数は、M,A,Nに対応する暗号文CとタグTを生成し、(C,T,A,N)の組を受信者に送る。受信者は(C,T,A,N)を受け取るが、この時点でこれらの値が悪意ある第三者によって改ざんされていないという保証がない。受信者は受け取った(C,T,A,N)と自分が保有するKを用いて復号関数を計算する。復号関数は、メッセージM’とタグT’を計算する。計算して得られたT’と受信したTが同じ値であれば、受け取った(C,T,A,N)は正しい値であると判断し、復号されたメッセージとしてM’を出力する。T≠T’であれば、復号に失敗した(データが改ざんされた)という結果を出力する。
非特許文献1に記載されているSPONGEWRAPは、認証暗号の暗号化関数と復号関数の構成法である。保証したい安全性レベル(ビット数)に比べて比較的大きなサイズの置換(bijective map)を用いて暗号化関数、復号関数を構成するという特徴を持つ。
<SPONGEWRAP>
SPONGEWRAPの暗号化関数は、ステートと呼ばれるbビットのデータを、bビットの置換f:{0,1}→{0,1}と入力データ(N,A,M)と鍵Kを用いて繰り返しアップデートを行いながらCとTを計算する。またbビットのステートは、レートと呼ばれるrビットと、キャパシティと呼ばれるc(=b−r)ビットに分割される。暗号化関数の計算の際、ステートの値は予め定められた初期値IVと呼ばれるbビットの値に初期化され(例えばIV=0)、fによりbビットの置換が行われ、ステートが更新される。暗号化関数の具体的な計算手順は以下の手順1から手順4で説明される通りである。図1に、SPONGEWRAPの暗号化での計算構造を示す。
<手順1>
鍵Kをr−1ビット毎に分割する。最終ブロックでは10*パディングと呼ばれるパディング処理を施す。具体的には、最終ブロックのビット長がr−1ビットより短い場合には、1ビットの値“1”を与し、その後r−1ビットになるまでビット“0”を付与する。最終ブロックのビット長が丁度r−1ビットの場合には、次のブロックの先頭のビットとして 1 ビットの値“1”を与し、その後r−1ビットになるまでビット“0”を付与する。
Kをr−1ビット毎に分割したそれぞれの値に、フレームビットと呼ばれる1ビットの値を連結し、rビットにする。具体的には、最初のブロックから最終ブロックの一つ手前のブロックまではフレームビットを“0”とし、最終ブロックのみフレームビットを“1”とする。bビットのステートのうちレート部分のrビットに対し、Kとフレームビットを連結したrビットの値との排他的論理和を計算し、置換fを計算する。fの出力を新たなステート値とする。この操作をKの最終ブロックが排他的論理和されるまで続ける。なお、この処理まではあらかじめ行っておくことができるので、手順1までを初期化と呼んでもよい。
<手順2>
ナンスNと追加認証データAを連結し、r−1ビット毎に分割する。最終ブロックに対しては10*パディングを施す。NとAの連結をr−1ビット毎に分割したそれぞれの値に、1ビットのフレームビットを連結し、rビットにする。具体的には、最初のブロックから最終ブロックの一つ手前のブロックまではフレームビットを“0”とし、最終ブロックのみフレームビットを“1”とする。bビットのステートのうち、レート部分のrビットに対し、NもしくはAとフレームビットを連結した rビットの値との排他的論理和を計算し、置換fを計算する。fの出力を新たなステート値とする。この操作をN,Aの最終ブロックが排他的論理和されるまで続ける。
<手順3>
メッセージMをr−1ビット毎に分割する。最終ブロックに対しては10*パディングを施す。Mの連結をr−1ビット毎に分割したそれぞれの値に、1ビットのフレームビットを連結し、rビットにする。具体的には、最初のブロックから最終ブロックの一つ手前のブロックまではフレームビットを“1”とし、最終ブロックのみフレームビットを“0”とする。
bビットのステートのうち、レート部分のrビットに対し、Mとフレームビットを連結した r ビットの値との排他的論理和を計算する。計算された rビットを暗号文のrビットとして出力する。ステートに対し置換fを計算し、fの出力を新たなステート値とする。この操作をMの最終ブロックが排他的論理和されるまで続ける。Mのサイズがrの倍数でない場合、最終ブロックは端数分のみを暗号文として出力し、ステートに排他的論理和する。
<手順4>
bビットのステートのうち、レート部分のrビットをタグのrビットとして出力する。ステートに対し置換fを計算し、fの出力を新たなステート値とする。この操作をタグのビット数に達するまで続ける。タグ長がrの倍数でない場合、最後のrビットの出力を必要な端数に切り捨ててタグの出力とする。
<復号>
SPONGEWRAPの復号関数は、暗号化関数とほぼ同様の計算を行う。図2に、SPONGEWRAPの復号での計算構造を示す。ステートはIVに初期化され、暗号化関数の手順1,2同じ処理を行う。手順3は暗号化関数と異なっており、bビットのステートのうち、レート部分のrビットとCのrビットの排他的論理和をとり、パディングやフレームビット付与の逆手順を通した値をM’のr−1ビットとする。bビットのステートのうち、レート部分のrビットをCのrビットに置き換え、置換fを計算する。fの出力を新たなステート値とする。この操作をCの最終ブロックが排他的論理和されるまで続ける。Cの最終ブロックのサイズがrの倍数でない場合、端数分のみをM’の生成とステートの置き換えに利用する。手順3終了後、暗号化関数の手順4と同じ処理を行い、タグT’を得る。計算したT’と受け取ったTを比較し、同じ値であればM’を復号されたメッセージとして出力する。一致しなかった場合は、復号に失敗したという結果を出力する。
<donkeySponge>
非特許文献2に示されたdonkeySpongeは、SPONGEWRAPの追加認証データ処理部分を利用してメッセージ認証コードを計算する方法である。図3にdonkeySpongeの計算構造を示す。メッセージ認証コードを生成する目的では、鍵Kおよび入力Aをbビットステートの全ビットに排他的論理和をしても安全性を損なうことが無く、効率的に入力データを処理することができる。
<monkeyDuplex>
非特許文献2に示されたmonkeyDuplexは、SPONGEWRAPのKとNの処理方法に工夫を加え、より効率的な計算を可能にする方法である。Kのcビットまでを、IVのcビットのキャパシティ部分とする。もしくは、Kのcビットまでと、別に定義されたcビット定数との排他的論理和をIVのcビットのキャパシティ部分とする。いずれの方法も、暗号化関数,復号関数で手順 1(Kの処理)におけるfの計算関数を少なくすることができるため、計算効率が上昇する。なお、Kがcビットに満たない場合、適切なパディングによりIVのcビットがすべて定義されるようにする。
また、Nのrビットまでを、IVのrビットのレート部分とする。もしくは、Nのrビットまでと、別に定義されたrビット定数との排他的論理和をIVのrビットのレート部分とする。手順2におけるfの計算関数を少なくすることができるため、計算効率が上昇する。なお、Nがrビットに満たない場合、適切なパディングによりIVのrビットがすべて定義されるようにする。monkeyDuplexによるステートの初期化およびK,Nの処理を図 4に示す。
<nonce stealing>
非特許文献3に示されたnonce stealingは、SPONGEWRAPとは異なり、ブロック暗号をベースに設計された追加認証データ付認証暗号で追加認証データAをより効率的に処理する方法である。ブロック暗号ベースの追加認証データ付認証暗号では、ナンスNを平文(初期値)としてブロック暗号を計算することが頻繁に行われる。この際、Nの長さは平文よりも小さいことが多い。nonce stealingではこの余剰スペースにAのデータを埋め込むことで、この後に処理されるA のビット数を少なくできる。
Guido Bertoni, Joan Daemen, Michael Peeters and Gilles Van Assche,"Duplexing the Sponge: Single-Pass Authenticated Encryption and Other Applications", SAC 2011, (eds.) Ali Miri and Serge Vaudenay, LNCS, Vol. 7118, pages 320-337, Springer, 2012. Guido Bertoni, Joan Daemen, Michael Peeters and Gilles Van Assche,"Permutation-based encryption, authentication and authenticated encryption", Workshop Records of DIAC 2012. Phillip Rogaway,"Authenticated-encryption with associated-data", ACM CCS 2002, (ed.) Vijayalakshmi Atluri, pages 98-107, ACM, 2002.
nonce stealingの概念をSPONGEWRAPに取り入れると、初期値IVの余剰スペースにAのデータを埋めることができる。従って、図4において、padの部分にAのデータを入れることで、この後に処理されるAのビット数を少なくできる。しかし、既存の追加認証データ付認証暗号技術では、最初の置換演算fを行う前にAを処理する手段がnonce stealingしかない。
本発明は、最初の置換演算fを行う前にAを処理する新たな手段を提供することで、処理スピードを向上させる。
本発明の暗号化システムは、追加認証データ付認証暗号のための暗号化装置と復号装置を有する。まず、Kを暗号化装置と復号装置の両方で共有する秘密鍵、Aを追加認証データ、Mをメッセージ、Cを暗号文、Tをタグ、K,A,Mをビット列、Nをすべてのビットが“0”のビット列を除くビット列、r,c,bを1以上の整数、b=r+c、fをbビットの置換演算、||をビット数を示す記号とする。また、ステートを、あらかじめ定められたrビットがレート部分、cビットがキャパシティ部分であるbビットのビット列とする。暗号化装置は、Nを選択し、レート部分にNを埋め込み、キャパシティ部分にKを埋め込むことでbビットの暗号化用初期値を生成し、前記暗号化用初期値のKを埋め込んだビットと追加認証データAの中の|K|ビットとの排他的論理和に、Kを埋め込んだビットを置き換えた上で、fにより置換した結果をステートとする暗号化用初期値設定部を備えることを特徴とする。暗号化装置は、追加認証データAのうち暗号化用初期値設定部で用いなかったビットで形成されるビット列A’を、追加認証データとして扱って暗号文CとタグTを求め、C,T,A,Nの組を出力する。復号装置は、レート部分にNを埋め込み、キャパシティ部分にKを埋め込むことでbビットの復号用初期値を生成し、前記復号用初期値のKを埋め込んだビットと追加認証データAの中の|K|ビットとの排他的論理和に、前記Kを埋め込んだビットを置き換えた上で、fにより置換した結果をステートとする復号用初期値設定部を備えることを特徴とする。復号装置は、追加認証データAのうち復号用初期値設定部で用いなかったビットのビット列A’を、追加認証データとして扱って、メッセージM’の復号とタグT’の生成と行い、タグTとタグT’とを比較する。
本発明の認証システムは、認証子生成装置と検証装置を有する。Kを認証子生成装置と検証装置の両方で共有する秘密鍵、Aを認証対象のデータ、Tをタグ、K,Aをビット列、bを1以上の整数、fをbビットの置換演算とする。ステートをbビットのビット列とする。認証子生成装置は、Kを埋め込むことでbビットの生成用初期値を生成し、生成用初期値とデータAの中のbビットとの排他的論理和をfにより置換した結果をステートとする生成用初期値設定部を備えることを特徴とする。認証子生成装置は、データAのうち生成用初期値設定部で用いなかったビットで形成されるビット列A’を認証対象のデータとして扱って、生成用初期値設定部が求めたステートを用いてタグTを求め、T,Aの組を出力する。検証装置は、Kを埋め込むことでbビットの検証用初期値を生成し、前記検証用初期値とデータAの中のbビットとの排他的論理和をfにより置換した結果をステートとする検証用初期値設定部を備えることを特徴とする。検証装置は、データAのうち検証用初期値設定部で用いなかったビットA’を認証対象のデータとして扱って、検証用初期値設定部が求めたステートを用いてタグT’の生成と行い、タグTとタグT’とを比較する。
排他的論理和の計算コストは、ビットの置換演算fの計算コストと比較すると無視できるほど小さい。そして、本発明の暗号化システムと認証システムによれば、初期化を行うとき(最初の置換演算fを行う前)に排他的論理和の計算で認証対象のデータの一部を用いるので、ビットの置換演算fの回数を少なくできる。したがって、処理スピードを向上できる。
SPONGEWRAPの暗号化での計算構造を示す図。 SPONGEWRAPの復号での計算構造を示す図。 donkeySpongeの計算構造を示す図。 monkeyDuplexによるステートの初期化およびK,Nの処理を示す図。 実施例1の暗号化システムの機能構成例を示す図。 実施例1の暗号化での計算構造の例を示す図。 実施例1の復号での計算構造の例を示す図。 実施例1の暗号化装置の処理フローを示す図。 実施例1の復号装置の処理フローを示す図。 実施例1変形例1の暗号化での計算構造の例を示す図。 実施例1変形例1の復号での計算構造の例を示す図。 実施例2の認証システムの機能構成例を示す図。 実施例2の認証子生成での計算構造の例を示す図。 実施例2の検証での計算構造の例を示す図。 実施例2の認証子生成装置の処理フローを示す図。 実施例2の検証装置の処理フローを示す図。
以下、本発明の実施の形態について、詳細に説明する。なお、同じ機能を有する構成部には同じ番号を付し、重複説明を省略する。
図5に実施例1の暗号化システムの機能構成例を示す。図6は実施例1の暗号化での計算構造の例を示す図、図7は実施例1の復号での計算構造の例を示す図である。また、図8は実施例1の暗号化装置の処理フロー、図9は実施例1の復号装置の処理フローを示す図である。実施例1の暗号化システムは、ネットワーク800を介して接続された暗号化装置100と復号装置200で構成される。まず、Kを暗号化装置100と復号装置200の両方で共有する秘密鍵、Aを追加認証データ、Mをメッセージ、Cを暗号文、Tをタグとする。K,A,M,C,T,Nはビット列で表現される。なお、Nはすべてのビットが“0”のビット列を除くビット列である。タグTはあらかじめビット数Lが定められている。r,c,b,P,Q,Sを1以上の整数、b=r+c、pを1以上P以下の整数、qを1以上Q以下の整数、Sをあらかじめ定めた1以上の整数、sを1以上S以下の整数、fをbビットの置換演算、||をビット数を示す記号とする。また、ステートを、あらかじめ定められたrビットがレート部分、cビットがキャパシティ部分であるbビットのビット列とする。
実施例1の暗号化装置100の特徴は初期値設定部110である。初期値設定部110は、Nを選択し、レート部分にNを埋め込み、キャパシティ部分にKを埋め込むことでbビットの初期値を生成する。そして、Kを埋め込んだビットを、初期値のKを埋め込んだビットと追加認証データAの中の|K|ビットとの排他的論理和に置き換えた上で、fにより置換した結果をステートとする。暗号化装置100のその他の構成部は従来と同じ構成もよいし、何らかの改良を施した構成でもよい。暗号化装置100は、追加認証データAのうち初期値設定部110で用いなかったビットで形成されるビット列A’を、追加認証データとして扱って暗号文CとタグTを求め、C,T,A,Nの組を出力する。「排他的論理和」はビット単位の排他的論理和であり、同じ位置のビット同士の排他的論理和を行う演算である。例えば、ビット列“10100”とビット列“00110”との排他的論理和の結果は“10010”である。
実施例1の復号装置200の特徴も初期値設定部210である。初期値設定部210は、レート部分にNを埋め込み、キャパシティ部分にKを埋め込むことでbビットの初期値を生成する。そして、Kを埋め込んだビットを、Kを埋め込んだビットと追加認証データAの中の|K|ビットとの排他的論理和に置き換えた上で、fにより置換した結果をステートとする。復号装置200のその他の構成部は従来と同じ構成もよいし、何らかの改良を施した構成でもよい。復号装置200は、追加認証データAのうち初期値設定部210で用いなかったビットのビット列A’を、追加認証データとして扱って、メッセージM’の復号とタグT’の生成と行い、タグTとタグT’とを比較する。
<暗号化装置>
図1に示した従来技術に上述の特徴を適用した例が図5,6,8に示された暗号化装置100である。図5に示した暗号化装置100は、初期値設定部110、追加認証データ分割部120、メッセージ分割部130、追加認証データ計算部140、暗号化部150、タグ計算部160、出力部190を備える。
初期値設定部110は、上述のように、Nを選択し、レート部分にNを埋め込み、キャパシティ部分にKを埋め込むことでbビットの初期値を生成する。そして、Kを埋め込んだビットを、初期値のKを埋め込んだビットと追加認証データAの中の|K|ビットとの排他的論理和に置き換えた上で、fにより置換した結果をステートとする(S110)。「埋め込む」とは、例えば、Nのビット数がrより小さいときはパディングによってrビットにした上でレート部分にすることを意味している。fはSPONGEWRAPで説明した置換と同じであり、あらかじめ暗号化装置100と復号装置200との間で定めておく。なお、nonce stealingの概念とも組み合わせてもよい。すなわち、さらに以下のような処理を行ってもよい。初期値設定部110は、レート部分にNを埋め込む処理では、|N|がrよりも小さいときには、追加認証データAの中の(r−|N|)ビットとNとをレート部分とし、キャパシティ部分にKを埋め込む処理では、|K|がcよりも小さいときには、追加認証データAの中の別の(c−|K|)ビットとKとをキャパシティ部分とし、排他的論理和の計算で用いる|K|ビットは、初期値の生成に用いていないビットとすればよい。この場合、「追加認証データAのうち初期値設定部110で用いなかったビットで形成されるビット列A’」とは、レート部分に使用された(r−|N|)ビット、キャパシティ部分に使用された(c−|K|)ビット、排他的論理和に使用された|K|ビット以外のビットで形成されるビット列である。図6では、110を付した点線で囲まれた部分が初期値設定部に相当する。
図6の例では、追加認証データ分割部120は、追加認証データとして扱われるビット列A’を、パディングを用いてrビットごとの追加認証データブロックa’,…,a’に分割する(S120)。パディングとしては、例えば10*パディングを用いればよい。また、rの整数倍になるようにパディングを行った上で分割してもよいし、rより少ないビット数ごとに分割した上でrビットになるようにパディングを行ってもよい。図6では、120を付した点線で囲まれた部分が追加認証データ分割部に相当する。
メッセージ分割部130は、メッセージMを、パディングを用いてrビットごとのメッセージブロックm,…,mに分割する(S130)。パディングとしては、例えば10*パディングを用いればよい。図6では、130を付した点線で囲まれた部分がメッセージ分割部に相当する。
追加認証データ計算部140、ステートのレート部分に対して追加認証データブロックa’との排他的論理和を計算し、さらにfにより置換した結果を新たなステートとする処理を、q=1からq=Qまで繰り返す(S140)。図6では、140を付した点線で囲まれた部分が追加認証データ計算部に相当する。
暗号化部150は、ステートのレート部分に対してメッセージブロックmとの排他的論理和を計算し、計算結果をrビットの暗号ブロックdとするとともに、ステートのレート部分を当該計算結果に置き換えた上でfにより置換した結果を新たなステートとする処理を、p=1からp=Pまで繰り返す。そして、暗号ブロックd,…,dの結合処理を用いて暗号文Cを求める(S150)。「結合処理を用いて暗号文Cを求める」とは、単に暗号ブロックd,…,dを結合して暗号文Cとすること、および、結合した上でパディング部分を取り除いて暗号文Cとすることを含み意味である。図6では、150を付した点線で囲まれた部分が暗号化部に相当する。
タグ計算部160は、S=1の場合はステートのレート部分からタグTを求める。S≧2の場合は、ステートのレート部分をタグブロックtとする。S≧2の場合はさらに、ステートをfにより置換した結果を新たなステートとし、レート部分をタグブロックtとする処理を、s=2からs=Sまで繰り返す。そして、タグブロックt,…,tを用いてタグTを求める(S160)。S=1の場合は、レート部分をそのままタグTとしてもよいし、レート部の中からビット数Lだけを切り出してタグTとしてもよい。S≧2の場合は、例えば、タグブロックt,…,tを結合した結果をタグTとしてもよいし、タグブロックt,…,tを結合した結果からビット数Lよりも多いビット分を切り捨てて(ビット数L分を切り出して)タグTとしてもよい。また、各タグブロックtから所定のビットを切り出した後、それらを結合してタグTとしてもよい。なお、Sは、r×SがタグTのビット数L以上となるようにあらかじめ定めておけばよい。図6では、160を付した点線で囲まれた部分がタグ計算部に相当する。出力部190は、C,T,A,Nの組を出力する(S190)。出力されたC,T,A,Nの組が復号装置200に送信される。
<復号装置>
図2に示した従来技術に上述の特徴を適用した例が図5,7,9に示された復号装置200である。図5に示した復号装置200は、初期値設定部210、追加認証データ分割部220、暗号文分割部230、追加認証データ計算部240、復号部250、タグ計算部260、検証部270、入力部290を備える。入力部290は、暗号化装置100が送信したC,T,A,Nの組を取得する(S290)。
初期値設定部210は、上述のように、レート部分にNを埋め込み、キャパシティ部分にKを埋め込むことでbビットの初期値を生成する。そして、Kを埋め込んだビットを、Kを埋め込んだビットと追加認証データAの中の|K|ビットとの排他的論理和に置き換えた上で、fにより置換した結果をステートとする(S210)。なお、nonce stealingの概念とも組み合わせてもよい。すなわち、さらに以下のような処理を行ってもよい。初期値設定部210は、レート部分にNを埋め込む処理では、|N|がrよりも小さいときには、追加認証データAの中の(r−|N|)ビットとNとをレート部分とし、キャパシティ部分にKを埋め込む処理では、|K|がcよりも小さいときには、追加認証データAの中の別の(c−|K|)ビットとKとをキャパシティ部分とし、排他的論理和の計算で用いる|K|ビットは、初期値の生成に用いていないビットとすればよい。この場合、「追加認証データAのうち初期値設定部210で用いなかったビットで形成されるビット列A’」とは、レート部分に使用された(r−|N|)ビット、キャパシティ部分に使用された(c−|K|)ビット、排他的論理和に使用された|K|ビット以外のビットで形成されるビット列である。図7では、210を付した点線で囲まれた部分が初期値設定部に相当する。
図7の例では、追加認証データ分割部220は、追加認証データとして扱われるビット列A’を、パディングを用いてrビットごとの追加認証データブロックa’,…,a’に分割する(S220)。図7では、220を付した点線で囲まれた部分が追加認証データ分割部に相当する。
暗号文分割部230は、暗号文Cを、rビットごとの暗号ブロックd,…,dに分割する(S230)。暗号文Cのビット数がrの整数倍でないときは、パディングによってrビットごとの暗号ブロックに分割すればよい。図7では、230を付した点線で囲まれた部分が暗号文分割部に相当する。
追加認証データ計算部240は、ステートのレート部分に対して追加認証データブロックa’との排他的論理和を計算し、さらにfにより置換した結果を新たなステートとする処理を、q=1からq=Qまで繰り返す(S240)。図7では、240を付した点線で囲まれた部分が追加認証データ計算部に相当する。
復号部250は、ステートのレート部分に対して暗号ブロックdとの排他的論理和を計算し、計算結果をrビットのメッセージブロックm’とするとともに、ステートのレート部分を暗号ブロックdに置き換えた上でfにより置換した結果を新たなステートとする処理を、p=1からp=Pまで繰り返す。ここでの「排他的論理和」もビット単位の排他的論理和であり、同じ位置のビット同士の排他的論理和を行う演算である。そして、メッセージブロックm’,…,m’からパディングで付加されたビットを取り除いた結合をしてメッセージM’とする(S250)。図7では、250を付した点線で囲まれた部分が復号部に相当する。
タグ計算部260は、S=1の場合はステートのレート部分からタグT’を求める。S≧2の場合は、ステートのレート部分をタグブロックt’とする。S≧2の場合はさらに、ステートをfにより置換した結果を新たなステートとし、レート部分をタグブロックt’とする処理を、s=2からs=Sまで繰り返す。そして、タグブロックt’,…,t’を用いてタグT’を求める(S260)。図7では、260を付した点線で囲まれた部分がタグ計算部に相当する。検証部270は、タグTとタグT’とを比較する(S270)。復号装置200は、T=T’のときはメッセージM’を復号されたメッセージとする。T≠T’のときは復号に失敗したという結果を出力する。
<効果>
排他的論理和の計算コストは、ビットの置換演算fの計算コストと比較すると無視できるほど小さい。そして、本発明の暗号化システムによれば、初期化を行うとき(最初の置換演算fを行う前)に排他的論理和の計算で認証対象のデータの一部を用いるので、ビットの置換演算fの回数を少なくできる。したがって、処理スピードを向上できる。
[変形例1]
実施例1では、図1,2に示した従来技術に本発明の特徴である初期値設定部を適用した例を示した。しかし、初期値設定部110,210以外の構成は、図1,2の構成に限定する必要はない。上述のように、暗号化装置100は、追加認証データAのうち初期値設定部110で用いなかったビットで形成されるビット列A’を、追加認証データとして扱って暗号文CとタグTを求め、C,T,A,Nの組を出力すればよい。また、復号装置200は、追加認証データAのうち初期値設定部210で用いなかったビットのビット列A’を、追加認証データとして扱って、メッセージM’の復号とタグT’の生成と行い、タグTとタグT’とを比較すればよい。
図10に本変形例の暗号化での計算構造の例を、図11に本変形例の復号での計算構造の例を示す。暗号化システムの機能構成例は図5と同じ、暗号化装置の処理フローは図8と同じ、復号装置の処理フローは図9と同じである。実施例1と処理の内容が異なるのは、追加認証データ分割部120、追加認証データ計算部140、暗号化部150、追加認証データ分割部220、追加認証データ計算部240、復号部250であり、他の構成部の処理は同じである。
図10の例では、追加認証データ分割部120は、追加認証データとして扱われるビット列A’を、10*1パディングを用いてbビットごとの追加認証データブロックa’,…,a’に分割する(S120)。10*1パディングは、最初と最後のビットを“1”とし、残りのビットを“0”とするパディングである。図10では、120を付した点線で囲まれた部分が追加認証データ分割部に相当する。
追加認証データ計算部140、ステート(bビット)に対して追加認証データブロックa’との排他的論理和を計算し、さらにfにより置換した結果を新たなステートとする処理を、q=1からq=Qまで繰り返す(S140)。図10では、140を付した点線で囲まれた部分が追加認証データ計算部に相当する。
暗号化部150は、次の(1)〜(3)の処理を行う(S150)。図10では、150を付した点線で囲まれた部分が暗号化部に相当する。
(1)ステートのレート部分に対してメッセージブロックmとの排他的論理和を計算し、計算結果をrビットの暗号ブロックdとするとともに、ステートのレート部分を当該計算結果に置き換えた上でfにより置換した結果を新たなステートとする処理を、p=1からp=P−1まで繰り返す。
(2)ステートのレート部分に対してメッセージブロックmとの排他的論理和を計算し、計算結果をrビットの暗号ブロックdとするともに、ステートのレート部分を当該計算結果に置き換え、キャパシティ部分のcビットを0〜2−1の整数からなる有限体として扱ってgによる乗算を行った上で、fにより置換した結果を新たなステートとする処理を行う。なお、gは0〜2−1の整数からなる有限体の元と0と1以外のあらかじめ定めた定数との有限体上での乗算である。
(3)暗号ブロックd,…,dの結合処理を用いて暗号文Cを求める。「結合処理を用いて暗号文Cを求める」とは、単に暗号ブロックd,…,dを結合して暗号文Cとすること、および、結合した上でパディング部分を取り除いて暗号文Cとすることを含み意味である。
図11の例では、追加認証データ分割部220は、追加認証データとして扱われるビット列A’を、10*1パディングを用いてbビットごとの追加認証データブロックa’,…,a’に分割する(S220)。図11では、220を付した点線で囲まれた部分が追加認証データ分割部に相当する。
追加認証データ計算部240は、ステート(bビット)に対して追加認証データブロックa’との排他的論理和を計算し、さらにfにより置換した結果を新たなステートとする処理を、q=1からq=Qまで繰り返す(S240)。図11では、240を付した点線で囲まれた部分が追加認証データ計算部に相当する。
復号部250は、次の(1)〜(3)の処理を行う(S250)。図11では、250を付した点線で囲まれた部分が復号部に相当する。
(1)ステートのレート部分に対して暗号ブロックdとの排他的論理和を計算し、計算結果をrビットのメッセージブロックm’とするとともに、ステートのレート部分を暗号ブロックdに置き換えた上でfにより置換した結果を新たなステートとする処理を、p=1からp=P−1まで繰り返す。
(2)ステートのレート部分に対して暗号ブロックdとの排他的論理和を計算し、計算結果をrビットのメッセージブロックm’とするともに、ステートのレート部分を暗号ブロックdに置き換え、キャパシティ部分のcビットを0〜2−1の整数からなる有限体として扱ってgによる乗算を行った上で、fにより置換した結果を新たなステートとする処理を行う。gは暗号化装置100で用いた有限体上での定数の乗算と同じである。
(3)メッセージブロックm’,…,m’からパディングで付加されたビットを取り除いた結合をしてメッセージM’とする。
このような構成でも、本発明の特徴である初期値設定部110,210を適用すれば、初期化を行うとき(最初の置換演算fを行う前)に排他的論理和の計算で認証対象のデータの一部を用いるので、ビットの置換演算fの回数を少なくできる。つまり、実施例1と同じ効果が得られる。
図12に実施例2の認証システムの機能構成例を示す。図13は実施例2の認証子生成での計算構造の例を示す図、図14は実施例2の検証での計算構造の例を示す図である。また、図15は実施例2の認証子生成装置の処理フロー、図16は実施例2の検証装置の処理フローを示す図である。実施例2の認証システムは、ネットワーク800を介して接続された認証子生成装置300と検証装置400で構成される。まず、Kを認証子生成装置300と検証装置400の両方で共有する秘密鍵、Aを認証対象のデータ、Tをタグとする。K,A,Tはビット列で表現される。タグTはあらかじめビット数Lが定められている。r,c,b,Q,Sを1以上の整数、b=r+c、qを1以上Q以下の整数、Sをあらかじめ定めた1以上の整数、sを1以上S以下の整数、fをbビットの置換演算、||をビット数を示す記号とする。また、ステートを、あらかじめ定められたrビットがレート部分、cビットがキャパシティ部分であるbビットのビット列とする。
実施例2の認証子生成装置300の特徴は初期値設定部310である。初期値設定部310は、Kを埋め込むことでbビットの初期値を生成し、初期値とデータAの中のbビットとの排他的論理和をfにより置換した結果をステートとする。認証子生成装置300は、データAのうち初期値設定部310で用いなかったビットで形成されるビット列A’を認証対象のデータとして扱って、初期値設定部が求めたステートを用いてタグTを求め、T,Aの組を出力する。
実施例2の検証装置400の特徴は初期値設定部410である。初期値設定部410は、Kを埋め込むことでbビットの初期値を生成し、初期値とデータAの中のbビットとの排他的論理和をfにより置換した結果をステートとする。検証装置400は、データAのうち初期値設定部410で用いなかったビットA’を認証対象のデータとして扱って、初期値設定部410が求めたステートを用いてタグT’の生成と行い、タグTとタグT’とを比較する。
<認証子生成装置>
図12に示した認証子生成装置300は、初期値設定部310、認証データ分割部320、認証データ計算部340、タグ計算部360、出力部390を備える。初期値設定部310は、上述のように、Kを埋め込むことでbビットの初期値を生成し、初期値とデータAの中のbビットとの排他的論理和をfにより置換した結果をステートとする(S310)。「埋め込む」とは、例えば、Kのビット数がbより小さいときはパディングによってbビットにすることを意味している。
認証データ分割部320は、認証対象のデータとして扱われるビット列A’を、パディングを用いてbビットごとの認証データブロックa’,…,a’に分割する(S320)。パディングとしては、例えば10*パディングを用いればよい。図13では、320を付した点線で囲まれた部分が追加認証データ分割部に相当する。
認証データ計算部340は、ステートに対して追加認証データブロックa’との排他的論理和を計算し、さらにfにより置換した結果を新たなステートとする処理を、q=1からq=Qまで繰り返す(S340)。図13では、340を付した点線で囲まれた部分が追加認証データ計算部に相当する。
タグ計算部360は、S=1の場合はステートのレート部分からタグTを求める。S≧2の場合は、ステートのレート部分をタグブロックtとする。S≧2の場合はさらに、ステートをfにより置換した結果を新たなステートとし、レート部分をタグブロックtとする処理を、s=2からs=Sまで繰り返す。そして、タグブロックt,…,tを用いてタグTを求める(S360)。S=1の場合は、レート部分をそのままタグTとしてもよいし、レート部の中からビット数Lだけを切り出してタグTとしてもよい。S≧2の場合は、例えば、タグブロックt,…,tを結合した結果をタグTとしてもよいし、タグブロックt,…,tを結合した結果からビット数Lよりも多いビット分を切り捨てて(ビット数L分を切り出して)タグTとしてもよい。また、各タグブロックtから所定のビットを切り出した後、それらを結合してタグTとしてもよい。なお、Sは、r×SがタグTのビット数L以上となるようにあらかじめ定めておけばよい。図13では、360を付した点線で囲まれた部分がタグ計算部に相当する。出力部390は、T,Aの組を出力する(S390)。出力されたT,Aの組が検証装置400に送信される。
<検証装置>
図12に示した検証装置400は、初期値設定部410、認証データ分割部420、認証データ計算部440、タグ計算部460、検証部470、入力部490を備える。入力部490は、認証子生成装置300が送信したT,Aの組を取得する(S490)。
初期値設定部410は、上述のように、Kを埋め込むことでbビットの初期値を生成し、初期値とデータAの中のbビットとの排他的論理和をfにより置換した結果をステートとする(S410)。図14では、410を付した点線で囲まれた部分が初期値設定部に相当する。
認証データ分割部420は、認証対象のデータとして扱われるビット列A’を、パディングを用いてbビットごとの認証データブロックa’,…,a’に分割する(S420)。図14では、420を付した点線で囲まれた部分が認証データ分割部に相当する。
認証データ計算部440は、ステートに対して認証データブロックa’との排他的論理和を計算し、さらにfにより置換した結果を新たなステートとする処理を、q=1からq=Qまで繰り返す(S440)。図14では、440を付した点線で囲まれた部分が認証データ計算部に相当する。
タグ計算部460は、S=1の場合はステートのレート部分からタグT’を求める。S≧2の場合は、ステートのレート部分をタグブロックt’とする。S≧2の場合はさらに、ステートをfにより置換した結果を新たなステートとし、レート部分をタグブロックt’とする処理を、s=2からs=Sまで繰り返す。そして、タグブロックt’,…,t’を用いてタグT’を求める(S460)。図14では、460を付した点線で囲まれた部分がタグ計算部に相当する。検証部470は、タグTとタグT’とを比較する(S470)。T=T’のときは認証子が正しいこと示す情報を出力する。T≠T’のときは認証に失敗したという結果を出力する。
<効果>
本発明の認証システムによれば、初期化を行うとき(最初の置換演算fを行う前)に排他的論理和の計算で認証対象のデータの一部を用いるので、ビットの置換演算fの回数を少なくできる。したがって、処理スピードを向上できる。
[プログラム、記録媒体]
上述の各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。その他、本発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。
また、上述の構成をコンピュータによって実現する場合、各装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。
また、このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD−ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。そして、処理の実行時、このコンピュータは、自己の記録媒体に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP(Application Service Provider)型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの(コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等)を含むものとする。
また、この形態では、コンピュータ上で所定のプログラムを実行させることにより、本装置を構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。
100 暗号化装置
110,210,310,410 初期値設定部
120,220 追加認証データ分割部 130 メッセージ分割部
140,240 追加認証データ計算部 150 暗号化部
160,260,360,460 タグ計算部
190,390 出力部 200 復号装置
230 暗号文分割部 250 復号部
270,470 検証部 290,490 入力部
300 認証子生成装置 320,420 認証データ分割部
340,440 認証データ計算部 400 検証装置
800 ネットワーク

Claims (8)

  1. 追加認証データ付認証暗号のための暗号化装置と復号装置を有する暗号化システムであって、
    Kを前記暗号化装置と前記復号装置の両方で共有する秘密鍵、Aを追加認証データ、Mをメッセージ、Cを暗号文、Tをタグ、K,A,Mをビット列、Nをすべてのビットが“0”のビット列を除くビット列、r,c,bを1以上の整数、b=r+c、fをbビットの置換演算、||をビット数を示す記号とし、
    ステートを、あらかじめ定められたrビットがレート部分、cビットがキャパシティ部分であるbビットのビット列とし、
    前記暗号化装置は、
    Nを選択し、レート部分にNを埋め込み、キャパシティ部分にKを埋め込むことでbビットの暗号化用初期値を生成し、前記暗号化用初期値のKを埋め込んだビットと追加認証データAの中の|K|ビットとの排他的論理和に、前記Kを埋め込んだビットを置き換えた上で、fにより置換した結果をステートとする暗号化用初期値設定部を備え、
    追加認証データAのうち前記暗号化用初期値設定部で用いなかったビットで形成されるビット列A’を、追加認証データとして扱って暗号文CとタグTを求め、C,T,A,Nの組を出力し、
    前記復号装置は、
    レート部分にNを埋め込み、キャパシティ部分にKを埋め込むことでbビットの復号用初期値を生成し、前記復号用初期値のKを埋め込んだビットと追加認証データAの中の|K|ビットとの排他的論理和に、前記Kを埋め込んだビットを置き換えた上で、fにより置換した結果をステートとする復号用初期値設定部を備え、
    追加認証データAのうち前記復号用初期値設定部で用いなかったビットのビット列A’を、追加認証データとして扱って、メッセージM’の復号とタグT’の生成と行い、タグTとタグT’とを比較する
    暗号化システム。
  2. 認証子生成装置と検証装置を有する認証システムであって、
    Kを前記認証子生成装置と前記検証装置の両方で共有する秘密鍵、Aを認証対象のデータ、Tをタグ、K,Aをビット列、bを1以上の整数、fをbビットの置換演算とし、
    ステートをbビットのビット列とし、
    前記認証子生成装置は、
    Kを埋め込むことでbビットの生成用初期値を生成し、前記生成用初期値とデータAの中のbビットとの排他的論理和をfにより置換した結果をステートとする生成用初期値設定部を備え、
    データAのうち前記生成用初期値設定部で用いなかったビットで形成されるビット列A’を認証対象のデータとして扱って、前記生成用初期値設定部が求めたステートを用いてタグTを求め、T,Aの組を出力し、
    前記検証装置は、
    Kを埋め込むことでbビットの検証用初期値を生成し、前記検証用初期値とデータAの中のbビットとの排他的論理和をfにより置換した結果をステートとする検証用初期値設定部を備え、
    データAのうち前記検証用初期値設定部で用いなかったビットA’を認証対象のデータとして扱って、前記検証用初期値設定部が求めたステートを用いてタグT’の生成と行い、タグTとタグT’とを比較する
    認証システム。
  3. Kを暗号化装置と復号装置の両方で共有する秘密鍵、Aを追加認証データ、Mをメッセージ、Cを暗号文、Tをタグ、K,A,Mをビット列、Nをすべてのビットが“0”のビット列を除くビット列、r,c,bを1以上の整数、b=r+c、fをbビットの置換演算、||をビット数を示す記号とし、
    ステートを、あらかじめ定められたrビットがレート部分、cビットがキャパシティ部分であるbビットのビット列とし、
    Nを選択し、レート部分にNを埋め込み、キャパシティ部分にKを埋め込むことでbビットの暗号化用初期値を生成し、前記暗号化用初期値のKを埋め込んだビットと追加認証データAの中の|K|ビットとの排他的論理和に、前記Kを埋め込んだビットを置き換えた上で、fにより置換した結果をステートとする暗号化用初期値設定部を備えることを特徴とし、
    追加認証データAのうち前記暗号化用初期値設定部で用いなかったビットで形成されるビット列A’を、追加認証データとして扱って暗号文CとタグTを求め、C,T,A,Nの組を出力する暗号化装置。
  4. Kを暗号化装置と復号装置の両方で共有する秘密鍵、Aを追加認証データ、Mをメッセージ、Cを暗号文、Tをタグ、K,A,Mをビット列、Nをすべてのビットが“0”のビット列を除くビット列、r,c,bを1以上の整数、b=r+c、fをbビットの置換演算、||をビット数を示す記号とし、
    ステートを、あらかじめ定められたrビットがレート部分、cビットがキャパシティ部分であるbビットのビット列とし、
    レート部分にNを埋め込み、キャパシティ部分にKを埋め込むことでbビットの復号用初期値を生成し、前記復号用初期値のKを埋め込んだビットと追加認証データAの中の|K|ビットとの排他的論理和に、前記Kを埋め込んだビットを置き換えた上で、fにより置換した結果をステートとする復号用初期値設定部を備えることを特徴とし、
    追加認証データAのうち前記復号用初期値設定部で用いなかったビットのビット列A’を、追加認証データとして扱って、メッセージM’の復号とタグT’の生成と行い、タグTとタグT’とを比較する復号装置。
  5. Kを認証子生成装置と検証装置の両方で共有する秘密鍵、Aを認証対象のデータ、Tをタグ、K,Aをビット列、bを1以上の整数、fをbビットの置換演算とし、
    ステートをbビットのビット列とし、
    Kを埋め込むことでbビットの生成用初期値を生成し、前記生成用初期値とデータAの中のbビットとの排他的論理和をfにより置換した結果をステートとする生成用初期値設定部を備えることを特徴とし、
    データAのうち前記生成用初期値設定部で用いなかったビットで形成されるビット列A’を認証対象のデータとして扱って、前記生成用初期値設定部が求めたステートを用いてタグTを求め、T,Aの組を出力する認証子生成装置。
  6. Kを認証子生成装置と検証装置の両方で共有する秘密鍵、Aを認証対象のデータ、Tをタグ、K,Aをビット列、bを1以上の整数、fをbビットの置換演算とし、
    ステートをbビットのビット列とし、
    Kを埋め込むことでbビットの検証用初期値を生成し、前記検証用初期値とデータAの中のbビットとの排他的論理和をfにより置換した結果をステートとする検証用初期値設定部を備えることを特徴とし、
    データAのうち前記検証用初期値設定部で用いなかったビットA’を認証対象のデータとして扱って、前記検証用初期値設定部が求めたステートを用いてタグT’の生成と行い、タグTとタグT’とを比較する検証装置。
  7. 追加認証データ付認証暗号のための暗号化装置と復号装置が実行する暗号化方法であって、
    Kを前記暗号化装置と前記復号装置の両方で共有する秘密鍵、Aを追加認証データ、Mをメッセージ、Cを暗号文、Tをタグ、K,A,Mをビット列、Nをすべてのビットが“0”のビット列を除くビット列、r,c,bを1以上の整数、b=r+c、fをbビットの置換演算、||をビット数を示す記号とし、
    ステートを、あらかじめ定められたrビットがレート部分、cビットがキャパシティ部分であるbビットのビット列とし、
    前記暗号化装置が、
    Nを選択し、レート部分にNを埋め込み、キャパシティ部分にKを埋め込むことでbビットの暗号化用初期値を生成し、前記暗号化用初期値のKを埋め込んだビットと追加認証データAの中の|K|ビットとの排他的論理和に、前記Kを埋め込んだビットを置き換えた上で、fにより置換した結果をステートとする暗号化用初期値設定ステップを実行し、
    追加認証データAのうち前記暗号化用初期値設定ステップで用いなかったビットで形成されるビット列A’を、追加認証データとして扱って暗号文CとタグTを求め、C,T,A,Nの組を出力し、
    前記復号装置が、
    レート部分にNを埋め込み、キャパシティ部分にKを埋め込むことでbビットの復号用初期値を生成し、前記復号用初期値のKを埋め込んだビットと追加認証データAの中の|K|ビットとの排他的論理和に、前記Kを埋め込んだビットを置き換えた上で、fにより置換した結果をステートとする復号用初期値設定ステップを実行し
    追加認証データAのうち前記復号用初期値設定ステップで用いなかったビットのビット列A’を、追加認証データとして扱って、メッセージM’の復号とタグT’の生成と行い、タグTとタグT’とを比較する
    暗号化方法。
  8. 認証子生成装置と検証装置が実行する認証方法であって、
    Kを前記認証子生成装置と前記検証装置の両方で共有する秘密鍵、Aを認証対象のデータ、Tをタグ、K,Aをビット列、bを1以上の整数、fをbビットの置換演算とし、
    ステートをbビットのビット列とし、
    前記認証子生成装置が、
    Kを埋め込むことでbビットの生成用初期値を生成し、前記生成用初期値とデータAの中のbビットとの排他的論理和をfにより置換した結果をステートとする生成用初期値設定ステップを実行し、
    データAのうち前記生成用初期値設定ステップで用いなかったビットで形成されるビット列A’を認証対象のデータとして扱って、前記生成用初期値設定ステップが求めたステートを用いてタグTを求め、T,Aの組を出力し、
    前記検証装置が、
    Kを埋め込むことでbビットの検証用初期値を生成し、前記検証用初期値とデータAの中のbビットとの排他的論理和をfにより置換した結果をステートとする検証用初期値設定ステップを実行し、
    データAのうち前記検証用初期値設定ステップで用いなかったビットA’を認証対象のデータとして扱って、前記検証用初期値設定ステップが求めたステートを用いてタグT’の生成と行い、タグTとタグT’とを比較する
    認証方法。
JP2015036192A 2015-02-26 2015-02-26 暗号化システム、認証システム、暗号化装置、復号装置、認証子生成装置、検証装置、暗号化方法、認証方法 Active JP6273226B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015036192A JP6273226B2 (ja) 2015-02-26 2015-02-26 暗号化システム、認証システム、暗号化装置、復号装置、認証子生成装置、検証装置、暗号化方法、認証方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015036192A JP6273226B2 (ja) 2015-02-26 2015-02-26 暗号化システム、認証システム、暗号化装置、復号装置、認証子生成装置、検証装置、暗号化方法、認証方法

Publications (2)

Publication Number Publication Date
JP2016157055A JP2016157055A (ja) 2016-09-01
JP6273226B2 true JP6273226B2 (ja) 2018-01-31

Family

ID=56825941

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015036192A Active JP6273226B2 (ja) 2015-02-26 2015-02-26 暗号化システム、認証システム、暗号化装置、復号装置、認証子生成装置、検証装置、暗号化方法、認証方法

Country Status (1)

Country Link
JP (1) JP6273226B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11349668B2 (en) 2017-02-21 2022-05-31 Mitsubishi Electric Corporation Encryption device and decryption device
JP6881111B2 (ja) * 2017-07-10 2021-06-02 日本電信電話株式会社 暗号化データ生成装置、復号データ生成装置、追加データ付き認証暗号システム、その方法、及びプログラム
JP6881112B2 (ja) * 2017-07-10 2021-06-02 日本電信電話株式会社 暗号化データ生成装置、復号データ生成装置、追加データ付き認証暗号システム、その方法、及びプログラム
US11438137B2 (en) 2017-09-01 2022-09-06 Mitsubishi Electric Corporation Encryption device, decryption device, encryption method, decryption method, and computer readable medium

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005114870A (ja) * 2003-10-03 2005-04-28 Japan Science & Technology Agency 暗号通信システム
JPWO2006019152A1 (ja) * 2004-08-19 2008-05-08 株式会社日立製作所 メッセージ認証子生成装置、メッセージ認証子検証装置、およびメッセージ認証子生成方法
US8121284B2 (en) * 2006-03-14 2012-02-21 Nec Corporation Information processing system, information processing method, and information processing program
WO2011068996A1 (en) * 2009-12-04 2011-06-09 Cryptography Research, Inc. Verifiable, leak-resistant encryption and decryption
SG194203A1 (en) * 2011-05-10 2013-11-29 Univ Nanyang Tech Devices for computer-based generating of a mixing matrix for cryptographic processing of data, encrypting devices, methods for computer-based generating of a mixing matrix for cryptographic processing of data and encrypting methods
JP5852518B2 (ja) * 2012-06-18 2016-02-03 日本電信電話株式会社 認証暗号化装置、認証復号装置、およびプログラム
TWI510046B (zh) * 2013-07-04 2015-11-21 Univ Nat Cheng Kung 認證式加解密方法
US10403173B2 (en) * 2013-08-13 2019-09-03 Fiske Software, Llc NADO cryptography using one-way functions

Also Published As

Publication number Publication date
JP2016157055A (ja) 2016-09-01

Similar Documents

Publication Publication Date Title
EP2526505B1 (en) Device and method for obtaining a cryptographic key
US8077863B2 (en) Secret sharing apparatus, method, and program
CN105721156B (zh) 对数据进行编码和数字签名的方法和相关设备
US11349668B2 (en) Encryption device and decryption device
JP6884284B2 (ja) キー付きメッセージ認証コードのホワイトボックス計算
JP6305642B2 (ja) メッセージ認証子生成装置、メッセージ認証子生成方法及びメッセージ認証子生成プログラム
JP6273226B2 (ja) 暗号化システム、認証システム、暗号化装置、復号装置、認証子生成装置、検証装置、暗号化方法、認証方法
KR101942030B1 (ko) 메시지에 대한 무결성 검증이 지원되는 부호 기반의 암호화가 가능한 전자 장치 및 그 동작 방법
CN107534549B (zh) 可读存储介质、用于数据流字块加密的方法及系统
US10484182B2 (en) Encrypted text verification system, method, and recording medium
WO2013136235A1 (en) Byzantine fault tolerance and threshold coin tossing
JP5992651B2 (ja) 暗号化方法、プログラム、および、システム
JP6273224B2 (ja) 暗号化システム、暗号化装置、復号装置、暗号化方法
KR102024379B1 (ko) 생체 정보 기반의 전자 서명이 가능한 데이터 전송 장치 및 그 동작 방법
KR20160109891A (ko) Puf 기반 암호키 생성 방법 및 장치
JP6273225B2 (ja) 暗号化システム、暗号化装置、復号装置、暗号化方法、暗号化プログラム、復号プログラム
JP6273223B2 (ja) 暗号化システム、暗号化装置、復号装置、暗号化方法、暗号化プログラム、復号プログラム
JP6830867B2 (ja) 追加データ付き認証暗号システム、復号装置、追加データ付き認証暗号方法、およびプログラム
JP5448801B2 (ja) 暗号化システム、暗号化装置、復号装置、暗号化方法、プログラム、記録媒体
JP6732698B2 (ja) 追加データ付き認証暗号システム、暗号化装置、復号装置、追加データ付き認証暗号方法、およびプログラム
JP6723958B2 (ja) 暗号化データ生成装置、復号データ生成装置、追加データ付き認証暗号システム、その方法、及びプログラム
JP2015025930A (ja) 圧縮関数演算装置、圧縮関数演算方法及びプログラム
CN116684125A (zh) 一种基于区块链的投标方信息加密方法及装置
JP6394031B2 (ja) プログラム、情報処理装置及び情報処理方法
JP5268413B2 (ja) 開示制限処理装置及びデータ処理システム及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170302

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20171211

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: 20171226

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180105

R150 Certificate of patent or registration of utility model

Ref document number: 6273226

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150