JP6173904B2 - 共通鍵暗号装置及びプログラム、並びに、共通鍵復号装置及びプログラム - Google Patents

共通鍵暗号装置及びプログラム、並びに、共通鍵復号装置及びプログラム Download PDF

Info

Publication number
JP6173904B2
JP6173904B2 JP2013258653A JP2013258653A JP6173904B2 JP 6173904 B2 JP6173904 B2 JP 6173904B2 JP 2013258653 A JP2013258653 A JP 2013258653A JP 2013258653 A JP2013258653 A JP 2013258653A JP 6173904 B2 JP6173904 B2 JP 6173904B2
Authority
JP
Japan
Prior art keywords
polynomial
plaintext
common key
msg
ring
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
JP2013258653A
Other languages
English (en)
Other versions
JP2015114629A (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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2013258653A priority Critical patent/JP6173904B2/ja
Priority to US14/565,785 priority patent/US9413729B2/en
Publication of JP2015114629A publication Critical patent/JP2015114629A/ja
Application granted granted Critical
Publication of JP6173904B2 publication Critical patent/JP6173904B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0435Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply symmetric encryption, i.e. same key used for encryption and decryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/008Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/04Masking or blinding
    • H04L2209/046Masking or blinding of operations, operands or results of the operations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/24Key scheduling, i.e. generating round keys or sub-keys for block encryption

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Storage Device Security (AREA)

Description

本発明の実施形態は、共通鍵暗号装置及びプログラム、並びに、共通鍵復号装置及びプログラムに関する。
通信内容を秘匿するために暗号化技術が用いられる。暗号化技術には、共通鍵暗号方式(Symmetric Encryption Scheme)及び公開鍵暗号(Asymmetric Encryption Scheme)がある。共通鍵暗号方式は、暗号化処理と復号処理において対称の秘密鍵を使用する。公開鍵暗号は、暗号化処理と復号処理において非対称な鍵(相異なる公開鍵及び秘密鍵)を使用する。
代表的な共通鍵暗号方式には、AES(Advanced Encryption Standard)がある。AESは、高速に処理できるラウンド関数を繰り返し処理することで安全性の強度を高めている。但し、AESは、後述する準同型性を有しない。
共通鍵暗号化方式Encは、以下を満たすときに準同型暗号(Homomorphic Encryption)と呼ばれる。秘密鍵sk及び2つの平文(plaintext)m1,m2に対応する2つの暗号文をc1=Enc(sk,m1)とc2=Enc(sk,m2)とする。平文m1,m2を復元することなく、2つの暗号文c1,c2から新たな暗号文c’=c1(*)c2=Enc(m1(+)m2)を計算できるとき、暗号化方式Encは準同型暗号と呼ばれる。但し、(*)と(+)は演算子を表す。
演算子(+)が加算を表すとき、暗号化方式Encは、加法的準同型暗号(Additive Homomorphic Encryption)と呼ばれる。演算子(+)が乗算を表すとき、暗号化方式Encは、乗法的準同型暗号(Multiplicative Homomorphic Encryption)と呼ばれる。加法的及び乗法的の準同型性を実現する2種類の暗号文演算(*)を有するとき、暗号化方式Encは、(ある程度)完全準同型暗号((Somewhat) Fully Homomorphic Encryption)と呼ばれる。
Michal Hojsik, Veronika Pulpanova, "A Fully Homomorphic Cryptosystem with Approximate Perfect Secrecy", CT-RSA 2013, pp.375-388, LNCS 7779, Springer-Verlag
しかしながら、以上のような共通鍵暗号方式は、通常は特に問題ないが、本発明者の検討によれば、並列度を上げて、計算の効率を向上できる余地があると考えられる。
本発明が解決しようとする課題は、並列度を上げて、計算の効率を向上し得る共通鍵暗号装置及びプログラム、並びに、共通鍵復号装置及びプログラムを提供することである。
実施形態の共通鍵暗号装置は、記憶部、平文受付部、平文多項式生成部、マスク多項式生成部及び暗号化部を備えている。
前記記憶部は、第1の多項式環の複数の要素で構成される共通鍵を記憶する。
前記平文受付部は、平文情報の入力を受け付ける。
前記平文多項式生成部は、前記入力を受け付けた平文情報に基づく値、あるいは前記平文情報と乱数とに基づく値を前記第1の多項式環の部分空間の多項式の項に埋め込むことにより、平文多項式を生成する。
前記マスク多項式生成部は、前記第1の多項式環上で定義される第2の可換環に基づいて、前記共通鍵を解に含むマスク多項式を生成する。
前記暗号化部は、前記平文多項式と前記マスク多項式とを加算して、暗号文を生成する。
第1の実施形態に係る共通鍵暗号装置の構成を示す模式図である。 同実施形態における共通鍵復号装置の構成を示す模式図である。 同実施形態における暗号化処理を説明するためのフローチャートである。 同実施形態における復号処理を説明するためのフローチャートである。 第1の実施形態の変形例2に用いられる準同型演算装置の構成を示す模式図である。 同変形例2における準同型演算処理を説明するためのフローチャートである。 第2の実施形態に係る共通鍵暗号装置の構成を示す模式図である。 同実施形態における共通鍵復号装置の構成を示す模式図である。 同実施形態における暗号化処理を説明するためのフローチャートである。 同実施形態における復号処理を説明するためのフローチャートである。
以下、各実施形態について図面を用いて説明する。なお、以下の各装置は、それぞれハードウェア構成、又はハードウェア資源とソフトウェアとの組合せ構成のいずれでも実施可能となっている。組合せ構成のソフトウェアとしては、予めネットワーク又はコンピュータ読み取り可能な記憶媒体からコンピュータにインストールされ、当該コンピュータのプロセッサに実行されることにより、各装置の機能を当該コンピュータに実現させるためのプログラムが用いられる。
<第1の実施形態の概要>
第1の実施形態の概要について、記法、暗号化処理及び復号処理の順に説明する。
始めに、本実施形態に用いられる記法を述べる。
Aを可換環(commutative ring)とする。S=A[t1, …, tm’]={Σci1, i2, …, im’1 i12 i2…tm’ im’|ci1, i2, …, im’∈A}を、t1, …, tm’を変数とするm’変数多項式環(polynomial ring)とする(Sを第1の可換環とも呼ぶ)。
R=S[x1, …, xm]を、多項式を要素とする可換環とする(Rを第2の可換環とも呼ぶ)。例えば、Sは、整数環(integer ring)Z={0,±1,±2,…}の要素を係数とし、m’≧1に対してt1, …, tm’を変数とする多項式環Z[t1, …, tm’]としてもよい。可換環Rは、この多項式環S=Z[t1, …, tm’]を係数とする多項式環(Z[t1, …, tm’])[x1, …, xm]としても良い。
これら、可換環R及び多項式環Sは、システムにおける公開パラメータとしても良いし、共通鍵を共有する通信者間での秘密情報としても良い。
秘密鍵skは、多項式環Sのn個の要素(s1,s2, …, sn)で構成される。例えば、秘密鍵skの各成分siは変数t1, …, tm’を変数に持つ多項式si(t1, …, tm’)として、sk=(s1(t1, …, tm’), …, sn(t1, …, tm’))としても良い。ここで、siは、変数t1, …, tm’に関する次数が予め定められた値(次数をdとする)以下となる多項式とする。あるいは、秘密鍵skの各成分siは変数tを変数に持つ多項式si(t)として、sk=(s1(t), …, sn(t))としても良い。この場合には、siは、変数tに関する次数が予め定められた値(次数をdとする)以下となる多項式とする。
本実施形態において、暗号化対象文書である平文(plaintext)情報msgは、多項式環Sの部分空間Mの要素にエンコードされる。以下、平文情報を平文と呼ぶ。
部分空間Mは、多項式を要素として含む集合である。多項式の各項を基底と呼び、部分空間Mは、二つ以上の基底からなる多項式を要素に含む集合であるものとする。
平文msgから部分空間Mの要素eへのエンコード処理をe=Ecd(msg)で表す。ここで、エンコード結果eは可換環Aの要素を係数とし、tjを変数とする多項式である。
一方、環Sの部分空間Mの要素eから復号文msg’へのデコード処理をmsg’=Dcd(e)で表す。EcdあるいはDcdは、平文msgあるいはエンコード結果eのほかに、秘密鍵skを入力として受け付け、エンコード処理e=Ecd(sk,msg)あるいはデコード処理msg’=Dcd(sk,e)を実行してもよい。EcdとDcdは、msg=Dcd(Ecd(msg))となるように設計する(必要に応じてEcdとDcdの入力に秘密鍵skを追加する)。
例えば、多項式環S=Z[t1, …, tm’]の場合に、エンコード処理Ecdは、平文msgをビット表現してm’個のビット列msg1||msg2||…||msgm’に分割し(ここで||はビット連結を表す)、平文多項式e=Σmsgiiを出力してもよい。この場合、デコード処理Dcd(sk,e)により、ビット列msg1||msg2||…||msgm’=msgを復元できる。ここで、m’は、前述の次数dと後述する次数wに対して、m’≦dw−1をみたす値とする。
あるいは、例えば、多項式環S=Z[t]の場合に、エンコード処理Ecdは、平文msgをビット表現してm個のビット列msg1||msg2||…||msgmに分割し、tを変数とするm−1次の平文多項式e=Σmsgii-1を出力してもよい。この場合、デコード処理Dcd(sk,e)により、ビット列msg1||msg2||…||msgm=msgを復元できる。ここで、mは、前述の次数dと後述する次数wに対して、m≦dw−1をみたす値とする。
なお、ここでは、平文msgをビット分割する例を記載したが、これに限らず、平文msgをl進展開して(例えばl=216=65536)、l進展開して得られる各桁をビット列msgiに対応付けても良い。その際、デコードはl進展開された値を2進数あるいは10進数など所定の形式に変換して平文msgを復元する。
また、ここではエンコード結果を平文msgに対して確定的に計算する例を記載したが、これに限らず、ビット列msgiのうちのいくつかをランダムな整数rndiとし、エンコード結果を平文msgに対して確率的に計算しても良い。その際、デコード処理は、ランダムな整数rndiを除くビット列msgiを取り出して、平文msgを復元する。
これら各処理Ecd,Dcdは、システムにおける公開パラメータとしても良いし、共通鍵を共有する通信者間での秘密情報としても良い。
次に、本実施形態における暗号化と復号処理の概要を説明する。
暗号文(ciphertext)の送信者と受信者は、多項式環Sのn個の要素からなる秘密鍵sk=(s1, …, sn)を共通鍵として共有している。ここで、送信者は、後述する共通鍵暗号装置に対応する。受信者は、後述する共通鍵復号装置に対応する。
暗号文の送信者は、平文msgをエンコードして、平文多項式e=Ecd(msg)を計算する。
送信者は可換環RあるいはR=S[x1, …, xn]の部分集合からw次以下の多項式f(x1, …, xn)をランダムに生成する。ここで、f(x1, …, xn)の次数は、x1, …, xnを変数としてf(x1, …, xn)の各項の次数を計算し、その最大値で定義する。
S=A[t1, …, tm’]である場合には、fはx1, …, xnに加えてt1, …, tm’を変数とする多項式として表現される。以下では、誤解のない限り、fはx1, …, xnを変数とする多項式として表現する。後述するc(x1, …, xn),g(x1, …, xn)についても同様である。
送信者は、暗号文c(x1, …, xn)=e+f(x1, …, xn)−f(s1, …, sn)を計算して、受信者に送信する。
暗号文の受信者は、受信した暗号文c(x1, …, xn)に秘密鍵(s1, …, sn)を代入して、次式のように平文多項式eを計算する。
c(s1, …, sn)=e
しかる後、受信者は、平文多項式eに基づいてデコード処理msg’=Dcd(e)を実行し、平文msg=msg’を復元する。
<第1の実施形態の具体的な構成>
以下、第1の実施形態について具体的に説明する。
図1は第1の実施形態に係る共通鍵暗号装置の構成を示す図であり、図2は同実施形態における共通鍵復号装置の構成を示す図である。
ここで、共通鍵暗号装置100は、パラメータ記憶部101、入出力部102及び暗号化処理部103を備えている。
パラメータ記憶部(記憶部)101は、暗号化処理部103から読出可能なメモリであり、第1の多項式環Sの複数の要素(s1, …, sn)で構成される秘密鍵sk(共通鍵)と、安全性のパラメータ(security parameter)とを記憶する。パラメータ記憶部101は、可換環R及び多項式環Sの情報を記憶してもよい。また、パラメータ記憶部101は、エンコード処理Ecdの情報を記憶してもよい。
入出力部102は、暗号化対象文書の平文msg(平文情報)の入力を受け付け、暗号化処理部103で計算した暗号文c(x1, …, xn)を出力する。このような入出力部102は、平文受付部及び出力部を構成している。
暗号化処理部103は、入出力部102で入力を受け付けた平文msgとパラメータ記憶部101が記憶する情報に基づいて、暗号文c(x1, …, xn)を計算する。
例えば、暗号化処理部103は、以下の機能(f103-1)〜(f103-3)をもっている。
(f103-1) 入力を受け付けた平文msgを第1の多項式環Sの部分空間Mの多項式の少なくとも一つの項に埋め込むことにより、平文多項式eを生成する平文多項式生成機能。
なお、平文多項式生成機能(f103-1)は、平文msgを複数の部分情報msg1, ..., msgi, ..., msgmに加法的に分割し、複数の部分情報msg1, ..., msgi, ..., msgmを平文多項式eの各項の係数として埋め込む機能(f103-1-1)を有していてもよい。ここで、mは、前述の次数dとwに対して、m≦dw−1をみたす値とする。
(f103-2) 第1の多項式環S上で定義される第2の可換環Rに基づいて、秘密鍵sk(共通鍵)を解に含むマスク多項式g(x1, …, xn)を生成するマスク多項式生成機能。
(f103-3) 平文多項式eとマスク多項式g(x1, …, xn)とを用いて、暗号文c(x1, …, xn)を生成する暗号化機能。
また、暗号化処理部103は、以下の機能(f103-4)を備えていてもよい。
(f103-4) 平文多項式生成機能(f103-1)、マスク多項式生成機能(f103-2)及び暗号化機能(f103-3)によって2つの平文多項式e(1),e(2)から2つの暗号文c(1)(x1, …, xn),c(2)(x1, …, xn)が個別に生成されたとき、当該2つの暗号文を互いに加算又は乗算する準同型演算処理により、新たな暗号文c(hom)(x1, …, xn)を生成する準同型演算機能。
ここで、当該2つの暗号文を互いに加算する場合、秘密鍵skに基づいて新たな暗号文c(hom)(x1, …, xn)を復号した結果は、2つの平文多項式e(1),e(2)を互いに加算した結果と等しい。
また、2つの暗号文を互いに乗算する場合、秘密鍵skに基づいて新たな暗号文c(hom)(x1, …, xn)を復号した結果は、2つの平文多項式e(1),e(2)を互いに乗算した結果と等しい。
このような暗号化処理部103は、平文多項式生成部、マスク多項式生成部及び暗号化部を構成している。また、暗号化処理部103は、準同型演算部を構成してもよい。
一方、共通鍵復号装置200は、図2に示すように、パラメータ記憶部201、入出力部202及び復号処理部203を備えている。
パラメータ記憶部(記憶部)201は、復号処理部203から読出可能なメモリであり、多項式環Sの複数の要素(s1, …, sn)で構成される秘密鍵sk(共通鍵)と、安全性のパラメータとを記憶する。パラメータ記憶部201は、可換環R及び多項式環Sの情報を記憶してもよい。また、パラメータ記憶部201は、デコード処理Dcdの情報を記憶してもよい。
入出力部202は、暗号文c(x1, …, xn)を入力として受け付け、復号結果msg’を出力する。このような入出力部202は、暗号文受付部及び出力部を構成している。
ここで、暗号文c(x1, …, xn)は、平文多項式eと、マスク多項式g(x1, …, xn)と、を用いて生成されている。
平文多項式eは、第1の多項式環Sの部分空間Mの多項式の少なくとも一つの項に平文msgを埋め込むことにより生成されている。なお、平文msgは、複数の部分情報に加法的に分割され、複数の部分情報が平文多項式eの各項に係数として埋め込まれていてもよい。この場合、後述する復号機能(f203-2)は、平文多項式復号機能(f203-1)により復号された平文多項式eの各項の係数を複数の部分情報として抽出し、当該複数の部分情報の総和を計算することにより平文msgを復号することが可能である。
マスク多項式g(x1, …, xn)は、秘密鍵skを解に含む。このマスク多項式g(x1, …, xn)は、第1の多項式環S上で定義される第2の可換環Rに基づいて生成されている。
復号処理部203は、入出力部301で入力を受け付けた暗号文c(x1, …, xn)とパラメータ記憶部201が記憶する情報に基づいて暗号文c(x1, …, xn)を復号して復号結果msg’を得る。
例えば、復号処理部203は、以下の機能(f203-1)〜(f203-2)をもっている。
(f203-1) パラメータ記憶部201内の秘密鍵skに基づいて、暗号文c(x1, …, xn)から平文多項式eを復号する平文多項式復号機能。
(f203-2) 復号した平文多項式eから平文msgを復号する復号機能。
なお、入力を受け付けた暗号文が、2つの平文多項式e(1),e(2)から個別に生成された2つの暗号文c(1)(x1, …, xn),c(2)(x1, …, xn)を互いに加算又は乗算する準同型演算処理により生成されている場合について述べる。
当該2つの暗号文を互いに加算する場合、復号機能(f203-2)により復号された結果は、2つの平文多項式e(1),e(2)を互いに加算した結果と等しい。
また、2つの暗号文を互いに乗算する場合、復号機能(f203-2)により復号された結果は、2つの平文多項式e(1),e(2)を互いに乗算した結果と等しい。
このような復号処理部203は、平文多項式復号部及び復号部を構成している。
次に、以上のように構成された共通鍵暗号装置及び共通鍵復号装置の動作について図3及び図4のフローチャートを用いて説明する。
共通鍵暗号装置100では、図3に示すように、入出力部102が、平文msgの入力を受け付ける(ST1)。また、パラメータ記憶部101内のパラメータ(例えば、S,R,sk等)は、適宜、暗号化処理部103に読み出される。
暗号化処理部103は、入出力部102により入力を受け付けた平文msgを多項式環Sの部分空間Mの多項式の各項に埋め込むようにエンコード処理を実行し、平文多項式e=Ecd(msg)を計算する(ST2)。
暗号化処理部103は、多項式環S上で定義される可換環Rに基づいて、秘密鍵(s1, …, sn)を解に含むマスク多項式g(x1, …, xn)を生成する。例えば、暗号化処理部103は、マスク多項式g(x1, …, xn)を可換環Rからランダムに選択する(ST3〜ST5)。なお、マスク多項式g(x1, …, xn)は、平文多項式eに加算されて平文多項式eを隠蔽する。
具体的には、暗号化処理部103は、例えば、可換環Rから多項式f(x1, …, xn)をランダムに選択する(ST3)。多項式f(x1, …, xn)は、ランダム多項式f(x1, …, xn)と呼んでもよい。
暗号化処理部103は、多項式f(x1, …, xn)の変数x1, …, xnに秘密鍵skを代入した多項式f(s1, …, sn)を計算し(ST4)、マスク多項式g(x1, …, xn)=f(x1, …, xn)−f(s1, …, sn)を設定する(ST5)。
ここで、+は可換環Rで定義される加法であり、−は加法逆元の加法である。
また、マスク多項式g(x1, …, xn)や多項式f(x1, …, xn)は可換環Rから選ばれるのではなく、可換環Rの部分集合から選ばれても良い。
あるいは、マスク多項式g(x1, …, xn)や多項式f(x1, …, xn)はランダムに選ばれるのではなく、暗号化を処理する日時や秘密鍵sk、あるいは平文msgなどに依存して選ばれても良い。また、ステップST3〜ST5は、ステップST1が実行される前に、予め実行されても良い。
暗号化処理部103は、平文多項式eとマスク多項式g(x1, …, xn)とを加算する処理により、暗号文c(x1, …, xn)=e+g(x1, …, xn)を生成する(ST6)。
共通鍵暗号装置100は、暗号文c(x1, …, xn)を入出力部101から出力する(ST7)。
以上が共通鍵暗号装置100の動作である。続いて、共通鍵復号装置200の動作を説明する。
共通鍵復号装置200は、図4に示すように、入出力部202が暗号文c(x1, …, xn)の入力を受け付ける(ST11)。
復号処理部203は、パラメータ記憶部201内の秘密鍵sk=(s1, …, sn)に基づいて、暗号文c(x1, …, xn)から平文多項式eを復号する。例えば、復号処理部203は、秘密鍵sk=(s1, …, sn)を暗号文c(x1, …, xn)に代入し、次式に示すように、平文多項式eを計算する(ST12)。
c(s1, …, sn)=e+g(s1, …, sn)=e
復号処理部203は、復号した平文多項式eから平文msgを復号する。すなわち、復号処理部203は、平文多項式eをデコードして、復号結果msg’=Dcd(e)を計算する(ST13)。
例えば、前述したように、多項式環S=A[t1, …, tn],エンコード処理Ecd(msg)=e=Σmsgii、但し、平文msg=msg1||msg2||…||msgn、の場合には、ステップST12で計算される多項式c(s1, …, sn)は、tiを変数とする平文多項式e=Σmsgiiである。
この場合、平文多項式e=Σmsgiiにおいて、変数tiの係数を平文のビット列msg’iに割り当てて復号結果msg’=msg’1||msg’2||…||msg’nと設定することにより、平文msg=msg’を復号することができる。
あるいは、多項式環S=Fq[t],エンコード処理Ecd(msg)=e=Σmsgii、但し、平文msg=msg1||msg2||…||msgm’、の場合には、ステップST12で計算される多項式c(s1, …, sn)は、tを変数とする平文多項式e=Σmsgiiである。
この場合、平文多項式e=Σmsgiiにおいて、tiの係数を平文のビット列msg’iに割り当てて復号結果msg’=msg’1||msg’2||…||msg’nと設定することにより、平文msg=msg’を復号することができる。
あるいは、多項式環S=Fq[t],エンコード処理Ecd(msg)=e=Σmsgii、但し、平文msg=Σmsgiiの場合には、ステップST12で計算される多項式c(s1, …, sn)は、tを変数とする平文多項式e=Σmsgiiである。
この場合、平文多項式e=Σmsgiiにおいて、tiの係数をビット列msg’iに割り当てて復号結果msg’=Σmsgiiと設定することにより、平文msg=msg’を復号することができる。
最後に、共通鍵復号装置200は、入出力部202から平文msg=msg’を出力する(ST14)。
上述したように本実施形態によれば、平文msgを多項式環Sの部分空間Mの多項式の各項に埋め込むことにより平文多項式eを生成し、平文多項式eと、共通鍵(sk)を解に含むマスク多項式g(x1, …, xn)とを加算する処理により、暗号文c(x1, …, xn)を生成する構成により、並列度を上げて、計算の効率を向上させることができる。なお、多項式同士を加算する処理においては、同類項同士の係数を加算する処理を並列に実行できる。従って、本実施形態は、平文多項式eとマスク多項式g(x1, …, xn)とを加算する処理において、並列度を上げることができる。また、本実施形態は、平文msgを多項式の各項に埋め込む処理を並列に実行できる点からも、並列度を上げることができる。
また、本実施形態によれば、このように生成された暗号文c(x1, …, xn)の入力を受け付けると、共通鍵(sk)に基づいて、当該暗号文c(x1, …, xn)から平文多項式eを復号し、当該復号した平文多項式eから平文msgを復号する構成により、並列度を上げて、計算の効率を向上させることができる。なお、共通鍵(sk)に基づいて暗号文c(x1, …, xn)から平文多項式eを復号する処理においては、例えば、同類項毎に係数を復元する等のように、多項式の各項毎に平文msgの一部を復元する処理を並列に実行できる。従って、本実施形態は、暗号文c(x1, …, xn)から平文多項式eを復号する処理において、並列度を上げることができる。また、本実施形態は、平文多項式eの各項から平文msgの一部を復号する処理を並列に実行できる点からも、並列度を上げることができる。
また、共通鍵暗号装置100では、エンコード処理Ecdにより、平文msgを二つ以上の基底の和で表現される要素を含む可換環に対応付ける。そのため、平文情報をMの要素の二つ以上の基底に埋め込むことにより、一つの暗号文に多倍長精度の平文を埋め込むことができる。そのため、多倍長演算を行うことなくCPUの処理単位よりも大きいサイズの平文を暗号化することができる。
例えば、完全準同型性を有する共通鍵暗号方式としては、非特許文献1記載の技術が知られている。
しかしながら、非特許文献1記載の技術は、復号においてFp={0,1, …, p−1}の整数値が計算されるため、1つの暗号文には単一の平文しか埋め込めない。そのため、非特許文献1記載の技術では、CPUの処理単位よりも大きなサイズの平文を暗号化処理するためには多倍長演算(data processing with multi precision)を行わなければならない。また、非特許文献1記載の技術では、複数の種類の平文を暗号化するためには、複数の暗号文を計算しなければならない。
これに対し、本実施形態によれば、平文情報を多項式の各項に埋め込む構成により、1つの暗号文に多倍長精度の平文、あるいは複数の種類の平文を埋め込むことができる。
<第1の実施形態の変形例1:拡大体>
第1の実施形態では、Mが多項式環Sの部分集合となる共通鍵暗号装置の構成を示した。変形例1では、多項式環Sの部分集合Mを体L(field L)の部分集合とする例を説明する。以降では、体Lは、体Fpあるいは体Kにαを添加した拡大体を例に説明するが、体Fpあるいは体Kにα1, …, αm’を添加した拡大体を用いても良い。前者は第1の実施形態における多項式環S=A[t]に相当し、後者は第1の実施形態における多項式環S=A[t1, …, tm’]に相当する。
変形例1を実現する共通鍵暗号装置の構成は、前述した共通鍵暗号装置100と同様である。
次に、変形例1を説明するための記法を説明する。
第1の実施形態では、Sをtiを変数とする多項式環とした。変形例1ではS⊆Lを、体Fp={0,1, …, p−1}のm次拡大体(extension field of Fp of degree m)L={Σ0≦i≦m-1iαi|ci∈Fp、αはFpを係数とするm次既約多項式の根、m≧2}の部分体(Subfield)とする。あるいは、部分体Sは、体Fpとは異なる任意の体Kの拡大体としても良い。
可換環R=S[x1, …, xn]は、部分体Sの要素を係数とする多項式環とする。
秘密鍵skは、例えば、部分体Sの要素の組sk=(s1, …, sn)、但し、si=Σ0≦j≦m-1jαiは部分体Sの要素、とする。
エンコード処理は、平文msgを部分体Sの部分集合Mの要素に割り当てる。前述の基底は、部分集合Mの要素であるΣciαiの各ciαiに相当する。
例えば、秘密鍵sk=(s1, …, sn)∈Sn,可換環R=S[x1, …, xn]の場合には、エンコード処理Ecdは、平文msgをビット表現してm個のビット列msg1||msg2||…||msgmに分割し(ここで||はビット連結を表す)、平文多項式e=Σmsgiαi-1を出力してもよい。
このとき、第1の実施形態と同様に、デコード処理Dcd(sk,e)により、m個のビット列msg1, msg2, …, msgmを連結し、次式に示すように平文msgを復元できる。
msg1||msg2||…||msgm=msg
あるいは、平文msgをl進展開して(例えばl=216=65536)、各桁をビット列msgiに対応付けても良い。その際、デコード処理はl進展開された値を2進数あるいは10進数など所定の形式に変換して平文msgを復元する。
さらに、ビット列msgiのうちのいくつかをランダムな整数rndiとし、エンコード処理を平文msgに対して確率的に計算しても良い。
その際、デコード処理は、ランダムな整数rndiを除くビット列msgiを取り出して、平文msgを復元する。
ここで、ビット列msgiの代わりにランダムな整数rndiを用いる箇所を示すインデックスi(すなわち、実際の平文msgを埋め込むビット列msgjのインデックスj)は、システムにおける公開パラメータとしても良いし、共通鍵を共有する通信者間での秘密情報としても良い。
変形例1の共通鍵暗号装置及び共通鍵復号装置の処理は、前述した共通鍵暗号装置100及び共通鍵復号装置200と同様である。具体的には、各装置の処理は、第1の実施形態のti jをαi jに置換したものであるため、詳細な説明を省略する。
上述したように本変形例1によれば、多項式環Sの部分集合Mを体Lの部分集合とした場合であっても、第1の実施形態を同様に実施して同様の効果を得ることができる。
<第1の実施形態の変形例2:準同型演算>
第1の実施形態及び変形例1では、共通鍵暗号装置の構成を示した。第1の実施形態及び変形例1において、エンコードがEcd(msg(1))+Ecd(msg(2))=Ecd(msg(1)+msg(2))あるいはEcd(msg(1))*Ecd(msg(2))=Ecd(msg(1)*msg(2))を満たすとき、準同型性を有する共通鍵暗号装置を構成できる。
このような性質を満たすエンコードとして、例えば上述したように、平文msgをビット列msg1||msg2||…||msgmのように分割し、Ecd(msg)=e=Σmsgin i-1やEcd(msg)=e=Σmsgiαi-1とする方法がある。
あるいは、平文msgをΣmsg(l)iiのようにl進展開して、平文多項式e=Ecd(msg)=Σmsg(l)iiとしても良い。
あるいは、上述のビット列msgiのうちのいくつかをランダムな整数rndiとし、エンコード結果を平文msgに対して確率的に計算して、Ecd(msg)=e=Σ1≦irndin i-1+msgやEcd(msg)=e=Σ1≦irndiαi-1+msgとしても良い。
変形例2の共通鍵暗号装置の構成は、前述した共通鍵暗号装置100の構成と同一であり、エンコードの方法のみが異なる。以降では、変形例2の共通鍵暗号装置による準同型演算処理を説明する。
図5は第1の実施形態の変形例2に用いられる準同型演算装置の構成を示す図である。準同型演算装置300は、パラメータ記憶部301、入出力部302及び準同型演算部303を備えている。
パラメータ記憶部301は、安全性のパラメータを記憶する。パラメータ記憶部301は、可換環R及び多項式環Sの情報を記憶してもよい。また、パラメータ記憶部301は、エンコード処理Ecdの情報を記憶してもよい。
入出力部302は、共通鍵暗号装置100から2つの暗号文c(1)(x1, …, xn),c(2)(x1, …, xn)を入力として受け付け、準同型演算結果c(hom)(x1, …, xn)を共通鍵暗号装置100に出力する。
準同型演算部303は、入出力部302で受け付けた各暗号文c(1)(x1, …, xn),c(2)(x1, …, xn)とパラメータ記憶部301が記憶する情報に基づいて準同型演算結果c(hom)(x1, …, xn)を計算する。
なお、前述した共通鍵暗号装置100が準同型演算装置300の機能を更に備えてもよい。
図6を用いて、変形例2の準同型演算処理を説明する。
準同型演算装置300は、入出力部302が、2つの暗号文c(1)(x1, …, xn),c(2)(x1, …, xn)の入力を受け付ける(ST21)。なお、第1の暗号文c(1)(x1, …, xn)は、第1の平文多項式e(1)から生成されたものとする。第2の暗号文c(2)(x1, …, xn)は、第2の平文多項式e(2)から生成されたものとする。
準同型演算装置300は、2つの暗号文に対し、加法演算又は乗法演算を示す演算の種類を決定する(ST22)。演算の種類は、準同型演算装置300に対して予め決定されていても良いし、暗号文c(1)(x1, …, xn),c(2)(x1, …, xn)を入力として受け付ける際に、外部から準同型演算装置300に指定されても良い。
2つの暗号文c(1)(x1, …, xn),c(2)(x1, …, xn)の加法演算を行う場合、準同型演算装置300は、次式に示すように、当該2つの暗号文を互いに加算する準同型演算処理により、新たな暗号文c(Add)(x1, …, xn)を生成する(ST23A)。
(Add)(x1, …, xn)=c(1)(x1, …, xn)+c(2)(x1, …, xn
=e(1)+e(2)+g(1)(x1, …, xn)+g(2)(x1, …, xn
2つの暗号文の乗法演算を行う場合、準同型演算装置300は、次式に示すように、当該2つの暗号文を互いに乗算する準同型演算処理により、新たな暗号文c(Mul)(x1, …, xn)を生成する(ST23M)。
(Mul)(x1, …, xn)=c(1)(x1, …, xn)*c(2)(x1, …, xn
=e(1)*e(2)+g(1)(x1, …, xn)g(2)(x1, …, xn)+g(1)(x1, …, xn)e(2)+g(2)(x1, …, xn)e(1)
準同型演算装置300は、ステップST23A又はST23Mで得られた準同型演算結果を入出力部302から共通鍵暗号装置100に出力する(ST24)。
共通鍵暗号装置100は、準同型演算を行った後の暗号文が、意図した準同型演算を行った平文に対応することを確認した後、当該暗号文を共通鍵復号装置200に送信する。なお、この準同型演算の確認は、共通鍵復号装置200が実行してもよい。
加法演算に関しては、次式に示すように、秘密鍵sk=(s1, …, sn)に基づいて新たな暗号文c(Add)(x1, …, xn)を復号した結果は、2つの平文多項式e(1),e(2)を互いに加算した結果と等しい。
(Add)(s1, …, sn)=c(1)(s1, …, sn)+c(2)(s1, …, sn)=e(1)+e(2)+g(1)(s1, …, sn)+g(2)(s1, …, sn)=e(1)+e(2)
すなわち、共通鍵復号装置200が準同型演算結果c(Add)(x1, …, xn)に秘密鍵skを代入すると、正しく平文多項式の和(e(1)+e(2))が復号される。
乗法演算に関しては、次式に示すように、秘密鍵sk=(s1, …, sn)に基づいて新たな暗号文c(Mul)(x1, …, xn)を復号した結果は、2つの平文多項式e(1),e(2)を互いに乗算した結果と等しい。
(Mul)(s1, …, sn)=c(1)(s1, …, sn)*c(2)(s1, …, sn)=e(1)*e(2)+g(1)(s1, …, sn)g(2)(s1, …, sn)+g(1)(s1, …, sn)e(2)+g(2)(s1, …, sn)e(1)=e(1)*e(2)
このため、共通鍵復号装置200が準同型演算結果c(Mul)(x1, …, xn)に秘密鍵skを代入すると、正しく平文多項式の積(e(1)*e(2))が復号される。
上述したように本変形例2によれば、2つの平文多項式e(1),e(2)から個別に2つの暗号文c(1)(x1, …, xn),c(2)(x1, …, xn)が生成されたとき、当該2つの暗号文を互いに加算又は乗算する準同型演算処理により、新たな暗号文を生成する。
加算の場合、共通鍵に基づいて新たな暗号文を復号した結果が2つの平文多項式を互いに加算した結果と等しいので、加法的準同型演算を実現することができる。
乗算の場合、共通鍵に基づいて新たな暗号文を復号した結果が2つの平文多項式を互いに乗算した結果と等しいので、乗法的準同型演算を実現することができる。
また、本変形例2によれば、加法的及び乗法的準同型演算を実現できるので、第1の実施形態の効果に加え、完全準同型演算を実現することができる。
(第1の実施形態のその他の変形例:エンコード処理Ecd)
上述した第1の実施形態及び変形例1,2において、以下の(1)〜(7)に説明するエンコード処理Ecdを使用することも可能である。
(1)平文msgをl進展開した後にビット列に分割したエンコード処理
上述では、平文msgをビット列msg1||…||msgmあるいはl進展開msg=Σmsgii-1のように表現し、エンコード処理をEcd(msg)=e=Σmsgii-1またはEcd(msg)=e=Σmsgiαi-1とする例を説明した。ただし、mは、前述の次数dとwに対して、m≦dw−1をみたす値とする。
これらエンコード処理Ecdを用いる共通鍵暗号方式は、加法及び乗法に関する準同型性を満たす。
(2)平文msgを分割しないエンコード処理
平文msgを分割せず、1つの係数c0に平文msgを設定し(c0=msg)、m−1個の他の係数c1, …, cm-1に乱数を設定して、エンコード処理をEcd(msg)=e=ΣciiまたはEcd(msg)=e=Σciαiと設定しても良い。ここで、mは、前述の次数dとwに対して、m≦dw−1をみたす値とする。
このようなエンコード処理Ecdを用いる場合には、共通鍵暗号方式は加法及び乗法に関する準同型性を満たす。
(3)平文msgを加法的に分割したエンコード処理
エンコード処理Ecdは、平文msgを複数の部分情報msg1, ..., msgi, ..., msgmに加法的に分割し、複数の部分情報msg1, ..., msgi, ..., msgmを平文多項式eの各項の係数として埋め込むように実行してもよい。ここで、mは、前述の次数dとwに対して、m≦dw−1をみたす値とする。
例えば、平文msgを、msg=Σmsgiやmsg=Σmsgi mod p(pは整数)のように加法的に分割して、エンコード処理をEcd(msg)=e=Σmsgii-1またはEcd(msg)=e=Σmsgiαi-1としても良い。ここで、加法的に分割して得られるmsgiの数は、前述の次数dとwに対して、(dw−1)個以下とする。
対応するデコード処理Dcdは、復号された平文多項式eの各項の係数を複数の部分情報として抽出し、当該複数の部分情報の総和を計算することにより平文msgを復号するように実行してもよい。
例えば、平文多項式e=Σmsg’ii-1あるいは平文多項式e=Σmsg’iαi-1に対して、復号結果msg’=Σmsg’iなどにより平文msg=msg’を復号する。この(3)の場合、上記(1)とは異なり、全ての部分情報msg’iが正しいときのみ、部分情報msg’iの総和を計算することにより、平文msgを復号できる。すなわち、この(3)の場合、上記(1)とは異なり、平文msgの部分情報msgiを秘密分散した場合と同様の効果を得ることができる。
このようなエンコード処理Ecdを用いる場合には、共通鍵暗号方式は加法に関する準同型性を満たす。
(4)平文msgを解にしたエンコード処理
また、平文msgを加法的に分割するだけでなく、平文msgが多項式e=Σcii-1あるいは多項式e=Σciαi-1の係数ciから導出される方程式の解となるように平文msgをエンコード処理Ecdしても良い。
例えば、xとyを変数とする2元1次連立方程式を考え、c0x+c1y=c2,c3x+c4y=c5の解がx=msgとなるように係数c0〜c5を定めてエンコード処理Ecdしても良い。
あるいは、xを変数とする2次方程式を考え、c0+c1x+c22=0の解がx=msgとなるように係数c0〜c2を定めてエンコード処理Ecdしても良い。この場合には、方程式から2つの解が導かれるため、一意復号性を保つために、方程式が平文msgを重解に持つようにしても良い。
あるいは、もう一つの解は平文msgよりも大きな(あるいは小さな)値となるように係数c0〜c2を定め、2次方程式を解いた後に小さな(あるいは大きな)値を平文msgとして選択しても良い。
(5)可換環へのエンコード処理
平文msgがエンコードされる空間をSの部分空間Mに限らず、多項式環S[x1, …, xn]の部分空間とすることもできる。このとき、エンコード結果はx1, …, xnを変数とする多項式e(x1, …, xn)となる。
例えば、秘密鍵sk=(s1, …, sn),degti>Σi>j≧0 degtjとし、エンコード処理をEcd(msg)=msg1,1, …, 112…xn+msg0,1, …, 12…xn+…+msg0,0, …, 1n+msg0,0, …, 0、とすることができる。
但し、degtiは多項式siのtに関する次数を表す。
平文msgは、msg=msg1,1, …, 1||msg0,1, …, 1||…||msg0,0, …, 0とする。
復号処理におけるデコード処理Dcdでは、暗号文c(x1, …, xn)に秘密鍵skを代入し、次式のように平文多項式e(s1, …, sn)が計算される。
c(s1, …, sn)=e(s1, …, sn
得られた平文多項式e(s1, …, sn)のtに関する最高次の係数からビット列msg1,1, …, 1が復元される。
次に、平文多項式e(s1, …, sn)−msg1,1, …, 112…snの最高次の係数からビット列msg0,1, …, 1が復元される。
同様にして、各ビット列msg0,0, …, 1,…,msg0,0, …, 0を順番に復元し、各ビット列から平文msg=msg1,1, …, 1||msg0,1, …, 1||…||msg0,0, …, 0を復元することができる。
(6)複数の種類の平文に対するエンコード処理
エンコード処理Ecdは単一の平文msgのみでなく、例えば身長と体重など、複数の種類の平文msg(1), …, msg(m)を部分空間Mの要素に変換しても良い。
この場合、エンコード処理Ecdは、例えば、Ecd(msg(1), …, msg(m))=e=Σmsg(i)i-1やEcd(msg(1), …, msg(m))=e=Σmsg(i)αi-1としても良い。ここで、エンコードされるmsg(i)の数は、前述の次数dとwに対して、(dw−1)個以下とする。
このようなエンコード処理Ecdを用いる場合には、共通鍵暗号方式はそれぞれの平文msgの種類(例えばmsg(1)に身長を割り当ててmsg(2)に体重を割り当てる場合には、その各々)について加法に関する準同型性を満たす。
また、上述と同様に、平文msg(i)のそれぞれを更にビット列msg(i) 1||…||msg(i) mなどと分割して、エンコード処理をEcd(msg(1), …, msg(m))=e=Σmsg(i) jm*i+j-1又はEcd(msg(1), …, msg(m))=e=Σmsg(i) jαm*i+j-1としても良い。
また、共通鍵暗号方式に乗法に関する準同型性を要求する場合、暗号文の乗算結果を因数分解することにより、例えば、乗算結果がいずれの暗号文に基づくかなどの情報が漏洩する可能性がある。
そのため、乗法の準同型性を損なわない範囲で、暗号文の乗算結果に部分空間Mの要素を加算しても良い。
例えば、部分空間Mを多項式環S=A[t]の部分集合とするとき、係数c0=msgと設定し、他の係数c1, …, cm-1に乱数を設定するエンコード処理Ecd(msg)=e=Σciiを用いるとする。
この場合、暗号文の乗算結果のうち、乗法の準同型性に影響を与える項は定数項(t0)であり、t, …, t2(m-1)の項は乗法の準同型性には影響を与えない。そこで、係数c0=0と設定し、係数c1, …, c2(m-1)をランダムに設定したランダム多項式Σciiを作成し、当該ランダム多項式Σciiを暗号文の乗算結果に加算しても良い。このランダム多項式Σciiはマスク多項式と呼んでもよい。
(7)共通鍵の更新を行うためのエンコード処理
エンコード処理Ecdは、平文msgを多項式環Sの部分集合Mの要素(多項式)に変換する。上述のmsgiやrndiの代わりに、共通鍵の更新用の情報ksiとして利用しても良い。送信者と受信者は、予め定められた手順で、ksiに基づき共通鍵skjを更新する。
エンコード処理の方法は、上述の(1)から(7)に限定されるものではなく、それら二つ以上を組み合わせた方法を用いても良い。
上述した第1の実施形態および変形例では、秘密鍵skを解に含むマスク多項式g(x1, …, xn)を使用して、c(x1, …, xn)=g(x1, …, xn)+eにより暗号化処理を行った。このとき、部分空間Mの中で可逆な要素D(たとえばD=1)を使用して、暗号化処理をc(x1, …, xn)=[g(x1, …, xn)+D]*eとして計算してもよい。ここで、「*」はR内の乗算をあらわす。この場合、暗号文c(x1, …, xn)は、秘密鍵skを入力して、c(s1, …, sn)=[g(s1, …, sn)+D]*e=D*eを計算し、D*eをDで割り算してeを計算してもよい。
<第2の実施形態の概要>
次に、第2の実施形態の概要を説明する。
第1の実施形態では、可換環R及びSの要素を用いる共通鍵暗号装置の構成を示した。 第2の実施形態では、第1の実施形態におけるマスク多項式g(x1, …, xn)と秘密鍵sk=(s1, …, sn)として、代数曲面多項式X(x,y)とそのセクション(ux(t),uy(t))を用いている。ここで、マスク多項式g(x1, …, xn)は、多項式環S上で定義される代数曲面を表す代数曲面多項式X(x,y)である。当該代数曲面は、x,yの2変数を含む代数曲面多項式X(x,y)で表される零点の集合であり、x,yがtでパラメタライズされた曲線が存在する。秘密鍵(共通鍵)skは、当該曲線を表すd次のセクション多項式(ux(t),uy(t))である。
具体的には、Fq={0,1,2, …, q−1}をq元体とする。q元体Fq上で定義されてtを変数とする1変数多項式が存在する空間をFq[t]とする。
空間Fq[t]={Σcii|ci∈Fq}上の代数曲面とはx,yに関する次数がw次の2変数多項式X(x,y)∈(Fq[t])[x,y]で表される零点の集合であり、X(ux(t),uy(t))=0を満たす代数曲線(ux(t),uy(t))∈(Fq[t])2を代数曲面多項式X(x,y)=0のセクションという。なお、ux(t),uy(t)は、x,yがtでパラメタライズされた多項式である。
代数曲線(ux(t),uy(t))が与えられたときに、代数曲線(ux(t),uy(t))をセクションにもつような代数曲面多項式X(x,y)=0を構成することは容易である。しかしながら、代数曲面多項式X(x,y)=0が与えられたときに、特定のX(x,y)を除けば、代数曲面多項式X(x,y)=0のセクション(ux(t),uy(t))を求める方法は知られていない。このため、第2の実施形態では、共通鍵暗号方式の秘密鍵skとして、代数曲面のセクションを用いている。
第2の実施形態の記法では、第1の実施形態における多項式環S,可換環R,マスク多項式g(x1…,xn),暗号文c(x1…,xn),秘密鍵skを、それぞれ、空間Fq[t],空間(Fq[t])[x,y],代数曲面多項式X(x,y),暗号文c(x,y),セクション(ux(t),uy(t))と設定したものと見做すことができる。なお、体は環でもあるので、q元体Fqは多項式環S及び可換環Rを含む。
あるいは、第2の実施形態の記法では、第1の実施形態における可換環R,代数曲面多項式X(x,y)∈(Fq[t])[x,y],暗号文c(x1…,xn)∈(Fq[t])[x,y]を、それぞれ、空間Fq[x,y,t],代数曲面多項式X(x,y,t)∈Fq[x,y,t],暗号文c(x,y,t)∈Fq[x,y,t]と見做すこともできる。
以降の説明では、誤解のない限り、前者の記法を用いている。
これらq元体Fq及び位数qは、システムにおける公開パラメータとしても良いし、共通鍵を共有する通信者間での秘密情報としても良い。
続いて、第2の実施形態を説明するための記法を詳細に説明する。
秘密鍵skは、Fq[t]の2個の要素(ux(t),uy(t))で構成される。
第2の実施形態においては、平文msgはエンコード処理Ecdにより、Fq[t]の部分集合Mの要素にエンコードされる。ここで、平文msgから部分集合Mの要素eへのエンコード処理をe=Ecd(msg)で表す。
一方、部分集合Mの要素eからデコード結果msg’へのデコード処理をmsg’=Dcd(e)で表す。
エンコード処理Ecdあるいはデコード処理Dcdは平文msgあるいは要素eのほかに、秘密鍵skを入力として受け付け、e=Ecd(sk,msg)あるいはmsg’=Dcd(sk,e)を演算してもよい。エンコード処理Ecdとデコード処理Dcdは、平文msg=Dcd(Ecd(msg))となるように設計する(必要に応じてエンコード処理Ecdとデコード処理Dcdの入力に秘密鍵skを追加する)。
例えば、エンコード処理Ecdは、平文msgをビット表現してn個のビット列msg1||msg2||…||msgnに分割し(ここで||はビット連結を表す)、平文多項式e=Σmsgii-1を出力してもよい。ここで、nは、前述の次数dとwに対して、n≦dw−1をみたす値である。この場合、デコード処理Dcd(sk,e)により、平文多項式eからn個のビット列msg1||msg2||…||msgnを抽出し、平文msg=msg1||msg2||…||msgnを復元できる。
あるいは、平文msgをl進展開して(例えばl=216=65536)、各桁を各ビット列msgiに対応付けても良い。その際、デコード処理は、l進展開された値を2進数あるいは10進数など所定の形式に変換して平文msgを復元する。
さらに、上述ではエンコード処理を平文msgに対して確定的に計算する例を記載したが、各ビット列msgiのうちのいくつかをランダムな整数rndiとし、エンコード処理を平文msgに対して確率的に計算しても良い。その際、デコード処理はランダムな整数rndiを除く各ビット列msgiを取り出して、平文msgを復元する。
これら、エンコード処理Ecd及びデコード処理Dcdは、システムにおける公開パラメータとしても良いし、共通鍵を共有する通信者間での秘密情報としても良い。
<第2の実施形態の具体的な構成>
以下、第2の実施形態について具体的に説明する。
図7は第2の実施形態に係る共通鍵暗号装置の構成を示す図であり、図8は同実施形態における共通鍵復号装置の構成を示す図である。
ここで、共通鍵暗号装置400は、パラメータ記憶部401、入出力部402及び暗号化処理部403を備えている。
パラメータ記憶部401は、前述した秘密鍵skのほかに、安全性のパラメータを記憶する。パラメータ記憶部401は、空間Fq[t]及び空間(Fq[t])[x,y]の情報を記憶してもよい。また、パラメータ記憶部401は、エンコード処理Ecdの情報を記憶してもよい。
入出力部402は、平文msgの入力を受け付け、暗号化処理部403で計算した暗号文c(x,y)を出力する。
暗号化処理部403は、入出力部402で入力を受け付けた平文msgとパラメータ記憶部401が記憶する情報に基づいて、暗号文c(x,y)を計算する。
一方、共通鍵復号装置500は、図8に示すように、パラメータ記憶部501、入出力部502及び復号処理部503を備えている。
パラメータ記憶部501は、秘密鍵skのほかに、安全性のパラメータを記憶する。パラメータ記憶部501は、空間Fq[t]及び空間(Fq[t])[x,y]の情報を記憶してもよい。また、パラメータ記憶部501は、デコード処理Dcdの情報を記憶してもよい。
入出力部502は、暗号文c(x,y)を入力として受け付け、平文msg=msg’を出力する。
復号処理部503は、入出力部502で受け付けた暗号文c(x,y)とパラメータ記憶部501が記憶する情報に基づいて暗号文c(x,y)を復号し、復号結果msg’である平文msg=msg’を得る。
次に、以上のように構成された共通鍵暗号装置及び共通鍵復号装置の動作について図9及び図10のフローチャートを用いて説明する。
共通鍵暗号装置400は、図9に示すように、入出力部402が、平文msgの入力を受け付ける(ST31)。また、パラメータ記憶部401内のパラメータは、適宜、暗号化処理部403に読み出される。パラメータは、例えば、セクション(ux(t),uy(t))及び空間(Fq[t])[x,y]等である。
暗号化処理部403は、平文msgを空間Fq[t]の部分空間Mの多項式の各項に埋め込むようにエンコード処理を実行し、平文多項式e=Ecd(msg)を計算する(ST32)。
暗号化処理部403は、空間Fq[t]上で定義される空間(Fq[t])[x,y]に基づいて、セクション多項式(ux(t),uy(t))を解に含む代数曲面多項式X(x,y)を生成する。例えば、暗号化処理部403は、代数曲面多項式X(x,y)を空間(Fq[t])[x,y]からランダムに選択する(ST33〜ST35)。なお、代数曲面多項式X(x,y)は、平文多項式eに加算されて平文多項式eを隠蔽する。
具体的には、暗号化処理部403は、空間(Fq[t])[x,y]から多項式f(x,y)をランダムに選択する(ST33)。多項式f(x,y)は、ランダム多項式f(x,y)と呼んでもよい。
暗号化処理部403は、多項式f(x,y)の2変数x,yに秘密鍵(ux(t),uy(t))を代入した多項式f(ux(t),uy(t))を計算し(ST34)、代数曲面多項式X(x,y)=f(x,y)−f(ux(t),uy(t))を設定する(ST35)。
ここで、代数曲面多項式X(x,y)や多項式f(x,y)は、空間(Fq[t])[x,y]から選ばれるのではなく、空間(Fq[t])[x,y]の部分集合から選ばれても良い。
あるいは、代数曲面多項式X(x,y)や多項式f(x,y)は、ランダムに選ばれるのではなく、暗号化を処理する日時や秘密鍵、あるいは平文などに依存して選ばれても良い。また、ステップST33〜ST35は、ステップST31が実行される前に予め実行されても良い。
暗号化処理部403は、平文多項式eと代数曲面多項式X(x,y)とを加算する処理により、暗号文c(x,y)=e+X(x,y)を計算する(ST36)。
共通鍵暗号装置400は、暗号文c(x,y)を入出力部402から出力する(ST37)。
以上が共通鍵暗号装置400の動作である。続いて、共通鍵復号装置500の動作を説明する。
共通鍵復号装置500は、図10に示すように、入出力部502が、暗号文c(x,y)の入力を受け付ける(ST41)。
復号処理部503は、パラメータ記憶部501内の秘密鍵sk=(ux(t),uy(t))に基づいて、暗号文c(x,y)から平文多項式eを復号する。例えば、復号処理部503は、秘密鍵sk=(ux(t),uy(t))を暗号文c(x,y)に代入し、次式に示すように、平文多項式eを計算する(ST42)。
c(ux(t),uy(t))=e+X(ux(t),uy(t))=e
復号処理部503は、復号した平文多項式eから平文msgを復号する。すなわち、復号処理部503は、平文多項式eをデコードして、復号結果msg’=Dcd(e)を計算する(ST43)。
例えば、前述したように、Ecd(msg)=e=Σmsgii-1、但し、平文msg=msg1||msg2||…||msgn、の場合には、ステップST42で計算される多項式c(ux(t),uy(t))は、tを変数とする平文多項式e=Σmsgii-1である。従って、平文多項式e=Σmsgii-1において、tiの係数をビット列msg’iに割り当てて復号結果msg’=msg’1||msg’2||…||msg’nと設定することにより、平文msg=msg’を復元することができる。
最後に、共通鍵復号装置500は、入出力部502から平文mgs=msg’を出力する(ST44)。
上述したように本実施形態によれば、第1の実施形態におけるマスク多項式として、空間Fq[t](多項式環S)上で定義される代数曲面を表す代数曲面多項式X(x,y)を用いる。この代数曲面は、x,yの2変数を含む当該代数曲面多項式X(x,y)で表される零点の集合であり、x,yがtでパラメタライズされた曲線が存在する。第1の実施形態における秘密鍵sk(共通鍵)として、当該曲線を表すセクション多項式(ux(t),uy(t))を用いる。このような構成により、第1の実施形態と同様の効果を得ることができる。
すなわち、本実施形態によれば、平文msgを空間Fq[t]の部分空間の多項式の各項に埋め込むことにより平文多項式eを生成し、平文多項式eと、セクション多項式(共通鍵)を解に含む代数曲面多項式(マスク多項式)とを加算する処理により、暗号文c(x,y)を生成する構成により、並列度を上げて、計算の効率を向上させることができる。
また、本実施形態によれば、このように生成された暗号文c(x,y)の入力を受け付けると、共通鍵(セクション多項式)に基づいて、当該暗号文c(x,y)から平文多項式eを復号し、当該復号した平文多項式eから平文msgを復号する構成により、並列度を上げて、計算の効率を向上させることができる。
従って、前述同様に、一つの暗号文に多倍長精度の平文を埋め込むことができ、多倍長演算を行うことなくCPUの処理単位よりも大きいサイズの平文を暗号化できる。
<第2の実施形態の変形例>
第2の実施形態に関しても、第1の実施形態の変形例2及びその他の変形例と同様に、準同型演算及びエンコード処理(1)〜(7)に関する変形例を構成することができる。 第1の実施形態と同様に、上述した第2の実施形態および変形例では、秘密鍵skを解に含むマスク多項式X(x,y)を使用して、c(x,y)=X(x,y)+eにより暗号化処理を行った。このとき、部分空間Mの中で可逆な要素D(たとえばD=1)を使用して、暗号化処理をc(x,y)=[X(x,y)+D]*eとして計算してもよい。ここで、「*」はR内の乗算をあらわす。この場合、暗号文c(x,y)は、秘密鍵skを入力して、c(ux(t),uy(t))=[X(x,y)+D]*e=D*eを計算し、D*eをDで割り算してeを計算してもよい。
以上説明した少なくとも一つの実施形態によれば、平文情報を多項式環の部分空間の多項式の各項に埋め込むことにより平文多項式を生成し、平文多項式と、共通鍵を解に含むマスク多項式とを加算する処理により、暗号文を生成する構成により、並列度を上げて、計算の効率を向上させることができる。
また、このように生成された暗号文の入力を受け付けると、共通鍵に基づいて、当該暗号文から平文多項式を復号し、当該復号した平文多項式から平文情報を復号する構成により、並列度を上げて、計算の効率を向上させることができる。
なお、上記の各実施形態に記載した手法は、コンピュータに実行させることのできるプログラムとして、磁気ディスク(フロッピー(登録商標)ディスク、ハードディスクなど)、光ディスク(CD−ROM、DVDなど)、光磁気ディスク(MO)、半導体メモリなどの記憶媒体に格納して頒布することもできる。
また、この記憶媒体としては、プログラムを記憶でき、かつコンピュータが読み取り可能な記憶媒体であれば、その記憶形式は何れの形態であっても良い。
そして、記憶媒体からコンピュータにインストールされたプログラムの指示に基づきコンピュータ上で稼働しているOS(オペレーティングシステム)や、データベース管理ソフト、ネットワークソフト等のMW(ミドルウェア)等が上記実施形態を実現するための各処理の一部を実行しても良い。
さらに、各実施形態における記憶媒体は、コンピュータと独立した媒体に限らず、LANやインターネット等により伝送されたプログラムをダウンロードして記憶または一時記憶した記憶媒体も含まれる。
また、記憶媒体は1つに限らず、複数の媒体から上記の各実施形態における処理が実行される場合も本発明における記憶媒体に含まれ、媒体構成は何れの構成であっても良い。
なお、各実施形態におけるコンピュータは、記憶媒体に記憶されたプログラムに基づき、上記の各実施形態における各処理を実行するものであって、パソコン等の1つからなる装置、複数の装置がネットワーク接続されたシステム等の何れの構成であっても良い。
また、各実施形態におけるコンピュータとは、パソコンに限らず、情報処理機器に含まれる演算処理装置、マイコン等も含み、プログラムによって本発明の機能を実現することが可能な機器、装置を総称している。
なお、本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
100,400…共通鍵暗号装置、101,201,301,401,501…パラメータ記憶部、102,202,302,402,502…入出力部、103,403…暗号化処理部、200,500…共通鍵復号装置、203,503…復号処理部、300…準同型演算装置、303…準同型演算部。

Claims (10)

  1. 第1の多項式環の複数の要素で構成される共通鍵を記憶する記憶部と、
    平文情報の入力を受け付ける平文受付部と、
    前記入力を受け付けた平文情報に基づく値、あるいは前記平文情報と乱数とに基づく値を前記第1の多項式環の部分空間の多項式の項に埋め込むことにより、平文多項式を生成する平文多項式生成部と、
    前記第1の多項式環上で定義される第2の可換環に基づいて、前記共通鍵を解に含むマスク多項式を生成するマスク多項式生成部と、
    前記平文多項式と前記マスク多項式とを加算して、暗号文を生成する暗号化部と、
    を備える共通鍵暗号装置。
  2. 第1の多項式環の複数の要素で構成される共通鍵を記憶する記憶部と、
    平文情報の入力を受け付ける平文受付部と、
    記平文情報を複数の部分情報に加法的に分割し、前記複数の部分情報を前記第1の多項式環の部分空間の多項式の各項の係数として埋め込むことにより平文多項式を生成する平文多項式生成部と、
    前記第1の多項式環上で定義される第2の可換環に基づいて、前記共通鍵を解に含むマスク多項式を生成するマスク多項式生成部と、
    前記平文多項式と前記マスク多項式とを用いて、暗号文を生成する暗号化部と、
    を備える共通鍵暗号装置。
  3. 請求項1または2に記載の共通鍵暗号装置において、
    前記平文多項式生成部、前記マスク多項式生成部及び前記暗号化部によって2つの平文多項式から個別に2つの暗号文が生成されたとき、当該2つの暗号文を互いに加算する準同型演算処理により、新たな暗号文を生成する準同型演算部を備え、
    前記共通鍵に基づいて前記新たな暗号文を復号した結果は、前記2つの平文多項式を互いに加算した結果と等しい、共通鍵暗号装置。
  4. 請求項1または2に記載の共通鍵暗号装置において、
    前記マスク多項式は、前記第1の多項式環上で定義される代数曲面を表す代数曲面多項式であり、
    前記代数曲面は、x,yの2変数を含む前記代数曲面多項式で表される零点の集合であり、前記x,yがtでパラメタライズされた曲線が存在し、
    前記共通鍵は、前記曲線を表すセクション多項式である、共通鍵暗号装置。
  5. 第1の多項式環の部分空間の多項式の項に平文情報に基づく値あるいは前記平文情報と乱数とに基づく値を埋め込むことにより生成された平文多項式と、前記第1の多項式環の複数の要素で構成される共通鍵を解に含むマスク多項式であって前記第1の多項式環上で定義される第2の可換環に基づいて生成された前記マスク多項式と、を加算して生成された暗号文の入力を受け付ける暗号文受付部と、
    前記共通鍵を記憶する記憶部と、
    前記記憶部内の前記共通鍵に基づいて、前記暗号文から平文多項式を復号する平文多項式復号部と、
    前記復号した平文多項式の各項から前記平文情報の一部を復号する復号部と、
    を備える共通鍵復号装置。
  6. 文情報複数の部分情報に加法的に分割第1の多項式環の部分空間の多項式の各項に前記複数の部分情報係数として埋め込むことにより生成された平文多項式と、前記第1の多項式環の複数の要素で構成される共通鍵を解に含むマスク多項式であって前記第1の多項式環上で定義される第2の可換環に基づいて生成された前記マスク多項式と、を用いて生成された暗号文の入力を受け付ける暗号文受付部と、
    前記共通鍵を記憶する記憶部と、
    前記記憶部内の前記共通鍵に基づいて、前記暗号文から平文多項式を復号する平文多項式復号部と、
    記復号された平文多項式の各項の係数を前記複数の部分情報として抽出し、当該複数の部分情報の総和を計算することにより前記平文情報を復号する復号部と
    を備える共通鍵復号装置。
  7. 請求項5または6に記載の共通鍵復号装置において、
    前記入力を受け付けた暗号文は、2つの平文多項式から個別に生成された2つの暗号文を互いに加算する準同型演算処理により生成されており、
    前記復号部により復号された結果は、前記2つの平文多項式を互いに加算した結果と等しい、共通鍵復号装置。
  8. 請求項5または6に記載の共通鍵復号装置において、
    前記マスク多項式は、前記第1の多項式環上で定義される代数曲面を表す代数曲面多項式であり、
    前記代数曲面は、x,yの2変数を含む前記代数曲面多項式で表される零点の集合であり、前記x,yがtでパラメタライズされた曲線が存在し、
    前記共通鍵は、前記曲線を表すセクション多項式である、共通鍵復号装置。
  9. コンピュータを
    第1の多項式環の複数の要素で構成される共通鍵を記憶する記憶手段と、
    平文情報の入力を受け付ける平文受付手段と、
    前記入力を受け付けた平文情報に基づく値、あるいは前記平文情報と乱数とに基づく値を前記第1の多項式環の部分空間の多項式の項に埋め込むことにより、平文多項式を生成する平文多項式生成手段と、
    前記第1の多項式環上で定義される第2の可換環に基づいて、前記共通鍵を解に含むマスク多項式を生成するマスク多項式生成手段と、
    前記平文多項式と前記マスク多項式とを加算して、暗号文を生成する暗号化手段
    として機能させる共通鍵暗号プログラム。
  10. コンピュータを、
    第1の多項式環の部分空間の多項式の項に平文情報に基づく値あるいは前記平文情報と乱数とに基づく値を埋め込むことにより生成された平文多項式と、前記第1の多項式環の複数の要素で構成される共通鍵を解に含むマスク多項式であって前記第1の多項式環上で定義される第2の可換環に基づいて生成された前記マスク多項式と、を加算して生成された暗号文の入力を受け付ける暗号文受付手段と、
    前記共通鍵を記憶する記憶手段と、
    前記記憶手段内の前記共通鍵に基づいて、前記暗号文から平文多項式を復号する平文多項式復号手段と、
    前記復号した平文多項式の各項から前記平文情報の一部を復号する復号手段
    として機能させる共通鍵復号プログラム。
JP2013258653A 2013-12-13 2013-12-13 共通鍵暗号装置及びプログラム、並びに、共通鍵復号装置及びプログラム Active JP6173904B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2013258653A JP6173904B2 (ja) 2013-12-13 2013-12-13 共通鍵暗号装置及びプログラム、並びに、共通鍵復号装置及びプログラム
US14/565,785 US9413729B2 (en) 2013-12-13 2014-12-10 Symmetric encryption apparatus and storage medium, and symmetric decryption apparatus and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013258653A JP6173904B2 (ja) 2013-12-13 2013-12-13 共通鍵暗号装置及びプログラム、並びに、共通鍵復号装置及びプログラム

Publications (2)

Publication Number Publication Date
JP2015114629A JP2015114629A (ja) 2015-06-22
JP6173904B2 true JP6173904B2 (ja) 2017-08-02

Family

ID=53369892

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013258653A Active JP6173904B2 (ja) 2013-12-13 2013-12-13 共通鍵暗号装置及びプログラム、並びに、共通鍵復号装置及びプログラム

Country Status (2)

Country Link
US (1) US9413729B2 (ja)
JP (1) JP6173904B2 (ja)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9281941B2 (en) 2012-02-17 2016-03-08 International Business Machines Corporation Homomorphic evaluation including key switching, modulus switching, and dynamic noise management
CN105339995B (zh) * 2013-07-18 2018-04-06 日本电信电话株式会社 解密装置、解密能力提供装置、其方法、以及记录介质
JP6413743B2 (ja) * 2014-12-16 2018-10-31 富士通株式会社 暗号処理装置、暗号処理方法、及び暗号処理プログラム
US10333696B2 (en) 2015-01-12 2019-06-25 X-Prime, Inc. Systems and methods for implementing an efficient, scalable homomorphic transformation of encrypted data with minimal data expansion and improved processing efficiency
US9813243B1 (en) * 2015-03-30 2017-11-07 EMC IP Holding Company LLC Methods and apparatus for password-based secret sharing schemes
JP6961324B2 (ja) * 2015-08-25 2021-11-05 株式会社日立製作所 検索可能暗号処理システム
US9973334B2 (en) * 2015-09-03 2018-05-15 Cisco Technology, Inc. Homomorphically-created symmetric key
NL2015955B1 (en) * 2015-12-14 2017-06-28 Koninklijke Philips Nv Calculating device and method.
EP3379768B1 (en) 2016-01-18 2019-11-06 Mitsubishi Electric Corporation Encryption device, encrypted text conversion device, encryption program, encrypted text conversion program, encryption method, and encrypted text conversion method
US10476661B2 (en) * 2016-06-27 2019-11-12 Fujitsu Limited Polynomial-based homomorphic encryption
KR102520502B1 (ko) * 2016-08-02 2023-04-12 엑스-로고스, 엘엘씨 기하 대수학을 이용한 강화된 데이터-중심 암호화 시스템을 위한 방법 및 시스템
CN106953722B (zh) * 2017-05-09 2017-11-07 深圳市全同态科技有限公司 一种全同态加密的密文查询方法和系统
CN108960552B (zh) * 2017-05-27 2022-04-29 华为技术有限公司 一种基于实时电价的计费方法及相关设备
JP7027060B2 (ja) * 2017-08-03 2022-03-01 株式会社日立製作所 秘密分散システム及びその方法
KR102424856B1 (ko) * 2019-05-09 2022-07-22 구글 엘엘씨 Rlwe 암호문들의 압축 및 불확정적 확장
CN113098675B (zh) * 2019-12-23 2023-04-18 郑珂威 基于多项式完全同态的二进制数据加密系统及方法
EP4083972A4 (en) * 2019-12-24 2024-01-03 Univ Tohoku SECRET CALCULATION APPARATUS, SECRET CALCULATION METHOD AND PROGRAM
JP7273742B2 (ja) * 2020-02-07 2023-05-15 株式会社東芝 暗号化装置、復号装置、暗号方法、復号方法、暗号化プログラム及び復号プログラム
JP6962629B1 (ja) * 2021-03-23 2021-11-05 Eaglys株式会社 データ共有システム、データ共有方法、およびデータ共有プログラム
CN114301583B (zh) * 2021-12-22 2023-10-24 阿里巴巴(中国)有限公司 密文压缩方法、装置、设备和存储介质
CN115688167B (zh) * 2022-10-13 2023-09-26 北京沃东天骏信息技术有限公司 匿踪查询方法、装置和系统及存储介质

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4575283B2 (ja) * 2005-11-15 2010-11-04 株式会社東芝 暗号装置、復号装置、プログラム及び方法
US9313028B2 (en) * 2012-06-12 2016-04-12 Kryptnostic Method for fully homomorphic encryption using multivariate cryptography

Also Published As

Publication number Publication date
JP2015114629A (ja) 2015-06-22
US9413729B2 (en) 2016-08-09
US20150172258A1 (en) 2015-06-18

Similar Documents

Publication Publication Date Title
JP6173904B2 (ja) 共通鍵暗号装置及びプログラム、並びに、共通鍵復号装置及びプログラム
JP6934963B2 (ja) データを暗号化する方法およびシステム
KR101847492B1 (ko) 데이터 암호화 장치 및 방법, 데이터 복호화 장치 및 방법
JP4575283B2 (ja) 暗号装置、復号装置、プログラム及び方法
JP4384056B2 (ja) 暗号装置、復号装置、鍵生成装置、プログラム及び方法
JP4664850B2 (ja) 鍵生成装置、プログラム及び方法
JP4282546B2 (ja) 暗号装置、復号装置、鍵生成装置、プログラム及び方法
JP6386198B1 (ja) 暗号化装置及び復号装置
JP2008026498A (ja) 暗号装置、復号装置、プログラム及び方法
JP5852518B2 (ja) 認証暗号化装置、認証復号装置、およびプログラム
JPWO2015107620A1 (ja) 暗号システム及び再暗号化装置
JP5732429B2 (ja) 秘密分散システム、データ分散装置、データ復元装置、秘密分散方法、およびプログラム
JP2020053860A (ja) 秘匿計算装置、秘匿計算方法及び秘匿計算プログラム
JP5784662B2 (ja) 暗号化データ演算システム、装置及びプログラム
JP2001282103A (ja) 暗号化方法
CN112668042B (zh) 一种文件加密方法
JP7443217B2 (ja) 暗号化装置、復号装置、暗号方法、復号方法、暗号化プログラム及び復号プログラム
WO2021171543A1 (ja) 認証暗号化装置、認証復号装置、認証暗号化方法、認証復号方法および記録媒体
JP2018092010A (ja) 暗号化装置と暗号化方法、暗号化プログラム及び鍵生成装置と鍵生成方法、鍵生成プログラム
JP5103407B2 (ja) 暗号化数値二進変換システム、暗号化数値二進変換方法、暗号化数値二進変換プログラム
JP2017038336A (ja) 復号方法
Charru et al. Improved Cryptography Algorithm to Enhanced Data Security
JP2011013544A (ja) 暗号化数値二進変換システム及び方法とプログラム
JP2010049214A (ja) 暗号化装置、復号装置、暗号文検証装置、暗号化方法、復号方法及びプログラム
JP3592118B2 (ja) 暗号化装置,暗号通信方法,暗号通信システム及び記録媒体

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160831

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170428

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170509

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170522

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170705

R151 Written notification of patent or utility model registration

Ref document number: 6173904

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

Free format text: JAPANESE INTERMEDIATE CODE: R313114

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350