CN109643504B - 加密系统、加密方法以及计算机可读的存储介质 - Google Patents

加密系统、加密方法以及计算机可读的存储介质 Download PDF

Info

Publication number
CN109643504B
CN109643504B CN201780051797.XA CN201780051797A CN109643504B CN 109643504 B CN109643504 B CN 109643504B CN 201780051797 A CN201780051797 A CN 201780051797A CN 109643504 B CN109643504 B CN 109643504B
Authority
CN
China
Prior art keywords
user
master
encryption
key
public key
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
CN201780051797.XA
Other languages
English (en)
Other versions
CN109643504A (zh
Inventor
平野贵人
川合丰
花冈悟一郎
缝田光司
J·舒尔特
松田隆宏
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric 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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Publication of CN109643504A publication Critical patent/CN109643504A/zh
Application granted granted Critical
Publication of CN109643504B publication Critical patent/CN109643504B/zh
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
    • 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/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • 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
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
    • 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/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • 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/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • 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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3066Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Algebra (AREA)
  • Storage Device Security (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明提供加密系统、加密方法以及计算机可读的存储介质。主密钥生成装置(200)生成主公开密钥和主秘密密钥。用户密钥生成装置(300)使用主公开密钥,生成用户公开密钥和用户秘密密钥。管理装置(700)取得运算过程。数据保管部保管利用用户公开密钥进行加密后的数据,作为加密数据。管理装置(700)从数据保管部选择对在运算过程中使用的数据进行加密后的加密数据。管理装置(700)根据运算过程对加密数据进行同态运算,并输出同态运算的运算结果作为加密运算结果。主解密装置(500)取得加密运算结果,并利用主秘密密钥对所取得的加密运算结果进行解密。

Description

加密系统、加密方法以及计算机可读的存储介质
技术领域
本发明涉及加密系统、加密方法以及加密程序。特别涉及使用同态技术进行信息处理而不用对加密数据进行解密的加密系统、加密方法以及加密程序。
背景技术
同态加密是指能够在将数据加密的状态下进行信息处理的加密技术。具体而言,同态加密是如下的加密技术:通过对密文彼此实施特殊运算,能够在不得知明文的情况下,仅使用公开信息来生成运算结果的密文。运算结果的密文例如是密文彼此的各密文内容的明文之和的密文、密文彼此的各密文内容的明文之积的密文、或者组合了和与积的运算的运算结果的密文。例如,作为这样的同态加密技术,存在专利文献1~2和非专利文献1~7等所公开的技术。
近年来,通过云服务等的普及,能够在因特网上进行数据管理和数据处理。但是,因特网上的数据管理和数据处理存在如下的危险性:作为数据管理的委托方的云等服务器感染计算机病毒等恶意软件。此外,还存在如下的危险性:由于服务器的管理者进行不正当行为,将保存于服务器的数据泄漏到外部。假设在保存于服务器的数据为个人信息或企业机密数据的情况下,该泄漏成为非常大的问题。
作为避免这样的安全威胁的方法,存在加密技术。但是,在单纯地对数据进行加密并保管到服务器中时,产生数据处理变得困难的问题。为了避免这样的问题,作为常用方法,存在如下方法:在对保管在服务器上的加密数据临时进行解密后进行数据处理。但是,该方法导致数据在服务器内在一定期间内恢复到明文。并且,可能在加密数据恢复为明文的瞬间被攻击而导致信息泄漏。因此,该方法中,安全措施是不充分的。作为能够解决这样的问题的加密技术,已知能够在将数据加密的状态下进行运算的“同态加密技术”。近年来公开了多种这样的“同态加密技术”的具体方法。
另外,同态加密技术被大致分为组同态加密、Somewhat同态加密和完全同态加密这三种。如被熟知的RSA加密方式和非专利文献1、2那样,组同态加密是仅能够执行加法运算或乘法运算的同态加密。此外,如非专利文献3、4那样,Somewhat同态加密能够执行加法运算和乘法运算的任意一个,但是,是运算的执行次数存在限制的同态加密。如非专利文献5、6那样,完全同态加密是在执行次数没有限制的情况下执行加法运算和乘法运算的任意一个的同态加密。
现有技术文献
专利文献
专利文献1:国际公开第2012/169153号
专利文献2:日本特开2015-184490号公报
非专利文献
非专利文献1:P.Paillier,“Public-Key Cryptosystems Based on CompositeDegree Residuosity Classes”,Eurocrypt 1999,Lecture Notes in Computer Science1592,Springer.
非专利文献2:E.Bresson,D.Catalano,and D.Pointcheval,“A Simple Public-Key Cryptosystem with a Double Trapdoor Decryption Mechanism and itsApplications”,Asiacrypt 2003,Lecture Notes in Computer Science 2894,Springer.
非专利文献3:D.Boneh,E-J.Goh,and K.Nissim,“Evaluating 2-DNF Formulason Ciphertexts”,TCC 2005,Lecture Notes in Computer Science 3378,Springer.
非专利文献4:D.Catalano and D.Fiore,“Boosting Linearly-HomomorphicEncryption to Evaluate Degree-2Functions on Encrypted Data”,IACR CryptologyePrint Archive:Report 2014/813.
非专利文献5:C.Gentry,“Fully Homomorphic Encryption Using IdealLattices”,STOC 2009,ACM.
非专利文献6:C.Gentry,A.Sahai,and B.Waters,“Homomorphic Encryptionfrom Learning with Errors:Conceptually-Simpler,Asymptotically-Faster,Attribute-Based”,Crypto 2013,Lecture Notes in Computer Science 8042,Springer.
非专利文献7:D.M.Freeman,“Converting Pairing-Based Cryptosystems fromComposite-Order Groups to Prime-Order Groups”,Eurocrypto 2010,Lecture Notesin Computer Science 6110,Springer.
发明内容
发明所要解决的课题
基于公开密钥加密的已有的大多同态加密技术由于公开密钥和秘密密钥是1对1地对应的,因此构成为1个密文仅能够由1个用户进行解密。即,在n个不同用户共享相同数据的情况下,必须使用各用户的公开密钥生成n个密文,存在耗费保管成本的课题。
另一方面,考虑到这样的课题而设计的同态加密技术在专利文献1、2以及非专利文献2、6等中被公开。但是,这些技术还存在以下那样的课题。
在非专利文献2中,公开了生成两种秘密密钥的技术。具体而言,在非专利文献2中,除了通常的公开密钥和秘密密钥的对以外,还能够生成能够对任何密文进行解密的秘密密钥(之后称作主秘密密钥)。换言之,能够使用两种秘密密钥对一个密文进行解密。但是,非专利文献2所公开的技术是仅能够执行加法的组同态加密技术。仅执行加法的运算所能够实现的处理有限,因此从应用的观点来看是不优选的。即,非专利文献2所公开的技术在同态性方面存在课题。
在专利文献1中,公开了使用重新加密技术来削减保管成本的技术。但是,该文献所公开的技术也是仅能够执行加法的组同态加密技术。仅执行加法的运算所能够实现的处理有限,因此从应用的观点来看仍然是不优选的。即,专利文献1所公开的技术与非专利文献2同样,在同态性方面存在课题。
在非专利文献6中,公开了能够生成多种秘密密钥且还能够执行加法和乘法运算的任意一个的完全同态加密技术。此外,在非专利文献6的完全同态加密技术中,与非专利文献2不同,能够灵活地设定可对1个密文进行解密的权限。此外,在非专利文献6的完全同态加密技术中,能够在将数据保持加密的状态下执行各种数据处理。但是,本文献所公开的技术基于被称作格加密的技术。该格加密的加密处理成本、密文大小和密钥大小与RSA加密这样的被熟知的公开密钥加密技术相比非常大。因此,非专利文献6的完全同态加密技术在加密的效率方面不优选。即,非专利文献6所公开的技术在实用成本观点方面存在课题。
在专利文献2中,公开了使用加密后的辅助信息和重新加密技术来削减保管成本的技术。但是,本文献所公开的技术还基于使用格加密的技术,在效率方面不优选。即,专利文献2所公开的技术与非专利文献6同样,在实用成本观点方面存在课题。
此外,在除非专利文献2以外的上述现有技术中,使用主公开密钥和主秘密密钥两方生成了用户公开密钥和用户秘密密钥,因此还存在运用成本更高的课题。
本发明的目的在于提供一种能够抑制运用成本和保管成本、同时如Somewhat同态加密或完全同态加密那样具有较高的同态性且能够高效进行处理的同态加密技术。
用于解决课题的手段
本发明的加密系统具有:主密钥生成装置,其生成第1用户的公开密钥和秘密密钥来作为主公开密钥和主秘密密钥;用户密钥生成装置,其使用所述主公开密钥,生成第2用户的公开密钥和秘密密钥来作为用户公开密钥和用户秘密密钥;管理装置,其具有数据保管部和运算部,其中,所述数据保管部对利用所述用户公开密钥进行加密后的加密数据进行保管,所述运算部取得使用了数据的运算的过程作为运算过程,从所述数据保管部中选择对所述运算过程所使用的数据进行加密后的加密数据,根据所述运算过程对所述加密数据进行同态运算,并输出同态运算的运算结果来作为加密运算结果;以及主解密装置,其取得所述加密运算结果,并利用所述主秘密密钥对所取得的所述加密运算结果进行解密。
发明的效果
在本发明的加密系统中,用户密钥生成装置不使用主秘密密钥而仅使用主公开密钥来生成用户公开密钥和用户秘密密钥。此外,管理装置的运算部取得使用了数据的运算的过程作为运算过程,并从数据保管部中选择对运算过程所使用的数据进行加密后的加密数据。进而,管理装置的运算部根据运算过程对加密数据进行同态运算,并输出加密运算结果。并且,主解密装置取得加密运算结果,并利用主秘密密钥对加密运算结果进行解密。因此,可提供一种能够抑制运用成本和保管成本、且能够高效进行处理的加密系统。
附图说明
图1是实施方式1的加密系统100的结构图。
图2是实施方式1的主密钥生成装置200的结构图。
图3是实施方式1的用户密钥生成装置300的结构图。
图4是实施方式1的加密装置400的结构图。
图5是实施方式1的主解密装置500的结构图。
图6是实施方式1的用户解密装置600的结构图。
图7是实施方式1的管理装置700的结构图。
图8是示出实施方式1的加密系统100的主密钥对生成和保管处理的流程图。
图9是示出实施方式1的加密系统100的用户密钥对生成和保管处理的流程图。
图10是示出实施方式1的加密系统100的数据加密和保管处理的流程图。
图11是示出实施方式1的加密系统100的主解密处理S30的流程图。
图12是示出实施方式1的加密系统100的作为面向用户的数据解密处理的用户解密处理S40的流程图。
图13是示出实施方式1的加密系统100的同态运算处理S50和运算结果解密处理S60的流程图。
图14是示出实施方式1的加密系统100的同态运算处理S50和运算结果解密处理S60的流程图。
图15是实施方式1的变形例的主密钥生成装置200的结构图。
图16是实施方式1的变形例的用户密钥生成装置300的结构图。
图17是实施方式1的变形例的加密装置400的结构图。
图18是实施方式1的变形例的主解密装置500的结构图。
图19是实施方式1的变形例的用户解密装置600的结构图。
图20是实施方式1的变形例的管理装置700的结构图。
具体实施方式
以下,使用附图来说明本发明的实施方式。另外,在各图中,对相同或相应的部分赋予同一标号。在实施方式的说明中,对相同或相应的部分适当省略或简化其说明。
实施方式1.
***结构的说明***
使用图1对本实施方式的加密系统100的结构进行说明。
在本实施方式中,公开了能够执行任意次的加法运算、且能够执行1次乘法运算的Somewhat同态加密技术。
如图1所示,加密系统100具有主密钥生成装置200、用户密钥生成装置300、加密装置400、主解密装置500、用户解密装置600和管理装置700。加密系统100可以具有多个主密钥生成装置200。加密系统100可以具有多个用户密钥生成装置300。加密系统100可以具有多个加密装置400。加密系统100可以具有多个主解密装置500。加密系统100可以具有多个用户解密装置600。加密系统100还可以具有多个管理装置700。
图1中,在加密系统100中,主密钥生成装置200、用户密钥生成装置300、加密装置400、主解密装置500、用户解密装置600以及管理装置700经由因特网101连接。但是,加密系统100的各装置也可以不构成为相互经由因特网101而连接。加密系统100的各装置可以设置在相同企业内所铺设的LAN(Local·Area·Network:局域网)内。
因特网101是将主密钥生成装置200、用户密钥生成装置300、加密装置400、主解密装置500、用户解密装置600以及管理装置700连接起来的通信路径。因特网101是网络的例子。也可以替代因特网101而使用其他种类的网络。
主密钥生成装置200生成加密系统100的管理者的公开密钥和秘密密钥来作为主公开密钥和主秘密密钥。主密钥生成装置200生成主公开密钥和主秘密密钥的对(之后称作主密钥对)。主密钥对被用于本系统的管理者用的加密或解密。主密钥生成装置200是经由因特网101将主公开密钥发送到用户密钥生成装置300、加密装置400和管理装置700的装置。此外,主密钥生成装置200是经由因特网101将主密钥对发送到主解密装置500的装置。另外,该主公开密钥或主密钥对也可以不经由因特网101而通过记录介质或邮件等直接进行发送。
用户密钥生成装置300使用主公开密钥,生成本系统的用户的公开密钥和秘密密钥来作为用户公开密钥和用户秘密密钥。用户密钥生成装置300生成用户公开密钥和用户秘密密钥的对(之后称作用户密钥对)。用户密钥对被用于本系统的用户用的加密或解密。用户密钥生成装置300是经由因特网101将用户公开密钥发送到加密装置400和管理装置700的装置。此外,用户密钥生成装置300是经由因特网101将用户密钥对发送到用户解密装置600的装置。另外,该用户公开密钥或用户密钥对也可以不经由因特网101而通过记录介质或邮件等直接进行发送。
这里,加密系统100的管理者是指具有能够对所有用户的密文进行解密的能力的特殊用户。本系统的管理者是第1用户的例子。
另一方面,加密系统100的用户与管理者不同,不能对其他用户的密文进行解密,而仅能够对利用与自身对应的公开密钥进行加密后的密文进行解密。本系统的用户是第2用户的例子。
另外,只要具有主公开密钥或各用户的公开密钥,则任何装置都能够执行同态运算。但是,为了对进行同态运算后的密文进行解密,需要主秘密密钥或各用户的用户秘密密钥。
加密装置400取得待加密的数据,利用用户公开密钥对所取得的数据进行加密。并且,加密装置400将加密后的数据作为加密数据发送到管理装置700。加密装置400是如下装置:使用主公开密钥或用户公开密钥,对数据进行加密而生成密文(之后称作加密数据),并保管到管理装置700中。
主解密装置500是如下装置:使用主密钥对,对管理装置700等所登记的密文进行解密而提取明文。
此外,主解密装置500发出对管理装置700所登记的密文执行同态运算的请求。并且,主解密装置500是如下装置:使用主密钥对,对同态运算结果的密文(之后称作加密运算结果)进行解密来提取明文的运算结果。
用户解密装置600是如下装置:使用用户密钥对,对管理装置700等所登记的密文进行解密而提取明文。
此外,用户解密装置600发出对管理装置700所登记的密文执行同态运算的请求。并且,用户解密装置600是如下装置:使用用户密钥对,对同态运算结果的密文(即、加密运算结果)进行解密来提取明文的运算结果。
管理装置700是对由加密装置400生成的加密数据进行保管的、具有大容量的记录介质的装置。
管理装置700作为保管装置发挥功能。即,如果从加密装置400请求加密数据的保管,则管理装置700对加密数据进行保管。
此外,管理装置700作为运算装置发挥功能。即,如果从主解密装置500或用户解密装置600请求对管理装置700所保管的加密数据进行同态运算,则管理装置700关于所指定的加密数据执行同态运算。并且,管理装置700将加密运算结果发送到主解密装置500或用户解密装置600。
接着,对加密系统100所具有的主密钥生成装置200、用户密钥生成装置300、加密装置400、主解密装置500、用户解密装置600以及管理装置700各自的结构进行说明。在以下的说明中,有时将加密系统100所具有的主密钥生成装置200、用户密钥生成装置300、加密装置400、主解密装置500、用户解密装置600以及管理装置700的所有装置称作加密系统100所具有的装置。此外,有时将加密系统100所具有的各个装置称作各装置。
以下,对在加密系统100所具有的装置中具有共同功能的硬件赋予同一标号。
<主密钥生成装置200>
使用图2对本实施方式的主密钥生成装置200的结构进行说明。
主密钥生成装置200是计算机。主密钥生成装置200具有处理器910,并且具有存储装置920、输入接口930、输出接口940、通信装置950这些其他硬件。存储装置920具有存储器921和辅助存储装置922。
如图2所示,主密钥生成装置200具有输入部201、主密钥生成部202、输出部203和存储部209,作为功能结构。
在以下的说明中,将主密钥生成装置200中的输入部201、主密钥生成部202和输出部203的功能称作主密钥生成装置200的“部”的功能。
主密钥生成装置200的“部”的功能通过软件来实现。
存储部209通过存储装置920来实现。
输入部201经由输入接口930从管理者接收表示加密强度的安全参数λ。
主密钥生成部202根据从输入部201接收到的安全参数λ,生成由主公开密钥MPK和主秘密密钥MSK构成的主密钥对(MPK,MSK)。主密钥生成部202使用构成能够计算配对映射的椭圆曲线上的循环群的生成元g,生成主公开密钥MPK和主秘密密钥MSK。
具体而言,使用非专利文献3所记载的方法等,生成主公开密钥MPK和主秘密密钥MSK。主密钥生成部202随机生成λ/2比特的质数p和质数q。此外,主密钥生成部202求出构成能够高效计算双线性映射e(也称作配对映射)的椭圆曲线上的N阶的循环群G_N的生成元g。另外,双线性映射e是被定义为G_N×G_N→G_N’的映射,G_N’是N阶的循环群。之后,用*表示G_N上的运算,用·表示G_N’上的运算。并且用^表示幂运算。主密钥生成部202求出构成循环群G_N的部分循环群G_p的h=g^(αq)。其中,α是从整数集合{1,···,p}随机选择的整数。此时,假设MPK=(N,e,g,h)、MSK=(p,q)。
输出部203经由通信装置950,将由主密钥生成部202生成的主公开密钥MPK发送到用户密钥生成装置300、加密装置400和管理装置700。此外,输出部203经由通信装置950,将由主密钥生成部202生成的主密钥对(MPK,MSK)发送到主解密装置500。即,主密钥生成装置200将主公开密钥MPK和主秘密密钥MSK发送到主解密装置500,并且仅将主公开密钥MPK发送到用户密钥生成装置300、加密装置400和管理装置700。
<用户密钥生成装置300>
使用图3对本实施方式的用户密钥生成装置300的结构进行说明。
用户密钥生成装置300是计算机。用户密钥生成装置300具有处理器910,并且具有存储装置920、输入接口930、输出接口940、通信装置950这些其他硬件。存储装置920具有存储器921和辅助存储装置922。
如图3所示,用户密钥生成装置300具有输入部301、用户密钥生成部303、输出部304和存储部309,作为功能结构。存储部309具有主公开密钥保管部302。
在以下的说明中,将用户密钥生成装置300中的输入部301、用户密钥生成部303和输出部304的功能称作用户密钥生成装置300的“部”的功能。
用户密钥生成装置300的“部”的功能通过软件来实现。
存储部309通过存储装置920来实现。
输入部301经由通信装置950接收由主密钥生成装置200生成的主公开密钥MPK。
此外,输入部301经由输入接口930从用户接收用于识别该用户的用户标识符UID。用户标识符的具体例子为用户名、所属的组织的名称、或由系统逐次地唯一分配的识别编号。该用户标识符用于表示是与哪个用户关联的用户公开密钥、与哪个用户关联的密文。
主公开密钥保管部302保管从输入部301接收到的主公开密钥MPK。
用户密钥生成部303使用主公开密钥MPK和随机选择的自然数,生成用户公开密钥PK和用户秘密密钥SK。用户密钥生成部303使用从输入部301接收到的用户标识符UID、和从主公开密钥保管部302读出的主公开密钥MPK,生成由用户公开密钥PK和用户秘密密钥SK构成的用户密钥对(PK,SK)。
具体而言,用户密钥生成部303使用主公开密钥MPK求出y=h^x。其中,x是从整数集合{1,···,N}随机选择的自然数。此时,假设PK=(N,e,g,h,y)、SK=x。
输出部304输出由用户密钥生成部303生成的用户公开密钥和用户标识符的对(PK,UID),并经由通信装置950发送到加密装置400和管理装置700。此外,输出部304输出由用户密钥生成部303生成的用户密钥对(PK、SK)和用户标识符UID的组(PK,SK,UID),并经由通信装置950发送到用户解密装置600。即,用户密钥生成装置300将用户公开密钥PK和用户秘密密钥SK发送到用户解密装置600,并且仅将用户公开密钥PK发送到加密装置400和管理装置700。
<加密装置400>
使用图4对本实施方式的加密装置400的结构进行说明。
加密装置400是计算机。加密装置400具有处理器910,并且具有存储装置920、输入接口930、输出接口940、通信装置950这些其他硬件。存储装置920具有存储器921和辅助存储装置922。
如图4所示,加密装置400具有输入部401、加密部404、发送部405和存储部409,作为功能结构。存储部409具有主公开密钥保管部402和用户公开密钥保管部403。
在以下的说明中,将加密装置400中的输入部401、加密部404、发送部405的功能称作加密装置400的“部”的功能。
加密装置400的“部”的功能通过软件来实现。
存储部409通过存储装置920来实现。
输入部401经由通信装置950,接收由主密钥生成装置200生成的主公开密钥MPK、或由用户密钥生成装置300生成的用户公开密钥和用户标识符的对(PK,UID)。
输入部401经由输入接口930从用户接收待加密的数据m、用于识别该数据的数据标识符DID、和交付加密数据的用户的用户标识符UID。数据标识符DID的具体例子为数据的名称、或由系统逐次地唯一分配的识别编号。该数据标识符DID用于识别待解密的对象的密文或在同态运算中使用的对象的密文。此外,将数据m设为具有解决离散对数问题程度的比特长度的数据。例如,数据m的比特长度约为log_2(λ)。
主公开密钥保管部402保管从输入部401接收到的主公开密钥MPK。
用户公开密钥保管部403保管从输入部401接收到的用户公开密钥和用户标识符的对(PK,UID)。
加密部404从主公开密钥保管部402读出主公开密钥MPK,对从输入部401接收到的数据m进行加密,从而生成加密数据c0。
具体而言,加密部404从整数集合{1,···,N}中随机选择r,并使用主公开密钥MPK而通过以下的(式1)来计算c0。
c0=y^r*g^m (式1)
加密部404从用户公开密钥保管部403读出与从输入部401接收到的用户标识符UID对应的用户公开密钥和用户标识符的对(PK,UID),对从输入部401接收到的数据m进行加密,从而生成加密数据(c1,c2)。
具体而言,加密部404从整数集合{1,···,N}中随机选择r,并使用用户公开密钥PK而通过以下的(式2)和(式3)来计算c1和c2。
c1=h^r(式2),c2=y^r*g^m (式3)
发送部405输出表示管理者的用户标识符UID(之后表现为ADMIN)、数据标识符DID以及从加密部404接收到的加密数据c0的组(ADMIN,DID,c0),并发送到管理装置700。
发送部405输出用户标识符UID、数据标识符DID以及从加密部404接收到的加密数据(c1,c2)的组(UID,DID,c1,c2),并发送到管理装置700。
即,加密装置400取得待加密的数据m和用于识别用户的用户标识符,并将对数据m进行加密后的加密数据和用户标识符发送到管理装置700。
<主解密装置500>
使用图5对本实施方式的主解密装置500的结构进行说明。
主解密装置500是计算机。主解密装置500具有处理器910,并且具有存储装置920、输入接口930、输出接口940、通信装置950这些其他硬件。存储装置920具有存储器921和辅助存储装置922。
如图5所示,主解密装置500具有输入部501、运算过程设定部503、解密部504、输出部505和存储部509,作为功能结构。存储部509具有主密钥对保管部502。
在以下的说明中,将主解密装置500中的输入部501、运算过程设定部503、解密部504和输出部505的功能称作主解密装置500的“部”的功能。
主解密装置500的“部”的功能通过软件来实现。
存储部509通过存储装置920来实现。
输入部501经由通信装置950接收由主密钥生成装置200生成的主密钥对(MPK,MSK)。
输入部501经由输入接口930,从管理者接收用于识别管理装置700所保管的加密数据中的进行同态运算的对象数据的数据标识符集合{DID1,···,DIDn}、和表示对该对象数据怎样进行处理的处理内容K。其中,n为1以上的整数。在此之后,将数据标识符集合{DID1,···,DIDn}简单记述为{DID}。例如,对于该处理内容K,2个数据的“总和”或“欧几里德平方距离”等是其一例。或者,也可以是对哪个数据和哪个数据进行同态加法运算等具体的运算过程自身。
输入部501接收管理装置700等所保管的加密数据、或由管理装置700进行处理后的加密运算结果(同态运算结果)。
主密钥对保管部502保管从输入部501接收到的主密钥对(MPK,MSK)。另外,为了严格管理该主密钥对,对(MPK,MSK)进行加密并保管。或者,主密钥对保管部502也可以如下进行保护:在使用口令、令牌或生物体信息等识别出是管理者之后,读出(MPK,MSK)。
运算过程设定部503根据从输入部501接收到的数据标识符集合{DID}和处理内容K,生成对哪个加密数据进行同态运算这样的、作为使用了数据的运算的过程的运算过程P。运算过程P中记述有具体的同态运算过程。如上所述,运算过程P也可以是包含“欧几里得平方距离”等乘法运算的运算过程。例如,如果处理内容K为“总和”,则设定对与数据标识符集合对应的加密数据全部进行同态加法运算这样的运算过程。如果处理内容K已经是具体的同态运算过程,则也可以将该处理内容K设定为运算过程P。此外,也可以事先由系统来确定这样的过程,管理者选择所确定的过程。
解密部504从主密钥对保管部502读出主密钥对(MPK,MSK),对从输入部501接收到的加密数据或加密运算结果进行解密,求出作为明文的运算结果的数据M。
具体而言,解密部504使用主密钥对,针对利用管理者的公开密钥进行加密后的加密数据c0,计算M_p=c0^p和b_p=g^p,并计算以b_p为底的M_p的离散对数M。为了计算该M,例如能够使用非专利文献3所记载的λ法等。之后,为了表示求出离散对数,使用DLog记述为M=DLog_(b_p)(M_p)。在对利用用户公开密钥进行加密后的加密数据(c1,c2)进行解密的情况下,将c2视作c0执行与上述同样的处理即可。
此外,在加密运算结果用G_N上的一个元素s表示的情况下,解密部504通过使用主密钥对,视作s=c0来进行与上述同样的解密处理,由此求出数据M。如果在加密运算结果用G’_N上的一个元素S表示的情况下,则解密部504如以下的(式4)那样进行计算来求出数据M。
M=DLog_(e(g,g)^p)(S^p) (式4)
另外,之后叙述加密运算结果的s或S的具体构造。
输出部505输出表示管理者的用户标识符ADMIN、从运算过程设定部503接收到的数据标识符集合{DID}和运算过程P的组(ADMIN,{DID},P)。输出部505经由通信装置950将该组(ADMIN,{DID},P)发送到管理装置700。
输出部505经由输出接口940输出从解密部504接收到的数据M。
<用户解密装置600>
使用图6对本实施方式的用户解密装置600的结构进行说明。
用户解密装置600是计算机。用户解密装置600具有处理器910,并且具有存储装置920、输入接口930、输出接口940、通信装置950这些其他硬件。存储装置920具有存储器921和辅助存储装置922。
如图6所示,用户解密装置600具有输入部601、运算过程设定部603、解密部604、输出部605和存储部609,作为功能结构。存储部609具有用户密钥对保管部602。
在以下的说明中,将用户解密装置600中的输入部601、运算过程设定部603、解密部604和输出部605的功能称作用户解密装置600的“部”的功能。
用户解密装置600的“部”的功能通过软件来实现。
存储部609通过存储装置920来实现。
输入部601经由通信装置950接收由用户密钥生成装置300生成的用户密钥对和用户标识符的组(PK,SK,UID)。
输入部601经由输入接口930,从用户接收用户标识符UID、用于识别管理装置700所保管的加密数据中的同态运算的对象数据的数据标识符集合{DID1,···,DIDn}、和表示对同态运算的对象数据怎样进行处理的处理内容K。其中,n为1以上的整数。在此之后,将数据标识符集合{DID1,···,DIDn}简单记述为{DID}。
输入部601接收管理装置700等所保管的加密数据、或由管理装置700进行处理后的加密运算结果(同态运算结果)。
用户密钥对保管部602保管从输入部601接收到的用户密钥对和用户标识符的组(PK,SK,UID)。另外,为了严格管理该用户密钥对,用户密钥对保管部602对(PK,SK)进行加密并保管。或者,用户密钥对保管部602也可以如下进行保护:在使用口令、令牌或生物体信息等识别出是正确的用户后,读出(PK,SK)。
运算过程设定部603根据从输入部601接收到的处理内容K、数据标识符集合{DID}和用户标识符UID,生成对哪个加密数据进行同态运算等、记述有具体的同态运算过程的运算过程P。如果处理内容K已经是具体的同态运算过程,则也可以将该处理内容K设定为运算过程P。此外,如前所述,也可以事先由系统来确定这样的过程,用户选择所确定的过程。
解密部604从用户密钥对保管部602读出用户密钥对(PK,SK,UID)。解密部604使用用户密钥对(PK,SK,UID),对从输入部601接收到的加密数据(c1,c2)或加密运算结果进行解密,生成数据M。
具体而言,解密部604使用用户密钥对,如以下的(式5)那样针对加密数据(c1,c2)求出数据M。
M=DLog_(g)(c1^(-x)*c2) (式5)
此外,在加密运算结果用G_N上的元素对(t1,t2)(有时也将t1、t2简单记述为t)表示的情况下,解密部604使用用户密钥对,视作(t1,t2)=(c1,c2)来进行与上述同样的解密处理,由此求出数据M。如果在加密运算结果用G_N’上的元素组(T1,T2,T3)(有时也将T1、T2、T3简单记述为T)表示的情况下,解密部604使用用户密钥对如以下的(式6)那样进行计算来求出数据M。
M=DLog_(e(g,g))(T1^(-x^2)·T2^(x)·T3) (式6)
输出部605输出用户标识符UID、从运算过程设定部503接收到的数据标识符集合{DID}和运算过程P的组(UID,{DID},P),并发送到管理装置700。输出部605输出从运算过程设定部603接收到的用户标识符UID、数据标识符集合{DID}和运算过程P,并经由通信装置950将该组(UID,{DID},P)发送到管理装置700。
输出部605经由输出接口940输出从解密部604接收到的数据M。
<管理装置700>
使用图7对本实施方式的管理装置700的结构进行说明。
管理装置700是计算机。管理装置700具有处理器910,并且具有存储装置920、输入接口930、输出接口940、通信装置950这些其他硬件。存储装置920具有存储器921和辅助存储装置922。
如图7所示,管理装置700具有输入部701、运算部704、输出部705和存储部709,作为功能结构。存储部709具有公开密钥保管部702和数据保管部703。
在以下的说明中,将管理装置700中的输入部701、运算部704、输出部705的功能称作管理装置700的“部”的功能。
管理装置700的“部”的功能通过软件来实现。
存储部709通过存储装置920来实现。
输入部701经由通信装置950,接收由主密钥生成装置200生成的主公开密钥MPK、或由用户密钥生成装置300生成的用户公开密钥和用户标识符的对(PK,UID)。
输入部701经由通信装置950,接收由加密装置400生成的用户标识符、数据标识符和加密数据的组(ADMIN,DID,c0)或者(UID,DID,c1,c2)。
输入部701经由通信装置950接收由主解密装置500生成的用户标识符、数据标识符集合和运算过程的组(ADMIN,{DID},P)或者由用户解密装置600生成的用户标识符、数据标识符集合和运算过程的组(UID,{DID},P)。
公开密钥保管部702保管从输入部701接收到的主公开密钥MPK、或者用户公开密钥和用户标识符的对(PK,UID)。
数据保管部703将利用主公开密钥MPK或用户公开密钥PK加密后的数据保管为加密数据(c0或(c1,c2))。数据保管部703将加密数据和用户标识符(ADMIN或UID)对应起来进行存储。具体而言,数据保管部703保管从输入部701接收到的用户标识符、数据标识符和加密数据的组(ADMIN,DID,c0)或者(UID,DID,c1,c2)。
运算部704从数据保管部703选择对在运算过程P中使用的数据进行加密后的加密数据(c0或(c1,c2))。运算部704取得运算过程P、和作为管理者的用户标识符的第1用户标识符(ADMIN),并从数据保管部703选择加密数据,该加密数据是对在运算过程P中使用的数据进行加密后的加密数据,且与第1用户标识符(ADMIN)相对应。此外,运算部704取得运算过程P、和作为用户的用户标识符的第2用户标识符(UID),并从数据保管部703选择加密数据,该加密数据是对在运算过程P中使用的数据进行加密后的加密数据,且与第2用户标识符(UID)相对应。运算部704根据运算过程P,对所选择的加密数据进行同态运算,并输出同态运算的运算结果作为加密运算结果。
具体而言,运算部704使用从输入部701接收到的(ADMIN,{DID},P)或(UID,{DID},P),从公开密钥保管部702读出主公开密钥MPK,并且从数据保管部703读出具有{DID}所包含的数据标识符DID的组(ADMIN,DID,c0)或(UID,DID,c1,c2)。并且,运算部704按照运算过程P对加密数据c0或(c1,c2)的集合进行同态处理,生成加密运算结果。
具体而言,在进行2个加密数据(c1,c2)=(g^r,y^r*g^m)和(c1’,c2’)=(g^(r’),y^(r’)*g^(m’))的同态加法运算的情况下,如以下的(式7)、(式8)那样进行计算而求出新的m+m’的加密数据(c1”,c2”)。其中,假设r”为从整数集合{1,···,N}中随机选择的整数。
c1”=c1*c1’*h^(r”)=h^(r+r’+r”)(式7)
c2”=c2*c2’*y^(r”)=y^(r+r’+r”)*g^(m+m’) (式8)
另外,该同态加法运算结果的加密数据(c1”,c2”)能够进一步执行同态加法运算或者执行以下所述的同态乘法运算。
在进行(c1,c2)和(c1’,c2’)的同态乘法运算的情况下,如以下的(式9)~(式11)那样进行计算而求出新的m×m’的加密数据(C1,C2,C3)。其中,假设r1和r2为从整数集合{1,···,N}中随机选择的整数,并设为R1=rr’+r1和R2=-rm’+r’m+r2。
C1=e(c1,c1’)·e(h,h)^r1=e(h,h)^R1 (式9)
C2=e(c1,c2’^(-1))·e(c1’,c2)·e(h,g)^r2=e(h,g)^R2 (式10)
C3=e(c2,c2’)·e(h,h)^r1·e(y,g)^r2=e(y,y)^R1·e(y,g)^(-R2)·e(g,g)^(m×m’) (式11)
另外,该同态乘法运算结果的加密数据(C1,C2,C3)能够如以下那样进一步执行同态加法运算,但难以执行同态乘法运算。
在对同态乘法运算后的加密数据(C1,C2,C3)=(e(h,h)^R1,e(h,g)^R2,e(y,y)^R1·e(y,g)^(-R2)·e(c2,c2’)^m)和(C1’,C2’,C3’)=(e(h,h)^R1’,e(h,g)^R2’,e(y,y)^R1’·e(y,g)^(-R2’)·e(g,g)^m’)进行同态加法运算的情况下,如以下的(式12)~(式14)那样求出新的m+m’的加密数据(C1”,C2”,C3”)。其中,假设R和R’为从整数集合{1,···,N}中随机选择的整数,并设为R1”=R1+R1’+R和R2”=R2+R2’+R’。
C1”=C1·C1’·e(h,h)^R=e(h,h)^R1” (式12)
C2”=C2·C2’·e(h,g)^R’=e(h,g)^R2” (式13)
C3”=C3·C3”·e(y,y)^R·e(y,g)^(-R’)=e(y,y)^R1”·e(y,g)^R2”·e(g,g)^(m+m’) (式14)
另外,该同态乘法运算结果的加密数据(C1”,C2”,C3”)能够进一步执行同态加法运算,但难以执行同态乘法运算。
运算部704按照运算过程P,组合上述那样的同态运算来计算多个加密数据,由此生成加密运算结果。另外,将同态乘法运算1次也未被执行的情况下的加密运算结果表示为(t1,t2),并且将哪怕执行1次同态运算的情况下的加密运算结果表示为(T1,T2,T3)。
另外,在上述同态运算的说明中,将利用用户公开密钥进行加密后的加密数据作为对象来叙述了处理方法。但是,在由管理者进行同态运算的情况下,还能够对使用主公开密钥进行加密后的加密数据c0进行同态运算。此时,将c0视作与c2等同,在同态加法运算中以仅生成c2”的方式来变更处理方法。或者,在同态乘法运算中以仅生成C3的方式来变更处理方法。或者,在同态运算后的同态加法运算中,以仅生成C3”的方式来变更处理方法即可。
此外,还能够对利用主公开密钥进行加密后的加密数据c0、和利用用户公开密钥进行加密后的加密数据(c1,c2)进行同态运算。此时,也如上述那样变更处理方法即可。即,将c0视作与c2等同,变更为用c2”、C3、C3”的形式来表现同态运算结果的加密数据。但是,由加密数据c0的集合生成的加密运算结果、或者以c0和(c1,c2)混合存在的形式生成的加密运算结果仅能够由可利用主解密装置500的管理者进行解密。
另外,针对这样的仅能够由管理者进行解密的加密运算结果,将同态乘法运算1次也未被执行的情况下的加密运算结果表示为s,并且将哪怕执行1次同态运算的情况下的加密运算结果表示为S。
输出部705输出从运算部704接收到的加密运算结果,并经由通信装置950发送到主解密装置500或用户解密装置600。
此外,输出部705输出从数据保管部703接收到的加密数据,并经由通信装置950发送到主解密装置500或用户解密装置600。
接着,对加密系统100所具有的主密钥生成装置200、用户密钥生成装置300、加密装置400、主解密装置500、用户解密装置600以及管理装置700的各装置的硬件进行说明。
处理器910经由信号线与其他硬件连接,对这些其他硬件进行控制。处理器910是进行处理的IC(Integrated Circuit:集成电路)。处理器910也被称作CPU(CentralProcessing Unit:中央处理单元)、处理装置、运算装置、微处理器、微计算机或DSP(Digital Signal Processor:数字信号处理器)。
存储装置920包含辅助存储装置922和存储器921。具体而言,辅助存储装置922为ROM(Read Only Memory:只读存储器)、闪存或HDD(Hard Disk Drive:硬盘驱动器)。具体而言,存储器921为RAM(Random Access Memory:随机存取存储器)。各装置的存储部可以由辅助存储装置922来实现,可以由存储器921来实现,还可以由存储器921和辅助存储装置922来实现。存储部的实现方法是任意的。
输入接口930为与鼠标、键盘或触摸面板这些输入装置连接的端口。具体而言,输入接口930为USB(Universal Serial Bus:通用串行总线)端子。另外,输入接口930也可以是与LAN(Local Area Network:局域网)连接的端口。
输出接口940是与显示器这样的显示设备的线缆连接的端口。输出接口940例如为USB端子或HDMI(注册商标)(High Definition Multimedia Interface:高清晰度多媒体接口)端子。具体而言,显示器为LCD(Liquid Crystal Display:液晶显示器)。
通信装置950包含接收数据的接收器和发送数据的发送器。具体而言,通信装置950为通信芯片或NIC(Network Interface Card:网络接口卡)。接收器作为接收数据的接收部发挥功能,发送器作为发送数据的发送部发挥功能。
辅助存储装置922中存储有实现加密系统100的各装置的“部”的功能的程序。该程序被加载到存储器,被处理器910读入并由处理器910执行。辅助存储装置922中还存储有OS(Operating System:操作系统)。OS的至少一部分被加载到存储器,处理器910执行OS,并且执行实现“部”的功能的程序。
加密系统100的各装置可以仅具有1个处理器910,也可以具有多个处理器910。多个处理器910还可以协作执行用于实现“部”的功能的程序。
表示“部”的处理结果的信息、数据、信号値、和变量值被存储到辅助存储装置、存储器或者处理器910内的寄存器或高速缓存中。
用于实现“部”的功能的程序也可以被存储到磁盘、软盘、光盘、高密度光盘、蓝光(注册商标)光盘、DVD(Digital Versatile Disc:数字多功能光盘)这些可移动记录介质中。
另外,加密程序520是实现作为加密系统100的各装置的“部”进行了说明的功能的程序。此外,被称作加密程序产品的是存储介质和存储装置,其中记录有实现作为“部”进行了说明的功能的程序,不论外观形式如何,都加载了计算机可读取的程序。
***动作的说明***
接着,对基于本实施方式的加密系统100中的加密方法510和加密程序520的加密处理S100进行说明。
<主密钥对生成和保管处理>
图8是示出本实施方式的加密系统100的主密钥对生成和保管处理的流程图。
图8的步骤S101~步骤S112是主密钥生成装置200、用户密钥生成装置300、加密装置400、主解密装置500和管理装置700执行的处理。步骤S101~步骤S104是由主密钥生成装置200执行的主密钥生成处理S10。步骤S105~步骤S106由用户密钥生成装置300来执行。步骤S107~步骤S108由加密装置400来执行。步骤S109~步骤S110由主解密装置500来执行。步骤S111~步骤S112由管理装置700来执行。
在步骤S101中,输入部201从管理者接收表示加密强度的安全参数λ。
在步骤S102中,主密钥生成部202根据从输入部201接收到的安全参数λ,生成由主公开密钥MPK和主秘密密钥MSK构成的主密钥对(MPK,MSK)。
在步骤S103中,输出部203将由主密钥生成部202生成的主密钥对(MPK,MSK)发送到主解密装置500。
在步骤S104中,输出部203将由主密钥生成部202生成的主公开密钥MPK发送到用户密钥生成装置300、加密装置400和管理装置700。此时,仅发送主公开密钥MPK,不发送主秘密密钥MSK。
在步骤S105中,输入部301接收由主密钥生成装置200生成的主公开密钥MPK。
在步骤S106中,主公开密钥保管部302保管从输入部301接收到的主公开密钥MPK。
在步骤S107中,输入部401接收由主密钥生成装置200生成的主公开密钥MPK。
在步骤S108中,主公开密钥保管部402保管从输入部401接收到的主公开密钥MPK。
在步骤S109中,输入部501接收由主密钥生成装置200生成的主密钥对(MPK,MSK)。
在步骤S110中,主密钥对保管部502保管从输入部501接收到的主密钥对(MPK,MSK)。如果必要的话,主密钥对保管部502以主秘密密钥MSK不泄漏到外部的方式对主秘密密钥MSK进行加密并保管。或者,为了使得仅能够由管理者处理主秘密密钥MSK,主密钥对保管部502与认证信息对应地保管主秘密密钥MSK。
在步骤S111中,输入部701接收由主密钥生成装置200生成的主公开密钥MPK。
在步骤S112中,公开密钥保管部702保管从输入部701接收到的主公开密钥MPK。
通过步骤S112,加密系统100的主密钥对生成和保管处理结束。
<用户密钥对生成和保管处理>
图9是示出本实施方式的加密系统100的用户密钥对生成和保管处理的流程图。
图9的步骤S201~步骤S210是用户密钥生成装置300、加密装置400、用户解密装置600和管理装置700执行的处理。步骤S201~步骤S204是由用户密钥生成装置300执行的用户密钥生成处理S20。步骤S205~步骤S206由加密装置400来执行。步骤S207~步骤S208由用户解密装置600来执行。步骤S209~步骤S210由管理装置700来执行。
在步骤S201中,输入部301从用户接收用于识别该用户的用户标识符UID。
在步骤S202中,用户密钥生成部303使用从输入部301接收到的用户标识符UID、和从主公开密钥保管部302读出的主公开密钥MPK,生成由用户公开密钥PK和用户秘密密钥SK构成的用户密钥对(PK,SK)。
在步骤S203中,输出部304输出由用户密钥生成部303生成的用户密钥对和用户标识符的组(PK,SK,UID),并发送到用户解密装置600。
在步骤S204中,输出部304输出由用户密钥生成部303生成的用户公开密钥和用户标识符的对(PK,UID),并发送到加密装置400和管理装置700。此时,不发送用户秘密密钥SK。
在步骤S205中,输入部401接收由用户密钥生成装置300生成的用户公开密钥和用户标识符的对(PK,UID)。
在步骤S206中,用户公开密钥保管部403保管从输入部401接收到的用户公开密钥和用户标识符的对(PK,UID)。
在步骤S207中,输入部601接收由用户密钥生成装置300生成的用户密钥对和用户标识符的组(PK,SK,UID)。
在步骤S208中,用户密钥对保管部602保管从输入部601接收到的用户密钥对和用户标识符的组(PK,SK,UID)。如果必要的话,用户密钥对保管部602以用户秘密密钥SK不泄漏到外部的方式对用户秘密密钥SK进行加密并保管。或者,为了限制能处理用户秘密密钥SK的用户,用户密钥对保管部602与认证信息对应地保管用户秘密密钥SK。
在步骤S209中,输入部701接收由用户密钥生成装置300生成的用户公开密钥和用户标识符的对(PK,UID)。
在步骤S210中,公开密钥保管部702保管用户公开密钥和用户标识符的对(PK,UID)。
通过步骤S210,加密系统100的用户密钥对生成和保管处理结束。
<数据加密和保管处理>
图10是示出本实施方式的加密系统100的数据加密和保管处理的流程图。
图10的步骤S301~步骤S306是加密装置400和管理装置700执行的处理。步骤S301~步骤S3046由加密装置400来执行。步骤S305~步骤S306是由管理装置700执行的处理。
在步骤S301中,输入部401从用户接收待加密的数据m、用于识别该数据的数据标识符DID、和用于识别交付加密数据的用户的用户标识符UID。
在步骤S302中,加密部404从用户公开密钥保管部403读出与从输入部401接收到的用户标识符UID对应的、用户公开密钥和用户标识符的对(PK,UID)。如果在UID=ADMIN的情况下,加密部404从主公开密钥保管部402读出主公开密钥MPK。
在步骤S303中,加密部404使用在步骤S302中读出的用户公开密钥PK,如前述那样对从输入部401接收到的数据m进行加密,生成加密数据(c1,c2)。如果在步骤S302中读出了主公开密钥MPK的情况下,加密部404如前述那样对从输入部401接收到的数据m进行加密,生成加密数据c0。
在步骤S304中,发送部405输出用户标识符UID、数据标识符DID和在步骤S303中生成的加密数据(c1,c2)的组(UID,DID,c1,c2),并发送到管理装置700。如果在步骤S303中生成了加密数据c0的情况下,发送部405输出用户标识符UID=ADMIN、数据标识符DID以及在步骤S303中生成的加密数据c0的组(ADMIN,DID,c0),并发送到管理装置700。
在步骤S305中,输入部701接收在步骤S304中从加密装置400发送来的用户标识符、数据标识符以及加密数据的组(UID,DID,c1,c2)或者(ADMIN,DID,c0)。
在步骤S306中,数据保管部703保管输入部701在步骤S305中接收到的用户标识符、数据标识符和加密数据的组(UID,DID,c1,c2)或(ADMIN,DID,c0)。
通过步骤S306,加密系统100的数据加密和保管处理结束。
<主解密处理S30>
图11是示出本实施方式的加密系统100的主解密处理S30的流程图。主解密处理S30是如下的面向管理者的数据解密处理:取得加密运算结果,并利用主秘密密钥MSK对所取得的加密运算结果进行解密。
图11的步骤S401~步骤S404是主解密装置500执行的处理。
在步骤S401中,输入部501接收管理装置700等所保管的加密数据c0或(c1,c2)。
在步骤S402中,解密部504从主密钥对保管部502读出主密钥对(MPK,MSK)。如果必要的话,解密部504输入口令、令牌或生物体信息等,进行管理者的认证。
在步骤S403中,解密部504如前述那样对输入部501在步骤S401中接收到的加密数据c0或(c1,c2)进行解密处理,求出数据M。数据M也被称作明文。
在步骤S404中,输出部505输出由解密部504在步骤S403中生成的数据M。
通过步骤S404,加密系统100的主解密处理S30结束。
<用户解密处理S40>
图12是示出本实施方式的加密系统100的用户解密处理S40的流程图。用户解密处理S40是如下的面向用户的数据解密处理:从管理装置700取得加密运算结果,并利用用户秘密密钥SK对所取得的加密运算结果进行解密。
图12的步骤S501~步骤S504是用户解密装置600执行的处理。
在步骤S501中,输入部601接收表示在解密中使用的用户密钥对的用户标识符UID、和管理装置700等所保管的加密数据(c1,c2)。
在步骤S502中,解密部604根据输入部601在步骤S501中接收到的用户标识符UID,从用户密钥对保管部602读出用户密钥对和用户标识符的组(PK,SK,UID)。如果必要的话,解密部604输入口令、令牌或生物体信息等,进行用户的认证。
在步骤S503中,解密部604如前述那样对输入部601在步骤S501中接收到的加密数据(c1,c2)进行解密处理,求出数据M。数据M也被称作明文。
在步骤S504中,输出部605输出由解密部604在步骤S503中生成的数据M。
通过步骤S504,加密系统100的用户解密处理S40结束。
<面向管理者的同态运算处理S50和运算结果解密处理S60>
图13是示出本实施方式的加密系统100的同态运算处理S50和运算结果解密处理S60的流程图。在图13中,对面向管理者的同态运算处理S50和运算结果解密处理S60进行说明。
图13的步骤S601~步骤S612是主解密装置500和管理装置700执行的处理。步骤S601~步骤S603和步骤S609~步骤S612是由主解密装置500执行的处理。步骤S604~步骤S608是由管理装置700执行的处理。
在步骤S601中,输入部501从管理者接收用于识别管理装置700所保管的加密数据中的进行同态运算的对象数据的数据标识符集合{DID}、和表示对同态运算的对象数据怎样进行处理的处理内容K。
在步骤S602中,运算过程设定部503如前述那样,根据输入部501在步骤S601中接收到的数据标识符集合{DID}和处理内容K,生成运算过程P。
在步骤S603中,输出部505输出管理者的用户标识符ADMIN、数据标识符集合{DID}以及运算过程设定部503在步骤S602中生成的运算过程P的组(ADMIN,{DID},P),并发送到管理装置700。
在步骤S604中,输入部701接收主解密装置500在步骤S603中发送的用户标识符、数据标识符集合以及运算过程的组(ADMIN,{DID},P)。
在步骤S605中,运算部704使用输入部701在步骤S604中接收到的(ADMIN,{DID},P),从数据保管部703读出具有{DID}所包含的数据标识符DID的组(ADMIN,DID,c0)或(UID,DID,c1,c2)。
在步骤S606中,运算部704从公开密钥保管部702读出主公开密钥MPK。
在步骤S607中,运算部704使用在步骤S606中读出的主公开密钥MPK,按照运算过程P如前述那样对在步骤S605中读出的加密数据c0或(c1,c2)的集合进行同态运算处理,生成加密运算结果s或S。
在步骤S608中,输出部705输出运算部704在步骤S607中生成的加密运算结果s或S,并发送到主解密装置500。
在步骤S609中,输入部501接收管理装置700在步骤S608中发送的加密运算结果s或S。
在步骤S610中,解密部504从主密钥对保管部502读出主密钥对(MPK,MSK)。如果必要的话,解密部504还输入口令、令牌或生物体信息等,进行管理者的认证。
在步骤S611中,解密部504使用在步骤S610中读出的主密钥对(MPK,MSK),按照前述的解密处理,对输入部501在步骤S609中接收到的加密运算结果s或S,求出作为明文的运算结果的数据M。
在步骤S612中,输出部505输出解密部504在步骤S611中求出的数据M。
通过步骤S612,加密系统100的面向管理者的同态运算处理及其解密处理结束。
<面向用户的同态运算处理S50和运算结果解密处理S60>
图14是示出本实施方式的加密系统100的同态运算处理S50和运算结果解密处理S60的流程图。在图14中,对面向用户的同态运算处理S50和运算结果解密处理S60进行说明。
图14的步骤S701~步骤S712是用户解密装置600和管理装置700执行的处理。步骤S701~步骤S703和步骤S709~步骤S712是由用户解密装置600执行的处理。步骤S704~步骤S708是由管理装置700执行的处理。
在步骤S701中,输入部601从用户接收用户标识符UID、用于识别管理装置700所保管的加密数据中的进行同态运算的对象数据的数据标识符集合{DID}、和表示对该对象数据怎样进行处理的处理内容K。
在步骤S702中,运算过程设定部603如前述那样,根据输入部601在步骤S701中接收到的数据标识符集合{DID}和处理内容,生成运算过程P。
在步骤S703中,输出部605输出用户标识符UID、数据标识符集合{DID}以及运算过程设定部603在步骤S702中生成的运算过程P的组(UID,{DID},P),并发送到管理装置700。
在步骤S704中,输入部701接收用户解密装置600在步骤S703中发送的用户标识符、数据标识符集合以及运算过程的组(UID,{DID},P)。
在步骤S705中,运算部704使用输入部701在步骤S704中接收到的(UID,{DID},P),从数据保管部703读出与(UID,DID1)、···、(UID,DIDn)的对相对应的组(UID,DID,c1,c2)。
如果这里,在想要读出利用主公开密钥进行加密后的加密数据c0、或利用与所指定的用户的UID不同的用户公开密钥进行加密后的加密数据(c1,c2)的情况下,即,在要读出成为UID≠UID’且(UID’,DIDi,c1,c2)那样的组(其中,DIDi∈{DID}且1≦i≦n)的情况下,由于无法对加密运算结果进行解密,或者解密的结果是随机数据,因此运算部704在该情况下,生成“错误”这样的特殊字符串,作为加密运算结果。
在步骤S706中,运算部704使用输入部701在步骤S704中接收到的(UID,{DID},P),从公开密钥保管部702读出用户公开密钥和用户标识符的对(PK,UID)。
在步骤S707中,运算部704使用在步骤S706中读出的用户公开密钥PK,按照运算过程P如前述那样对在步骤S705中读出的加密数据(c1,c2)的集合进行同态运算处理,生成加密运算结果(t1,t2)或(T1,T2,T3)。如果运算部704在步骤S705中生成了特殊字符串“错误”,则运算部704在此不进行任何处理。
在步骤S708中,输出部705输出运算部704在步骤S707中生成的加密运算结果(t1,t2)、(T1,T2,T3)或者特殊字符串“错误”,并发送到用户解密装置600。
在步骤S709中,输入部601接收管理装置700在步骤S708中发送的加密运算结果(t1,t2)、(T1,T2,T3)或特殊字符串“错误”。
在步骤S710中,解密部604从用户密钥对保管部602读出用户密钥对和用户标识符的组(PK,SK,UID)。如果必要的话,解密部604还输入口令、令牌或生物体信息等,进行用户的认证。如果输入部601在步骤S709中接收到特殊字符串“错误”,则运算部604在此不进行任何处理。
在步骤S711中,解密部604使用在步骤S710中读出的用户密钥对(PK,SK),按照前述的解密处理,对输入部601在步骤S709中接收到的加密运算结果(t1,t2)或(T1,T2,T3),求出作为明文的运算结果的数据M。如果输入部601在步骤S709中接收到特殊字符串“错误”,则运算部604在此不进行任何处理。
在步骤S712中,输出部605输出解密部604在步骤S711中求出的数据M。如果输入部601在步骤S709中接收到特殊字符串“错误”,则输出部605输出特殊字符串“错误”。
通过步骤S712,加密系统100的面向用户的同态运算处理及其解密处理结束。
***其他结构***
在本实施方式中,加密系统100的各装置的功能通过软件来实现,但作为变形例,加密系统100的各装置的功能也可以通过硬件来实现。
接着,使用图15至图20来说明本实施方式的变形例。
图15是示出本实施方式的变形例的主密钥生成装置200的结构的图。
图16是示出本实施方式的变形例的用户密钥生成装置300的结构的图。
图17是示出本实施方式的变形例的加密装置400的结构的图。
图18是示出本实施方式的变形例的主解密装置500的结构的图。
图19是示出本实施方式的变形例的用户解密装置600的结构的图。
图20是示出本实施方式的变形例的管理装置700的结构的图。
如图15至图20所示,加密系统100的各装置替代处理器910和存储装置920而具有处理电路909。
处理电路909是用于实现前述的各装置的“部”的功能和各装置的存储部的专用电子电路。具体而言,处理电路909是单一电路、复合电路、编程处理器、并行编程处理器、逻辑IC、GA(Gate Array:门阵列)、ASIC(Application Specific Integrated Circuit:面向特定用途的集合成电路)或FPGA(Field-Programmable Gate Array:现场可编程门阵列)。
加密系统100的各装置可以具有代替处理电路909的多个处理电路。通过这多个处理电路,作为整体实现“部”的功能。各个处理电路与处理电路909同样是专用电子电路。
作为另一变形例,加密系统100的各装置的功能也可以通过软件和硬件的组合来实现。即,也可以是,加密系统100的各装置中一部分功能通过专用的硬件来实现,剩余的功能通过软件来实现。
将处理器910、存储装置920和处理电路909总称为“处理电路”。即,不论加密系统100的各装置的结构是图2~图7和图15~图20中的哪一个示出的结构,“部”的功能和存储部都能够通过处理线路(processing circuitry)来实现。
可以将“部”替换成“工序”、“过程”或“处理”。此外,“部”的功能也可以通过固件来实现。即,加密系统100的各装置的“部”的功能可通过软件、固件、或软件和固件的组合来实现。
***本实施方式的效果说明***
如上所述,根据本实施方式的加密系统,能够根据公开信息的主公开密钥MPK来生成用户公开密钥PK,而不使用任何需要严格管理的主秘密密钥MSK,因此能够降低运用成本。
此外,根据本实施方式的加密系统,管理者(第1用户)和用户(第2用户)均能够对1个密文进行解密,因此能够减小保管成本。
此外,根据本实施方式的加密系统,不基于格加密,而基于配对加密技术,因此能够减小密钥大小或密文大小,能够高效进行处理。此外,不仅能够执行同态加法运算,还能够执行同态乘法运算,因此具有较高的同态性。
此外,根据本实施方式的加密系统,即使想要保管相同的数据,每次都生成不同的加密数据,因此不易受到频率分析攻击等。
此外,根据本实施方式的加密系统,进行加密后对数据进行了保管,因此即使加密数据从管理装置泄露,保管数据的内容也不会被得知。此外,能够在加密的状态下进行数据处理,因此不会由加密数据得知数据的内容。
此外,根据本实施方式的加密系统,能够直接应用将非专利文献7的合成数位数的群转换为质数位数的群的高效方法,因此能够实现更高效的同态加密技术。
此外,在本实施方式中,说明了在加密系统中,主密钥生成装置200、用户密钥生成装置300、加密装置400、主解密装置500、用户解密装置600以及管理装置700的各装置为1个装置且为计算机的情况。但是,也可以在相同的计算机(例如PC(Personal Computer:个人计算机))内,同时包含主密钥生成装置200、用户密钥生成装置300、加密装置400、主解密装置500、用户解密装置600以及管理装置700中的任意一个。例如,主解密装置500、用户解密装置600以及加密装置400可以包含在1个PC内。另外,管理装置700优选为独立的装置。此外,主密钥生成装置200和用户密钥生成装置300优选为单独的装置。但是,只要能够实现在上述实施方式中说明的功能,则不论怎样组合加密系统的各装置来构成加密系统都可以。
此外,在加密系统的各装置中,可以采用作为“部”进行了说明的装置中的任意一个,也可以采用几个装置的任意组合。即,只要能够实现在上述实施方式中说明的功能,则加密系统的各装置的功能块是任意的。可以任意组合这些功能块来构成各装置。此外,针对这些功能块,可以利用任意的块结构来构成各装置。
此外,也可以部分地组合实施本实施方式中的多个实施方式。或者,也可以部分地实施本实施方式中的1个发明。除此以外,可以整体或部分地任意组合实施本实施方式。
另外,上述实施方式本质上是优选的示例,并非旨在限制本发明、其应用物或用途的范围,能够根据需要进行各种变更。
标号说明
100:加密系统;101:因特网;200:主密钥生成装置;201、301、401、501、601、701:输入部;202:主密钥生成部;203、304、505、605、705:输出部;209、309、409、509、609、709:存储部;300:用户密钥生成装置;302:主公开密钥保管部;303:用户密钥生成部;400:加密装置;402:主公开密钥保管部;403:用户公开密钥保管部;404:加密部;405:发送部;500:主解密装置;502:主密钥对保管部;503:运算过程设定部;504:解密部;600:用户解密装置;602:用户密钥对保管部;603:运算过程设定部;604:解密部;700:管理装置;702:公开密钥保管部;703:数据保管部;704:运算部;510:加密方法;520:加密程序;909:处理电路;910:处理器;920:存储装置;930:输入接口;940:输出接口;950:通信装置;921:存储器;922:辅助存储装置;S100:加密处理;S10:主密钥生成处理;S20:用户密钥生成处理;S30:主解密处理;S40:用户解密处理;S50:同态运算处理;S60:运算结果解密处理;P:运算过程。

Claims (9)

1.一种加密系统,其具有:
主密钥生成装置,其生成第1用户的公开密钥和秘密密钥来作为主公开密钥和主秘密密钥;
用户密钥生成装置,其使用所述主公开密钥,生成第2用户的公开密钥和秘密密钥来作为用户公开密钥和用户秘密密钥;
管理装置,其具有数据保管部和运算部,其中,所述数据保管部对利用所述用户公开密钥进行加密后的加密数据进行保管,所述运算部取得使用了数据的运算的过程作为运算过程,从所述数据保管部中选择对所述运算过程所使用的数据进行加密后的加密数据,根据所述运算过程对所述加密数据进行同态运算,并输出同态运算的运算结果来作为加密运算结果;以及
主解密装置,其取得所述加密运算结果,并利用所述主秘密密钥对所取得的所述加密运算结果进行解密。
2.根据权利要求1所述的加密系统,其中,
所述主密钥生成装置将所述主公开密钥和所述主秘密密钥发送到所述主解密装置,并且仅将所述主公开密钥发送到所述用户密钥生成装置和所述管理装置。
3.根据权利要求1或2所述的加密系统,其中,
所述主密钥生成装置使用构成椭圆曲线上的循环群的生成元,生成所述主公开密钥和所述主秘密密钥,所述椭圆曲线能够计算配对映射,
所述用户密钥生成装置使用所述主公开密钥和随机选择的自然数,生成所述用户公开密钥和所述用户秘密密钥。
4.根据权利要求1所述的加密系统,其中,
所述运算部取得包含乘法运算的所述运算过程。
5.根据权利要求1所述的加密系统,其中,
所述加密系统还具有:
加密装置,其取得待加密的数据,利用所述用户公开密钥对所取得的数据进行加密,并将加密后的数据作为所述加密数据发送到所述管理装置;以及
用户解密装置,其从所述管理装置取得所述加密运算结果,并利用所述用户秘密密钥对所取得的所述加密运算结果进行解密。
6.根据权利要求5所述的加密系统,其中,
所述主密钥生成装置将所述主公开密钥和所述主秘密密钥发送到所述主解密装置,并且仅将所述主公开密钥发送到所述用户密钥生成装置、所述加密装置以及所述管理装置,
所述用户密钥生成装置将所述用户公开密钥和所述用户秘密密钥发送到所述用户解密装置,并且仅将所述用户公开密钥发送到所述加密装置和所述管理装置。
7.根据权利要求5或6所述的加密系统,其中,
所述加密装置取得所述待加密的数据和用于识别用户的用户标识符,并将所述加密数据和所述用户标识符发送到所述管理装置,
所述数据保管部将所述加密数据和所述用户标识符对应起来进行存储,
所述运算部取得所述运算过程和作为所述第2用户的用户标识符的第2用户标识符,从所述数据保管部中选择对所述运算过程所使用的数据进行加密后的、与所述第2用户标识符相对应的加密数据,并根据所述运算过程对所选择的加密数据进行同态运算。
8.一种加密方法,其中,
主密钥生成装置生成第1用户的公开密钥和秘密密钥来作为主公开密钥和主秘密密钥;
用户密钥生成装置使用所述主公开密钥,生成第2用户的公开密钥和秘密密钥来作为用户公开密钥和用户秘密密钥;
管理装置取得使用了数据的运算的过程作为运算过程,从保管有利用所述用户公开密钥进行加密后的加密数据的数据保管部中选择对所述运算过程所使用的数据进行加密后的加密数据,根据所述运算过程对所述加密数据进行同态运算,并输出同态运算的运算结果作为加密运算结果;以及
主解密装置取得所述加密运算结果,并利用所述主秘密密钥对所取得的所述加密运算结果进行解密。
9.一种记录了加密程序的计算机可读的存储介质,其中,该加密程序使计算机执行以下处理:
主密钥生成处理,生成第1用户的公开密钥和秘密密钥来作为主公开密钥和主秘密密钥;
用户密钥生成处理,使用所述主公开密钥,生成第2用户的公开密钥和秘密密钥来作为用户公开密钥和用户秘密密钥;
同态运算处理,取得使用了数据的运算的过程作为运算过程,从保管有利用所述用户公开密钥进行加密后的加密数据的数据保管部中选择对所述运算过程所使用的数据进行加密后的加密数据,根据所述运算过程对所述加密数据进行同态运算,并输出同态运算的运算结果作为加密运算结果;以及
运算结果解密处理,取得所述加密运算结果,并利用所述主秘密密钥对所取得的所述加密运算结果进行解密。
CN201780051797.XA 2016-08-30 2017-08-07 加密系统、加密方法以及计算机可读的存储介质 Active CN109643504B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2016168468A JP6719339B2 (ja) 2016-08-30 2016-08-30 暗号システム、暗号方法及び暗号プログラム
JP2016-168468 2016-08-30
PCT/JP2017/028614 WO2018043049A1 (ja) 2016-08-30 2017-08-07 暗号システム、暗号方法及び暗号プログラム

Publications (2)

Publication Number Publication Date
CN109643504A CN109643504A (zh) 2019-04-16
CN109643504B true CN109643504B (zh) 2022-03-01

Family

ID=61300467

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201780051797.XA Active CN109643504B (zh) 2016-08-30 2017-08-07 加密系统、加密方法以及计算机可读的存储介质

Country Status (4)

Country Link
US (1) US20190190713A1 (zh)
JP (1) JP6719339B2 (zh)
CN (1) CN109643504B (zh)
WO (1) WO2018043049A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10797856B2 (en) * 2018-04-18 2020-10-06 Fujitsu Limited Outsourcing processing operations with homomorphic encryption
CN113055152B (zh) * 2019-12-26 2022-10-18 郑珂威 基于完全同态加密技术的中间代码加密方法及密文虚拟机系统
CN112769553B (zh) * 2020-12-30 2022-08-19 北京宏思电子技术有限责任公司 嵌入式系统中加快sm9双线性对运算的实现方法及装置
CN115102688B (zh) * 2022-08-24 2022-11-22 北京信安世纪科技股份有限公司 数据处理方法、多项式计算方法及电子设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000174746A (ja) * 1998-09-30 2000-06-23 Hitachi Software Eng Co Ltd デ―タ復号方法および装置
JP2013125039A (ja) * 2011-12-13 2013-06-24 Fujitsu Ltd 暗号処理方法、復号処理方法、装置及びプログラム
CN105409159A (zh) * 2013-07-18 2016-03-16 日本电信电话株式会社 密钥保管装置、密钥保管方法、以及其程序

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1425874B1 (en) * 2001-08-13 2010-04-21 Board Of Trustees Of The Leland Stanford Junior University Systems and methods for identity-based encryption and related cryptographic techniques
US8630422B2 (en) * 2009-11-10 2014-01-14 International Business Machines Corporation Fully homomorphic encryption method based on a bootstrappable encryption scheme, computer program and apparatus
US8862895B2 (en) * 2010-04-27 2014-10-14 Fuji Xerox Co., Ltd. Systems and methods for communication, storage, retrieval, and computation of simple statistics and logical operations on encrypted data
JP5921410B2 (ja) * 2012-10-19 2016-05-24 三菱電機株式会社 暗号システム
JP6273951B2 (ja) * 2014-03-24 2018-02-07 富士通株式会社 暗号化装置、暗号化方法、情報処理装置および暗号化システム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000174746A (ja) * 1998-09-30 2000-06-23 Hitachi Software Eng Co Ltd デ―タ復号方法および装置
JP2013125039A (ja) * 2011-12-13 2013-06-24 Fujitsu Ltd 暗号処理方法、復号処理方法、装置及びプログラム
CN105409159A (zh) * 2013-07-18 2016-03-16 日本电信电话株式会社 密钥保管装置、密钥保管方法、以及其程序

Also Published As

Publication number Publication date
US20190190713A1 (en) 2019-06-20
WO2018043049A1 (ja) 2018-03-08
JP6719339B2 (ja) 2020-07-08
CN109643504A (zh) 2019-04-16
JP2018036418A (ja) 2018-03-08

Similar Documents

Publication Publication Date Title
Liu et al. An efficient privacy-preserving outsourced calculation toolkit with multiple keys
Barker Guideline for using cryptographic standards in the federal government: Cryptographic mechanisms
Liu et al. Efficient and privacy-preserving outsourced calculation of rational numbers
US10673614B2 (en) Secret search system, management device, secret search method and computer readable medium
US8401179B2 (en) Encryption parameter setting apparatus, key generation apparatus, cryptographic system, program, encryption parameter setting method, and key generation method
JP5618881B2 (ja) 暗号処理システム、鍵生成装置、暗号化装置、復号装置、暗号処理方法及び暗号処理プログラム
CN109643504B (zh) 加密系统、加密方法以及计算机可读的存储介质
US20170310479A1 (en) Key Replacement Direction Control System and Key Replacement Direction Control Method
Lu et al. Efficient searchable public key encryption against keyword guessing attacks for cloud-based EMR systems
JP6194886B2 (ja) 暗号化統計処理システム、復号システム、鍵生成装置、プロキシ装置、暗号化統計データ生成装置、暗号化統計処理方法、および、暗号化統計処理プログラム
Chen Cryptography standards in quantum time: new wine in old wineskin?
JP2018502320A (ja) 公開鍵暗号化システム
US20180278417A1 (en) Apparatus and method for generating key, and apparatus and method for encryption
JP4869824B2 (ja) 受信者装置及び送信者装置及び暗号通信システム及びプログラム
EP3698262B1 (en) Protecting modular inversion operation from external monitoring attacks
Gupta et al. Session key based novel lightweight image encryption algorithm using a hybrid of Chebyshev chaotic map and crossover
US11411720B2 (en) Key distribution system, terminal device, key distribution method, and program
Parwekar et al. Public auditing: cloud data storage
JP5679344B2 (ja) 署名鍵難読化システム、署名鍵難読化方法、難読化された署名鍵を用いた暗号化署名システム、難読化された署名鍵を用いた暗号化署名方法とプログラム
Barker Cryptographic Standards in the Federal Government: Cryptographic Mechanisms
JP2010272899A (ja) 鍵生成システム及び鍵生成方法及びブラインドサーバ装置及びプログラム
WO2015107561A1 (ja) 検索システム、検索方法および検索プログラム
Imam et al. An empirical study of secure and complex variants of RSA scheme
Ding et al. Ciphertext retrieval via attribute-based FHE in cloud computing
JP2019029751A (ja) 暗号処理装置、暗号化通信システム、暗号処理方法、および暗号処理プログラム

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant