密钥保管装置、密钥保管方法、以及其程序的制作方法
【技术领域】
[0001]本发明涉及将在运算处理中使用的密钥秘密地进行管理的密钥保管装置、密钥保管方法、以及其程序。
【背景技术】
[0002]专利文献1作为将在运算处理中使用的秘密密钥秘密地进行保管的密钥保管装置的现有技术而已知。在专利文献1中,密钥保管装置从终端装置中接收遵照公开密钥加密方式进行了加密的密文,使用秘密密钥,对密文进行解密,将解密结果输出至终端装置。
[0003]现有技术文献
[0004]专利文献
[0005]专利文献1:特开2012-151756号公报
【发明内容】
[0006]发明要解决的课题
[0007]密钥保管装置设为在提供使用了密钥的运算处理的期间(以下称作“运算处理提供期间”)的结束前,将密钥秘密地进行保管,不能输出至外部。此外,密钥保管装置设为伴随运算处理提供期间的结束,对被提供运算处理的用户输出密钥。该前提是为了应对发明者发现的以下的问题。例如,在专利文献1的解密系统中,在结束了运算处理提供期间时,不对用户分发秘密密钥的情况下,会产生用户失去对密文进行解密的手段的问题。为了解决该问题,认为需要考虑用户的便利,伴随解密处理的提供的结束,对用户分发秘密密钥。
[0008]可是,若伴随运算处理提供期间的结束而对运算处理的用户输出秘密密钥,则会新产生以下的问题。
[0009]在运算处理提供期间的结束后,攻击者对密钥保管装置进行非法入侵,存在以完全相同的结构来重新开始服务的可能性。即使假设在运算处理提供期间的结束后,从密钥保管装置中删除秘密密钥,攻击者使用直接或者间接地(经由正规的用户)被分发的秘密密钥,能够以完全相同的结构重新开始服务。如此,会产生如下的问题:不知道运算处理提供期间结束的用户和认为服务已重新开始的用户对由攻击者操纵的密钥保管装置发送密文,从而信息流出。
[0010]本发明的目的在于,提供一种密钥保管装置、密钥保管方法、以及其程序,防止以与运算处理提供期间中的结构相同的结构来重新开始服务。
[0011]用于解决课题的手段
[0012]为了解决上述的课题,根据本发明的第一方式,密钥保管装置设为在提供使用了密钥的运算处理的期间的结束前将密钥秘密地进行管理,伴随该期间的结束而输出密钥,所述密钥保管装置包括:单向函数部,使单向函数对第一信息进行作用而生成密钥;保管部,在期间,将第一信息秘密地进行保管;以及结束判定部,伴随期间的结束,从保管部中删除第一信息,并输出密钥。
[0013]发明效果
[0014]根据本发明的第一方式,能够防止攻击者以与运算处理提供期间中的结构相同的结构来重新开始服务。
【附图说明】
[0015]图1是第一实施方式所涉及的密钥保管装置的功能框图。
[0016]图2是表示第一实施方式所涉及的密钥保管装置的处理流程的图。
【具体实施方式】
[0017]以下,说明本发明的实施方式。另外,在以下说明中使用的附图中,对具有相同功能的结构部、或进行相同处理的步骤记载为同一标号,省略重复说明。
[0018]〈第一实施方式〉
[0019]使用图1以及图2,说明第一实施方式所涉及的密钥保管装置100。图1表示第一实施方式所涉及的密钥保管装置100的功能框图,图2表示第一实施方式所涉及的密钥保管装置100的处理流程。
[0020]密钥保管装置100、终端装置20-1以及终端装置20-2经由通信线路30而相互连接。
[0021]密钥保管装置100、终端装置20-1以及终端装置20-2是路由器装置、服务器装置、便携电话、1C卡等的具备计算功能以及存储功能的设备、或者是具备读入了特别的程序的CPU或RAM的公知或者专用的计算机等。
[0022]密钥保管装置100包括:运算处理部101、单向函数部103、保管部105以及结束判定部107。
[0023]密钥保管装置100设为在运算处理提供期间结束前将密钥s秘密地进行管理,伴随该运算处理提供期间的结束,输出密钥s。在此“管理”是指不仅包括保管且还包括生成的概念,除此之外,也可以是包含追加、变更、删除、与终端装置或信息τ的建立对应等的概念。
[0024]密钥保管装置100在运算处理提供期间结束前,从终端装置20-1接收成为运算处理的对象的信息τ,使用密钥s,进行预定的运算处理,将运算结果ζ发送至终端装置20-1。
[0025]保管部105在运算处理的提供之前,将第一信息s’秘密地进行保管。
[0026]结束判定部107伴随运算处理提供期间的结束,从保管部105中删除第一信息s’,将密钥s输出至终端装置20-1 (图中,以点划线表示)。
[0027]若结束判定部107接收到信息τ,则对运算处理提供期间是否已结束进行判定(si) ο在运算处理提供期间已结束的情况下,结束判定部107将表示运算处理提供期间已结束的意旨的错误消息(error message)发送至终端装置20_1 (s2)。另一方面,在运算处理提供期间没有结束的情况下,结束判定部107将信息τ输出至运算处理部101,对单向函数部103请求密钥s (s3)。
[0028]若单向函数部103被请求密钥s,则从保管部105中取出第一信息s’。单向函数部103使单向函数对第一信息s’进行作用而生成密钥s(s4),将密钥s输出至运算处理部101。例如,假设存在单向散列函数HashO,单向函数部103使该单向散列函数HashO对第一信息S’进行作用而生成密钥s = Hash (s’ )。
[0029]运算处理部101使用密钥s来进行预定的运算处理,将运算结果ζ发送至终端装置20-1 (s5)。运算处理部101可以将密钥s秘密地进行保管,也可以在进行运算处理后进行删除。在将密钥s秘密地进行保管的情况下,运算处理部101能够从下一次起省略上述s3(密钥的请求)、s4(密钥的生成)。另一方面,在进行运算处理后运算处理部101删除密钥s的情况下,在密钥保管装置100的内部不存在密钥s,安全性进一步提高。此外,也可以在接收信息τ前,密钥保管装置100事先生成密钥s,将密钥s秘密地进行保管。总之,只要设为如下结构即可:密钥保管装置100在运算处理提供期间结束前将密钥s秘密地进行管理,伴随运算处理提供期间的结束,从密钥保管装置100 (更具体而言保管部105)中删除第一信息s’,对用户(在该例中,终端装置20-1)输出密钥s。
[0030]作为运算处理,考虑加密、解密、署名生成等。进而,在加密中,考虑基于公共密钥加密方式的加密。在解密中,考虑基于公共密钥加密方式或公开密钥加密方式的解密。作为公共密钥加密方式,考虑AES或DES等,密钥s为公共密钥。作为公开密钥加密方式,考虑RSA加密、ElGamal加密、椭圆ElGamal加密等,密钥s为秘密密钥。在署名生成中,考虑RSA署名等,密钥s为署名密钥。以下,对运算处理进行例示。
[0031](基于公共密钥加密方式的加密、解密)
[0032]说明公共密钥加密方式的一例。首先,密钥保管装置100生成第一信息s’。
[0033]终端装置20-1经由通信线路30对密钥保管装置100委托明文Μ的加密。
[0034]密钥保管装置100接收明文Μ,进行si?s4(运算处理提供期间的判定、密钥的请求、密钥生成)。密钥保管装置100使用公共密钥c ( = s),对明文Μ进行加密,将密文C =Enc(M,c)发送至终端装置20-1 (s5)。此时,密钥保管装置100作为预定的运算处理而进行加密,作为成为运算处理的对象的信息τ而接收明文Μ,作为运算结果ζ而输出密文C。
[0035]终端装置20-1接收密文C,将其进行保存。在该例中,将该密文C发送至终端装置20-2。
[0036]终端装置20-2接收密文C,将其进行保存。终端装置20-2经由通信线路30而对密钥保管装置100委托密文C的解密。
[0037]密钥保管装置100接收密文C,进行si?s4(运算处理提供期间的判定、密钥的请求、密钥生成)。使用公共密钥c,对密文C进行解密,将解密结果M’=Dec(C,c)发送至终端装置20-2 (s5)。此时,密钥保管装置100作为预定的运算处理而进行解密,作为成为运算处理的对象的信息τ而接收密文C,作为运算结果ζ而输出解密结果Μ’。在该例中,委托运算处理的终端装置20-1以及20-2是密钥保管装置100的用户。
[0038](关于使用RSA加密的公开密钥加密方式)
[0039]说明使用RSA加密的公开密钥加密方式的一例。首先,将t设为安全参数(security parameter)。将 p,q(p ^ q)设为 t/2 位(bit)的质数,且设为 m = pq。将e设为小于Φ(πι)的正整数,且与Φ(πι)互质的