CN101326530A - 安全设备、信息处理终端、服务器以及认证方法 - Google Patents
安全设备、信息处理终端、服务器以及认证方法 Download PDFInfo
- Publication number
- CN101326530A CN101326530A CNA2006800461514A CN200680046151A CN101326530A CN 101326530 A CN101326530 A CN 101326530A CN A2006800461514 A CNA2006800461514 A CN A2006800461514A CN 200680046151 A CN200680046151 A CN 200680046151A CN 101326530 A CN101326530 A CN 101326530A
- Authority
- CN
- China
- Prior art keywords
- computing
- information
- authentication
- complicated
- application program
- 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.)
- Pending
Links
Images
Landscapes
- Storage Device Security (AREA)
Abstract
公开了一种安全设备,其能够在将安全设备内的处理负担以及卡应用的代码量抑制得较低的状态下,使终端应用的认证信息运算的内容为每次不同的复杂的运算处理。如果从应用加载器(301)对应用管理单元(1011)进行终端应用(302)的发行请求,则指示内容执行单元(1012)将用于认证密钥的运算的认证信息嵌入在终端应用(302)中,运算复杂化单元(1013)制作将运算结果作为答案的运算问题,并作为认证信息运算的一部分嵌入在终端应用(302)中,所述认证密钥是与使信息处理终端(30)进行处理的应用程序之间的认证处理所需的认证密钥。认证信息运算单元(1014)对认证信息和运算结果进行运算而生成认证密钥,认证处理单元(1032)通过认证密钥进行终端应用(302)的认证处理。由此,不会增加运算处理的复杂度,终端应用(302)的认证信息运算为每次不同的复杂的运算内容。
Description
技术领域
本发明涉及通过非对称运算进行认证的安全设备、信息处理终端、服务器以及它们的认证方法。特别涉及安全地保持数据的IC(集成电路,IntegratedCircuit)卡等的安全设备;搭载了该安全设备的移动电话、PDA(个人数字助理,Personal Digital Assistant)和个人计算机等信息处理终端;安全地保持数据的服务器;以及认证方法。
背景技术
近年来,IC卡等具有CPU(中央处理器,Central Processing Unit)和抗篡改性存储区域的安全设备能够运行卡应用程序(以下适当地将应用程序略称为‘应用’),被用于电子货币或月票、电子票证等服务。通过将该安全设备安装到移动电话等信息处理终端上,将信息处理终端的键盘或显示器用作安全设备的用户界面,并且利用信息处理终端的通信功能在网络上传输要向安全设备中写入的数据或从安全设备中读出的数据,能够执行各种服务。规定了执行这些服务时信息处理终端应进行的动作的终端应用在信息处理终端上运行。另外,在音乐数据播发等利用中要设置制约的服务中,只对专用的终端应用许可其访问安全地保持数据并使服务器应用运行的服务器。
信息处理终端以往比如通过网络从服务提供商那里下载终端应用等,而取得所希望的终端应用。在这样的下载方式中,从安全设备和安全地保持数据的服务器(以下简称为‘服务器’)来看,不知道在信息处理终端上被启动的、要访问安全设备和服务器的终端应用是否是真实的。因此,有时存在以下的情况:正规的用户不注意地使用非法的终端应用,却能够不受本应对真实的终端应用施加的制约而利用安全设备或服务器的信息和服务。这意味着对比如禁止存储到信息处理终端的存储、发送到网络的发送、以及印刷的信息等,可能进行这些动作。在这样的状态下,无法充分地确保机密信息的机密性、以及价值信息的价值的保护等。
为了解决这样的问题,有在安全设备与终端应用之间进行认证处理的方式,该方式作为典型的两者间的认证方式已众所周知。关于该方式,双方的信息处理终端对密码、ID(标识)之类的认证信息进行运算,通过该认证信息运算生成用于加密算法的密钥,并且通过确认两者是否生成了相同的密钥来进行认证(例如,参照专利文献1)。
此时,如果进行终端应用的认证信息运算的要素为容易分析的要素,则能够推测密码而生成密钥。如果能够通过推测密码而生成密钥,则会出现非法的第三者通过利用以前成功了的认证处理中所交换的信息,发现密码而进行攻击,而不对安全设备多次地进行认证请求。而且,相反的,在得知密码的情况下,通过在另外制作了的终端应用中生成密钥而进行认证,能够回避本应对真实的终端应用施加的制约。
为了防止发生这样的事态,可考虑使终端应用的认证信息运算更为复杂而难于进行分析。但是,虽然越是使认证信息运算复杂,就越能使分析更为困难,但是在安全设备或服务器也必须进行生成相同的密钥的相同的认证信息运算。由此,由卡应用或服务器执行的应用程序的处理负担和代码量会增大。因此,在CPU的处理速度或存储器的运算处理能力有限的安全设备中,无法使认证信息运算过于复杂。另外,在从多个信息处理终端接受终端应用的请求的服务器中,有可能在短时间集中地接受多个请求,这也难以使认证信息运算更为复杂。于是,公开了对特定的认证信息运算适用利用表格进行运算处理的方法,由此降低安全设备和服务器中的认证信息运算的复杂性的技术(例如,参照专利文献2)。
【专利文献1】日本专利申请特开2003-263414号公报
【专利文献1】日本专利申请特开平11-288215号公报
发明内容
发明所要解决的课题
但是,在包括上述专利文献的以往技术中,因为认证信息运算的内容并不发生变化,所以不论如何使认证信息运算复杂,只要认证信息的运算内容一旦被分析出来就能够进行非法行为。而且,在以往技术中,存在以下的问题而仍然没有克服,即在CPU的处理速度或存储器的运算处理能力有限的安全设备端和在应减低由各个认证处理所产生的装置负担的服务器端必须进行同等复杂的处理。
本发明的目的在于提供安全设备,并且提供搭载了该安全设备的信息处理终端以及认证方法,所述安全设备能够在将安全设备内的处理负担以及卡应用的代码量抑制得较低的状态下,使终端应用的认证信息运算的内容为每次不同的复杂的运算处理。进而,本发明的其它的目的在于提供服务器,其能够在将安全设备内的处理负担以及卡应用的代码量抑制得较低的状态下,使终端应用的认证信息运算的内容为每次不同的复杂的运算处理。
解决问题的方案
为了解决上述以往的问题,本发明的安全设备安装在信息处理终端中,存储数据并且在隐匿的状态下执行运算,其采用的结构包括:存储单元,存储用于使所述信息处理终端进行处理的应用程序;指示内容执行单元,将用于计算认证密钥的认证信息嵌入到所述应用程序中,所述认证密钥是所述应用程序与所述安全设备之间的认证处理所需的认证密钥;运算复杂化单元,制作将预先选择出的运算结果作为解答的运算问题,并将该运算问题作为认证信息运算的一部分嵌入到所述应用程序中;认证信息运算单元,对所述认证信息和所述运算结果进行运算而生成认证密钥;以及认证处理单元,通过所述认证密钥进行与所述信息处理终端所执行的应用程序之间的认证处理。
根据这样的结构,因为在安全设备内使用预先选择出的运算结果,所以运算处理的复杂度基本上不会提高。而且,必须解答运算问题的终端应用程序的认证信息运算为复杂的运算内容。另外,对于将某运算结果作为答案的运算问题而言,通常存在多个,所以能够使终端应用程序的认证信息运算为每次不同的内容。因此能够使对于受到攻击的终端应用程序的安全性维持在较高的状态。
另外,在本发明的安全设备中,采用以下的结构:所述存储单元还存储由所述运算复杂化单元制作所述运算问题时所使用的运算复杂化信息,在所述运算复杂化信息中,至少保持运算问题和运算结果的组。根据这样的结构,因为在安全设备内无需生成运算问题,所以处理负担和代码量都不会增加,而且必须解答运算问题的终端应用程序的认证信息运算为复杂的运算内容。
另外,在本发明的安全设备中,采用以下的结构:所述运算问题的数据包含可嵌入到所述应用程序中的程序代码的图像。根据这样的结构,数据与代码地增加相应地变得复杂,译解该部分也变得困难,所以能够使数据的分析更为困难。
另外,在本发明的安全设备中,采用以下的结构:所述程序代码的图像为用来解答所述运算问题的代码。根据这样的结构,即使解答运算问题的部分被暂时分析出来,能够通过更新该程序代码的图像而恢复安全性。
另外,在本发明的安全设备中,采用以下的结构:所述运算复杂化单元选择所对应的运算问题,以使所述应用程序所进行的复杂的运算结果的一部分成为在所述运算复杂化信息中所保持的运算结果。根据这样的结构,因为在安全设备内只需选择预先知道答案的问题即可,所以运算处理的复杂度不会提高。而且,必须解答运算问题的终端应用程序的认证信息运算为复杂的运算内容。
另外,本发明的信息处理终端采用以下的结构,包括:安全设备,存储数据并且在隐匿的状态下执行运算;以及应用加载器,请求应用程序的发行,从所述安全设备接收包含经复杂化的运算的应用程序而启动,所述安全设备包括:存储单元,存储用于使所述信息处理终端进行处理的应用程序;指示内容执行单元,将用于计算认证密钥的认证信息嵌入到所述应用程序中,所述认证密钥是所述应用程序与所述安全设备之间的认证处理所需的认证密钥;运算复杂化单元,制作将预先选择出的运算结果作为解答的运算问题,并将该运算问题作为认证信息运算的一部分嵌入到所述应用程序中;认证信息运算单元,对所述认证信息和所述运算结果进行运算而生成认证密钥;以及认证处理单元,通过所述认证密钥进行与所述信息处理终端所执行的应用程序之间的认证处理。
根据这样的结构,因为在安全设备内使用预先选择出的运算结果,所以运算处理的复杂度基本上不会提高。而且,必须解答运算问题的终端应用程序的认证信息运算为复杂的运算内容。另外,对于将某运算结果作为答案的运算问题而言,通常存在多个,因此能够使终端应用程序的认证信息运算为每次不同的内容。因此能够使对于受到攻击的终端应用程序的安全性维持在较高的状态。
另外,在本发明的信息处理终端中,采用以下的结构:安全设备的存储单元还存储由所述运算复杂化单元制作所述运算问题时所使用的运算复杂化信息,在该运算复杂化信息中,至少保持运算问题和运算结果的组。根据这样的结构,因为在安全设备内无需生成运算问题,所以处理负担和代码量都不会增加,而且必须解答运算问题的终端应用程序的认证信息运算为复杂的运算内容。
另外,在本发明的信息处理终端中,采用以下的结构:所述运算问题的数据包含可嵌入到所述应用程序中的程序代码的图像。根据这样的结构,增加了代码部分的运算变得复杂,进而译码该部分也变得困难,所以分析更困难。
另外,在本发明的信息处理终端中,采用以下的结构:所述程序代码的图像为用来解答所述运算问题的代码。根据这样的结构,即使解答运算问题的部分被暂时分析出来,能够通过更新该程序代码的图像而恢复安全性。
另外,在本发明的信息处理终端中,采用以下的结构:安全设备的运算复杂化单元选择要对应的运算问题,以使所述应用程序所进行的复杂的运算结果的一部分成为在所述运算复杂化信息中所保持的运算结果。根据这样的结构,因为在安全设备内只需选择预先知道答案的问题即可,所以运算处理的复杂度不会提高。而且,必须解答运算问题的终端应用程序的认证信息运算为复杂的运算内容。
另外,本发明的服务器,将用于使信息处理终端进行处理的应用程序发送到所述信息处理终端,其采用的结构包括:存储单元,存储所述应用程序;指示内容执行单元,将用于计算认证密钥的认证信息嵌入到所述应用程序中,所述认证密钥是所述应用程序与所述服务器之间的认证处理所需的认证密钥;运算复杂化单元,制作将预先选择出的运算结果作为解答的运算问题,并将该运算问题作为认证信息运算的一部分嵌入到所述应用程序中;认证信息运算单元,对所述认证信息和所述运算结果进行运算而生成认证密钥;以及认证处理单元,通过所述认证密钥进行与所述信息处理终端所执行的应用程序之间的认证处理。
根据这样的结构,因为在服务器内使用预先选择出的运算结果,所以运算处理的复杂度基本上不会提高。而且,必须解答运算问题的终端应用程序的认证信息运算为复杂的运算内容。另外,对于将某运算结果作为答案的运算问题而言,通常存在多个,因此能够使终端应用程序的认证信息运算为每次不同的内容。因此能够使对于受到攻击的终端应用程序的安全性维持在较高的状态。
另外,在本发明的服务器中,采用以下的结构:还包括复杂度选择单元,用来选择所述运算复杂化单元所制作的运算问题的复杂度。根据这样的结构,能够根据状况选择终端应用程序的认证信息运算的复杂度,能够灵活地应对从多个信息处理终端接受终端应用程序的请求的情况,以及通信环境和信息处理终端的动作环境,从而实现顺利的服务。
另外,本发明的认证方法,包括以下步骤:选择用于计算认证密钥的认证信息和运算结果,所述认证密钥是与使信息处理终端进行处理的应用程序之间的认证处理所需的认证密钥;制作将选择出的运算结果作为解答的运算问题;将选择出的认证信息嵌入到所述应用程序中,并将所制作的运算问题作为认证信息运算的一部分嵌入到所述应用程序中;将嵌入了所述认证信息以及所述运算问题的所述应用程序发送到所述信息处理终端;通过对所述认证信息和所述运算结果进行运算而生成的认证密钥,进行与所述信息处理终端所执行的应用程序之间的认证处理,所述认证信息和所述运算结果是嵌入在发送到信息处理终端的所述应用程序中的认证信息和运算结果。
根据这样的结构,能够在将安全设备内和服务器内的处理负担以及卡应用的代码量抑制得较低的状态下,使终端应用的认证信息运算的内容成为复杂的运算处理。另外,对于将某一运算结果作为答案的运算问题而言,通常存在多个,因此能够使终端应用程序的认证信息运算为每次不同的内容。因此能够使对于受到攻击的终端应用程序的安全性维持在较高的状态。
发明的效果
根据本发明,保持着运算复杂化单元和运算复杂化信息,执行运算处理的复杂化,以只提高信息处理终端的运算处理的复杂度而不增加本身的运算处理的复杂度。由此,能够在将安全设备内或者服务器内的处理负担以及卡应用程序或者服务器应用程序的代码量抑制得较低的状态下,使终端应用程序的认证信息运算的内容为每次不同的复杂的运算处理。因此,认证信息运算的分析变得困难,能够确保认证处理的安全。
附图说明
图1是表示本发明的实施方式1至实施方式3的安全设备以及信息处理终端的结构和动作的流程的图。
图2是表示本发明的实施方式1至实施方式3的安全设备以及信息处理终端的动作的流程的流程图。
图3是表示一例本发明的实施方式1以及实施方式4中的运算复杂化单元使用的运算复杂化信息的结构图。
图4A~图4C是表示为了说明本发明的实施方式1以及实施方式4中的指示书和发行信息的具体例子的图。
图5是表示一例本发明的实施方式2以及实施方式5中的运算复杂化单元所使用的运算复杂化信息的结构图。
图6是表示一例本发明的实施方式3以及实施方式6中的运算复杂化单元所使用的运算复杂化信息的结构图。
图7是表示本发明的实施方式4至实施方式6的服务器以及信息处理终端的结构和动作的流程的图。
图8是表示本发明的实施方式4至实施方式6的服务器以及信息处理终端的动作的流程的流程图。
具体实施方式
(发明概要)
本发明的安全设备保持:用于制作将预先选择出的运算结果作为解答的运算问题,并将其作为认证信息运算的一部分嵌入到应用程序中的运算复杂化单元,以及由运算复杂化单元制作运算问题时所使用的运算复杂化信息。此时,在运算复杂化信息中保持着运算问题和运算结果的组。由此,能够在将安全设备内的处理负担以及卡应用程序的代码量抑制得较低的状态下,使终端应用程序的认证信息运算的内容为每次不同的复杂的运算处理,并且能够通过使数据的分析变得困难而确保认证处理的安全。也就是说,能够基本上不增加由安全设备产生的运算处理的复杂度,而只增加信息处理终端的运算处理的复杂度。
以下,利用附图详细地说明本发明的信息处理终端的几个实施方式。另外,在用于各个实施方式的附图中,对相同的结构要素附加相同的标号,而且尽可能地省略重复的说明。
(实施方式1)
在本发明实施方式1中,说明保持终端应用的安全设备。该安全设备安装在信息处理终端,如果信息处理终端请求终端应用的启动,则嵌入了方法(method)和认证信息的终端应用被发行,所述方法用于进行由安全设备复杂化过的认证信息运算。然后,如果信息处理终端启动终端应用,则终端应用通过比安全设备更复杂的运算处理运算认证密钥,进而安全设备通过更简单的运算处理运算认证密钥,从而在安全设备和信息处理终端之间进行利用认证密钥的认证。
图1是表示本发明的实施方式1的安全设备以及信息处理终端的结构和动作的流程的图。首先,利用图1说明安全设备10和信息处理终端30的结构。
在图1中,安全设备10包括:发行应用101,将运算方法和认证信息嵌入在终端应用302中而进行终端应用302的发行;服务应用103,进行信息服务;以及存储单元102,存储发行应用101和发行应用101使用的信息。
发行应用101和服务应用103比如为以Java(注册商标)语言记叙的卡应用,通过安全设备10的CPU以及Java(注册商标)虚拟引擎被解释和执行。终端应用302比如为以Java(注册商标)语言记叙的应用程序,通过信息处理终端30的CPU以及Java(注册商标)虚拟引擎被解释和执行。
发行应用101包括:应用管理单元1011,管理终端应用302;指示内容执行单元1012,解释指示书1021,从而进行认证信息的嵌入处理;运算复杂化单元1013,将运算复杂化;认证信息运算单元1014,对认证信息进行运算而生成认证密钥;以及认证信息交还单元1015,响应来自服务应用103的请求而转交认证密钥。
服务应用103包括:认证信息获取单元1031,向发行应用101请求认证密钥;认证处理单元1032,使用认证密钥进行认证处理;以及服务固有单元1033,进行服务应用103所固有的处理。
存储单元102是位于安全设备上10的、比如EEPROM(电可擦除只读存储器,Electrically Erasable and Programmable Read Only Memory)或闪速存储器等的存储装置,进而作为具有抗篡改性等的难以从外部直接参照的存储区域而构成。在该存储单元102中存储有:指示书1021,写有关于发行处理的指示;终端应用数据1022,是终端应用302的二值图像(binary image);运算复杂化信息1023,用于由运算复杂化单元1013进行复杂化;以及发行信息1024,将发行了的终端应用302的识别信息和认证密钥作为一对进行存储。
另一方面,信息存储终端30包括:终端应用302;以及应用加载器301,请求并接收该终端应用302的发行。另外,所启动的终端应用302包括:认证信息复杂运算单元3021,进行基于由运算复杂化单元1013复杂化的运算方法和认证信息的运算;认证处理单元3022,进行认证;以及终端应用固有单元3023,进行终端应用固有的动作。其中,认证信息复杂运算单元3021包括:通过发行应用101嵌入了的、m个(m为1以上的整数)运算方法3031至303m;以及n个(n为1以上的整数)认证信息3041至304n。
接下来,参照图2说明图1所示的安全设备10和信息处理终端30的动作。
图2是表示安全设备10以及信息处理终端30的动作的流程的流程图。图2中的步骤号码与图1中的带括号的数字相对应。
如果从用户等请求终端应用302的启动,则信息处理终端30的应用加载器301将终端应用302的发行请求,发送到安全设备10中的发行应用101的应用管理单元1011(步骤S1)。于是,应用管理单元1011选择与所请求的终端应用302对应的终端应用数据1022以及所对应的指示书1021,从存储单元102读出。然后,应用管理单元1011将读出了的终端应用数据1022以及指示书1021转送给指示内容执行单元1012(步骤S2)。
于是,指示内容执行单元1012解释接受了的指示书1021,进行将认证信息3041至304n(也可以不是全部的n个)嵌入到终端应用数据1022中的处理,并将处理结果与指示书1021一起转送给运算复杂化单元1013(步骤S3)。运算复杂化单元1013使用运算复杂化信息1023,嵌入运算方法3031至303m和认证信息3041至304n(也可以不是全部的n个)而生成终端应用302,以只使终端应用302成为复杂的运算。然后,运算复杂化单元1013将所生成的终端应用302转送给应用加载器301,而将认证密钥的运算所需的信息转送给认证信息运算单元1014。具体而言,运算复杂化单元1013利用接受了的指示书1021嵌入运算方法,利用嵌入了哪个运算方法图像的组的信息(以下称为运算方法组信息),获取相反(inverse)值C和认证密钥的运算式,并将相反值C作为认证信息嵌入,所述相反值C用于抵消对每个运算方法所决定的常数。另外,运算复杂化单元1013将认证信息3042至304n以及运算式作为认证密钥的运算所需的信息,转送给认证信息运算单元1014(步骤S4)。后面详述运算方法组信息以及相反值。
接下来,认证信息运算单元1014将认证信息3042至304n代入运算式来对认证密钥进行运算,并将其与终端应用数据1022的识别信息作为一对,存储在发行信息1024(步骤S5)。进而,在信息处理终端30中,如果应用加载器301接收所发行的终端应用302而启动终端应用302,则终端应用302的认证信息复杂运算单元3021使用认证信息3041至304n和运算方法3031至303m,对认证密钥进行运算,并将运算出的认证密钥转送给认证处理单元3022(步骤S6)。
于是,在信息处理终端30中,终端应用302的认证处理单元3022与安全设备10端的服务应用103的认证处理单元1032一起开始认证处理(步骤S7)。进而,在安全设备10中,服务应用103的认证信息获取单元1031从发行应用101的认证信息交还单元1015获取安全设备10的认证处理单元1032所需的认证密钥。该认证密钥为在步骤S5由认证信息运算单元1014进行运算并预先在发行信息1024中存储的认证密钥(步骤S8)。然后,安全设备10的认证处理单元1032从认证信息获取单元1031接受认证密钥,与终端应用302的认证处理单元3022一起确认是否为相同的认证密钥,从而进行认证处理。这里,使用质询/响应(challenge-response)来确认是否为相同的认证密钥(步骤S9)。
进而,信息处理终端30的认证处理单元3022和安全设备10的认证处理单元1032分别将认证结果转告给终端应用固有单元3023和服务固有单元1033。然后,信息处理终端30的终端应用固有单元3023和安全设备10的服务固有单元1033通过在认证处理中新的共享过的密钥进行相互通信(步骤S11)。在认证处理失败了的情况下,不进行其后的终端应用固有单元3023和服务固有单元1033之间的相互通信,信息处理终端30删除终端应用302。
以下说明使认证信息复杂运算单元3021的运算更为复杂,而可使认证信息运算单元1014的运算较为简单的原理。
首先叙述上述原理的概要。为了简化说明,将认证信息3041至304n的数目n设为5,将认证信息3042至3045分别设为a、b、c和d,并将认证信息3041设为C。另外,认证信息3042至3045的数值均为64比特。这是因为假定以Java(注册商标)的long型来进行处理。
作为运算方法使用以下的方法:将所提供的自变量乘以a、b、c和d中的某个(也可以为多个),进而乘以对每个运算方法决定了的常数,并将由此得到的结果返回。这些常数也为64比特。认证信息复杂运算单元3021从将C(也就是认证信息3041)转送给运算方法3031开始,将该运算结果依次转送给运算方法3032至303m并进行运算,从而得到由C、a、b、c和d的值与常数组成的积。最后,认证信息复杂运算单元3021将以2的32次幂相除所得的余数作为认证密钥。在实际的利用时,因为密钥比如需要128比特或256比特,所以在该方法中要嵌入多个32比特的值,或者同时使用直接嵌入信息等其它的方法。
C被选为以下的值,即将所乘的所有常数的积与C之间的积,以2的64次幂相除一定会余1(在那样的意义上将C称为相反值)的值。因为对于这样恰当地选择了的解答1,设法制作使解答为1的运算问题,所以最后成为运算a、b、c和d的积。因为认证密钥为将运算了的结果以2的32次幂相除所得的余数,所以无需在安全设备10中进行64比特的运算,进行使用了a、b、c和d的低位32比特的根据int型的运算即可。
接下来,说明运算复杂化信息1023。
图3是表示一例本发明的实施方式1的运算复杂化单元1013所使用的运算复杂化信息1023的结构图。利用图3叙述运算复杂化信息1023。如图3所示,运算复杂化信息1023包括:所嵌入的运算方法图像、相反值的一览‘inverse’、根据嵌入了的方法而选择相反值的‘index’、以及认证信息运算单元1014所使用的运算式的一览‘calc’。
首先,列举可成为相反值的候补的所有值,并标附号码。该信息为在图3中被表示为‘inverse’的信息。0:C1 -C1 -:0x5BC72201表示第0号的相反值C1 -C1 -的值为0x5BC72201。Cn +和C1 -的一对数字被选出,以使它们相乘并以2的64次幂相除而得的余数为1。
而且,通过预先准备根据运算方法组信息而获取号码的表格,可容易地根据运算方法组信息得到相反值。该表格为在图3中被表示为‘index’的信息。比如,(1,2):1表示:作为运算方法图像的组,选择了运算方法图像1和运算方法图像2的情况下,使用索引序号为1的相反值。因为在各个方法中所乘的常数为C1 +C2 +,所以C1 -C2 -被选择。
而且,预先对每个运算方法图像存储表示进行哪样的运算的运算式。图3的表示为‘calc’的信息就是该运算式。5:a*c表示在运算方法图像5中,执行a*c。因为常数对发行应用101没有必要所以被除去。
比如,作为运算方法选择了1和2的情况下,运算方法组信息为(1,2)。根据这些信息,作为C能够选择索引号码为1的C1 -C2 -,可知认证信息运算单元1014所进行运算的式子为相乘了‘calc’的1和2的式子的a*b。
接下来,说明指示书1021以及发行信息1024。
图4A~图4C是用于说明本发明的实施方式1中的指示书和发行信息的具体例的图,图4A是表示一例指示书的图,图4B是用于说明指示书的数值的含义的图,图4C是表示一例发行信息的图。指示书是为了进行嵌入和复杂化处理,被指示内容执行单元1012和运算复杂化单元1013使用的信息,记叙了终端应用数据1022的变量的位置和类型、以及方法的位置等。在***虚拟方法来确保运算方法的地点的情况下,还需要可嵌入的方法量的最大值。
图4A表示指示书的例子,为了得到该指示书中所记载的位置信息必须分析终端应用数据1022。该分析也可以在卡应用中进行,但是因为分析较困难,所以通常是在外部预先进行分析而保持制作出的位置信息。
图4B说明指示书的位置信息与终端应用数据1022之间的关系。在该例中表示着:long型的变量s1、s2和s3的地点分别为0x47、0x67和0x87,运算方法m1和m2的地点分别为0x57和0x77,在该地点所嵌入的方法的长度的最大值分别为0x0a和0x0b,反值(inverse number)C的地点为0x97。另外,因为卡应用无需变量名,所以指示书中没有记叙。
变量的地点在嵌入认证信息时被使用,运算方法的地点在嵌入运算方法图像时被使用。也就是说,在将认证信息嵌入到变量s1时,从地址0x47开始嵌入8字节的随机的值,在将运算方法图像嵌入到方法m1时,在从地址0x57开始、0x0a字节以内的范围进行嵌入。另外,还能够根据需要预先记叙变量的数值的范围等。
图4C表示一例在发行信息1024中存储的信息。也就是说,如图4C那样,将能够唯一确定终端应用302的、终端应用302的名称或ID等信息和认证密钥作为一对存储。
接下来,参照图1以及图2,与图1以及图2的步骤号码相对应地说明图4的指示书和发行信息的动作的流程。
应用加载器301将终端应用302的发行请求发送到安全设备10的发行应用101的应用管理单元1011(步骤S1)于是,应用管理单元1011选择终端应用数据1022和指示书1021,并将其转送给指示内容执行单元1012(步骤S2)。
接下来,接受了终端应用数据1022和指示书1021的指示内容执行单元1012使用在指示书1021中所写入的变量的位置信息,将随机数作为认证信息3042至304n嵌入到终端应用数据1022,并转送给运算复杂化单元1013。此时,使认证信息3041空着以便后用(步骤S3)。
从指示内容执行单元1012接受了终端应用数据1022和指示书1021的运算复杂化单元1013,使用在指示书1021中所写入的方法的位置信息,在终端应用数据1022预先准备了的可嵌入运算方法的地点,随机地选择运算方法图像102301至102306并嵌入。图3中虽然嵌入有运算方法图像1(102301)和运算方法图像2(102302),但是也可以选择多个相同的运算方法图像。这些成为运算方法3031至303m。因此,这些运算方法图像每次发行时都不相同,此时存在6(运算方法图像的数目)的m次种。运算方法图像的数目为一个时,为1的m次种。
接下来,运算复杂化单元1013利用运算方法组信息,从运算复杂化信息1023的‘index’获得所需的号码,从‘inverse’获得反值C,并作为终端应用1022的认证信息3041嵌入。利用运算方法组信息,从运算复杂化信息1023获得所对应的运算式,将运算式和认证信息3042至304n转送给认证信息运算单元1014。该运算式为在图3中被表示为‘calc’的信息(步骤S4)。
这样,在运算复杂化单元1013取得运算式,则认证信息运算单元1014将认证信息3042至304n代入运算式来对认证密钥进行运算。然后,使认证密钥与终端应用302的识别信息相对应,并作为发行信息1024存储在存储单元102(步骤S5)。
接下来,说明在运算方法中包含的常数和反值C的选择方法。
首先,选择索引序号为n的一对Cn +和Cn -。设其中一个为随机的奇数,利用扩展欧几里得算法来选择另一个,使它们相乘并以2的64次幂相除所得的余数为1。选择这样的几对(在图3中选择了6组)。
接下来,在运算方法303m中决定乘以第m个常数Cm +。因此,得知对运算方法组信息乘以什么样的常数。比如,假设作为运算方法3031嵌入了运算方法图像102301,作为运算方法3032嵌入了运算方法图像102302,则将C1 +和C2 +相乘。此时,作为反值选择乘以了C1 -和C2 -的反值即可。也就是说,将所有的与所乘的常数对应的一对中的另外一个相乘所得的值,选择作为反值。列举所有的这样的组合,根据运算方法组信息得到索引而得到反值的方法如上所述。
通常来讲,在运算复杂化信息1023的生成中,用于该生成的程序的代码量也多,并且花费在运算的时间较长,因此运算复杂化信息1023被预先生成并被保持。用于此目的的运算复杂化信息生成装置(未图示)另外存在,而安全设备保持通过该运算复杂化信息生成装置生成的信息。
如以上说明那样,根据本发明的实施方式1,将用于计算认证密钥的认证信息嵌入到终端应用302,并制作将预先选择出的运算结果作为解答的运算问题,作为在信息处理终端30端的认证信息运算的一部分嵌入到终端应用302。由此,能够在将安全设备10内的处理负担以及卡应用的代码量抑制得较低的状态下,使终端应用302的认证信息运算的内容成为复杂的运算处理。而且,因为随机地选择认证信息和运算问题,所以能够使在信息处理终端30端的认证信息运算为每次不同的内容。因此能够使对于受到攻击的终端应用程序的安全性维持在较高的状态。而且,在信息处理终端30端,能够通过进行复杂的认证信息运算而生成认证密钥,另一方面在安全设备10端能够以较少的运算量生成相同的认证密钥,在信息处理终端30和安全设备10之间,能够进行基于所生成的认证密钥是否一致的相互的认证。
另外,在实施方式1中,虽然嵌入反值C最终使常数消失,但是并不只限于此。比如,也可以嵌入常数1来替代C,发行应用101存储C,直接接受终端应用302的计算结果,在自身乘以C而删除常数,通过与自身运算出的认证密钥相比较,进行终端应用302的认证。由此,能够隐藏只有C依赖于其它的认证信息而被选择的信息。但是,此时无法进行相互的认证。
另外,在实施方式1中,虽然在将安全设备10安装到信息处理终端30时,信息处理终端30请求终端应用302的启动,但是并不只限于安装时,只要是安装着,信息处理终端30无论什么时候都可请求终端应用302的启动。
另外,在实施方式1中,虽然指示内容执行单元1012基本上将认证信息3041至304n都嵌入,而运算复杂化单元1013只嵌入反值C,但是运算复杂化单元1013也可以嵌入全部认证信息。而且,在实施方式1,虽然根据认证信息3041至304n生成认证密钥,将认证密钥看作公共密钥,利用质询/响应对是否持有相同的密钥进行认证处理,但是并不只限于此,也可以如上述的不嵌入反值C的方法那样进行不同的认证处理。
另外,在实施方式1中,虽然将认证信息设为64比特,但是如果利用最后以32比特相除而得到的余数,则可以为比其大的数值,比如也可以为128比特。此时,通过在终端应用安装多倍字长运算(multiple length arithmetic),可期望进一步的复杂化。进而,在实施方式1中,虽然使用运算式进行了认证信息3041至304n的运算,但是并不只限于此,也可以由运算复杂化单元1013在进行复杂化处理的同时,乘以认证信息3041至304n而得到认证密钥。此时,因为无需运算式的解释,所以可成为更加简单的结构。
另外,在实施方式1中,虽然认证信息复杂运算单元3021被静态地准备在终端应用302内,但是并不只限于此,也可以还将该方法作为数据准备多个而预先存储在卡内,在终端应用302的发行时由发行应用101嵌入。此时,指示书1021中记载着表示认证信息复杂运算单元3021的地点的地址的值。由此,可进一步增加随机的复杂度,不只是增加安全性,即使在万一完全被进行了分析的情况下,也能够通过更新该认证信息复杂运算单元3021的数据而恢复安全性。
另外,在实施方式1中,也可以对运算方法图像和认证信息复杂运算单元3021的数据进行模糊化。由此,能够进行进一步的复杂化。进而,在实施方式1中,也可以使运算方法图像和认证信息复杂运算单元3021的数据因卡不同而异。由此,废弃了卡的结果,使第三者非法取得的信息无法直接挪用到其它的卡,结果可进一步提高安全性。
另外,在实施方式1中,虽然嵌入了所有的认证信息3041至304n,但是也可以只嵌入一部分,而在启动后再交付剩余的认证信息。由此,使在认证处理的执行前信息不够而能够使分析困难。进而,在实施方式1中,虽然将能够根据解答而简单地制作问题的信息作为运算复杂化信息1023来保持,但是并不只限于此,卡的运算能力许可时也可以使其自身生成问题,还可以随机地生成解答,而生成将其作为解答的问题。由此能够进行进一步的复杂化。
另外,在实施方式1中,虽然常数和反值被预先决定,但是卡应用的能力充裕时,也可以随机地生成这些常数并求反值。此时,随机性更加提高,从而能够进一步地提高安全性。
(实施方式2)
实施方式2中的信息处理终端30和安全设备10的结构与图1的实施方式1的情况同样。但是,运算复杂化信息1023的内容和处理该内容的运算复杂化单元1013的动作不同。
首先,叙述使认证信息复杂运算单元3021的运算更为复杂,而可使认证信息运算单元1014的运算较为简单的原理的概要。为了简化说明,将认证信息3041至304n的数目n设为4,将认证信息3041至3044分别设为a、b、c和d。其中,与实施方式1不同,不将认证信息3041设为反值C。此时的认证信息3041至3044的数值均为64比特。在实施方式2的具体例中,作为运算方法使用以下的方法:将所提供的自变量乘以a、b、c和d中的某个(也可以为多个),进而乘以对每个运算方法所决定的常数,并将由此得到的结果返回。
认证信息复杂运算单元3021从将1转送给运算方法3031开始,将该运算结果依次转送给运算方法3032至303m并进行运算,最终得到由a、b、c和d的值与常数运算成的积。然后,最后认证信息复杂运算单元3021将以2的32次幂除后所得的余数作为认证密钥。常数和所***的运算方法的组通过以下方式被选择,即将所乘的所有常数的积以2的64次幂相除而一定余1。另一方面,认证信息运算单元1014无需进行基于常数值的运算。
接下来,说明运算复杂化信息1023。
图5是表示一例本发明的实施方式2中的运算复杂化单元所使用的运算复杂化信息1023的结构图。利用图5叙述运算复杂化信息1023。运算复杂化信息1023包括:记述了所嵌入的运算方法图像以及要嵌入的方法的一对的‘pair’以替代图3的‘inverse’以及‘index’,以及认证信息运算单元1014所使用的运算式的一览‘calc’。其中,‘calc’的内容与图3不同。
此时,要嵌入的运算方法被选择,以使存在常数被适当地抵消的一对。为此,预先列举像图5的‘pair’信息那样互相抵消的一对,在随机地选择了一个时,能够选择另一个以互相抵消。在图5中,‘pair’的0:3表示选择了运算方法图像0时,选择运算方法图像3则可互相抵消。而且,5:0*2,2*4表示选择了5时,需要选择(0,2)或者(2,4)的一对。
用于由认证信息运算单元1014进行认证信息运算的运算式通过嵌入的方法的一对来决定。也就是说,图5所示的‘calc’的(0,3):a*d表示选择了(0,3)的一对时,作为对认证信息进行运算的式子使用a*d。
另外,也可以像图5的运算方法图像102305那样,将多个常数一次抵消。此时,在假设嵌入运算方法图像102305的情况下,作为该一对,嵌入运算方法图像102300和运算方法图像102302的两者,或者运算方法图像102302和运算方法图像102304的两者。
在运算方法3031至303m所包含的常数Cn +和Cn -通过以下方式选择,即与实施方式1同样地使它们相乘并以2的64次幂相除而得到的余数为1。选择这样的几对(在图5中选择两组)来准备运算方法图像,以便存在抵消的一对。
接下来,参照图1以及图2,与图1以及图2的步骤号码相对应地说明实施方式2中的安全设备10和信息处理终端30的动作。
首先,应用加载器301将终端应用302的发行请求发送到安全设备10的发行应用101的应用管理单元1011(步骤S1)于是,应用管理单元1011选择终端应用数据1022和指示书1021,并将其转送给指示内容执行单元1012(步骤S2)。
接受了终端应用数据1022和指示书1021的指示内容执行单元1012使用在指示书1021中所写入的变量的位置信息,将随机数作为认证信息3041至304n嵌入到终端应用数据1022,并转送给运算复杂化对应1013。此时,认证信息3041中也嵌入随机数,这方面与实施方式1不同(步骤S3)。
从指示内容执行单元1012接受了终端应用数据1022和指示书1021的运算复杂化单元1013,使用在指示书1021中所写入的方法的位置信息,在终端应用数据1022预先准备了的可嵌入运算方法的地点,选择运算方法图像102300至102305(图5中为6个)并嵌入。
此时,在选择了被乘以某个常数(比如C1 +)的运算方法图像时,运算复杂化单元1013选择抵消该常数的、被乘以常数(C1 -)的运算方法图像。在图5中,被嵌入运算方法图像0(102300)和运算方法图像3(102303)。用于此目的的信息为图5‘pair’信息。以此被选择并嵌入的运算方法图像成为运算方法3031至304m。因此,这些运算方法在每次发行时都不同。
接下来,运算复杂化单元1013利用运算方法组信息,从运算复杂化信息1023获得所对应的运算式,将运算式和认证信息3041至304n转送给认证信息运算单元1014。其中,与实施方式1不同,不进行相反值C的获取(步骤S4)。于是,认证信息运算单元1014获得运算式和认证信息3041至304n,将认证信息3041至304n代入运算式而对认证密钥进行运算。该运算式为在图5中被表示为‘calc’的信息。最后,使认证密钥与终端应用302的识别信息相对应,并作为发行信息1024存储在存储单元102(步骤S5)。
这样,根据本发明的实施方式2,因为没有了在实施方式1的运算复杂化信息1023中数据量较大的反值C的信息,所以能够将安全设备10的存储单元102的容量控制得较小。
(实施方式3)
实施方式3的信息处理终端30和安全设备10的结构与图1所示的实施方式1的信息处理终端30和安全设备10同样。但是,运算复杂化信息1023的内容和处理该内容的运算复杂化单元1013的动作与实施方式1不同。
图6是表示一例本发明的实施方式3中的运算复杂化单元所使用的运算复杂化信息1023的结构图。利用图6叙述运算复杂化信息1023。与实施方式2的不同之处在于,不只是相乘后成为1的一对,还可以记叙成为任意的数字的一对。相乘后的结果为图6中的‘pair2’的‘answer’的信息,它表示所嵌入的方法的组如果为(0,3),则常数的积为1,如果为(4,5),则常数的积为3。
这样,根据本发明的实施方式3,虽然运算复杂化单元1013的动作的大部分与实施方式2相同,但是在以下部分不同:实施方式3的运算复杂化单元1013在选择一对时选择运算结果,从成为该值的一对中随机地选择,并将运算结果也转送给认证信息运算单元1014。由此,常数的规则性更难以得知。
(实施方式4)
在本发明的实施方式4中,说明保持终端应用,通过网络将服务提供给信息处理终端的服务器。如果信息处理终端向服务器发送终端应用的下载请求,则嵌入了方法和认证信息的终端应用被发行,所述方法用于进行由服务器复杂化了的认证信息运算。然后,如果信息处理终端启动终端应用,则终端应用通过比服务器更复杂的运算处理运算出认证密钥,进而服务器通过更简单的运算处理运算出认证密钥,从而在服务器和信息处理终端之间进行通过认证密钥的认证。
图7是表示本发明的实施方式4的服务器以及信息处理终端的结构和动作的流程的图,与实施方式1的图1相对应。因此,对与图1相同的部分附加相同的标号,并且省略有关它们的说明。服务器40通过网络50连接着多个信息处理终端30。其中,这里只图示一个信息处理终端30。服务器40包括:存储单元402,存储与图1的指示书1021不同内容的指示书4021;以及发行应用401,具有进行与图1的应用管理单元1011不同的动作的应用管理单元4011。发行应用401还具有复杂度选择单元4010。
存储单元402预先存储对每个认证信息运算的复杂度的级别(以下称为“复杂度”)准备的指示书4021。每个指示书4021的内容为指示终端应用302的发行,所述终端应用302使信息处理终端30执行所对应的复杂度的认证信息运算。
复杂度选择单元4010选择应通过终端应用302执行的认证信息运算的复杂度,并将选择结果转送给应用管理单元4011。
应用管理单元4011基于复杂度选择单元4010的复杂度选择结果,对终端应用302进行管理。
发行应用401比如为以Java(注册商标)语言记叙的应用,通过服务器40的CPU以及Java(注册商标)虚拟引擎而被解释和执行。
存储单元402是位于服务器40上的、硬盘驱动器等的存储装置,作为进一步进行访问控制等难以从外部直接参照的存储区域而构成。
接下来,参照图8说明图7所示的服务器40和信息处理终端30的动作。
图8是表示服务器40以及信息处理终端30的动作的流程的流程图,与实施方式1的图2相对应。对与图2相同的部分附加相同的标号,省略对它们的说明,并且将实施方式1的安全设备10置换为服务器40来进行说明。而且,图8中的步骤号码与图7中的带括号的数字相对应。
如果从用户等请求进行终端应用302的下载,则信息处理终端30的应用加载器301将终端应用302的发行请求发送到服务器40中的发行应用401的应用管理单元4011。此时,终端应用302的发行请求也被输入到复杂度选择单元4010(步骤S1)。
于是,首先,复杂度选择单元4010选择应使终端应用302的发行请求的发送源的信息处理终端30进行什么样的复杂度的认证信息运算,并将选择结果转送给应用管理单元4011(步骤S2a)。
一般而言,为了通过对通信数据进行分析而防止假冒,从发行终端应用302开始到相互认证结束为止的时间中设定超时(time out)。但是,通信量较多时,服务器40和信息处理终端30之间的通信速度降低,到相互认证结束为止特别花费时间,有时虽然在与真实的终端应用302之间进行相互认证,但认证处理失败。于是,比如,复杂度选择单元4010判别网络负担的级别或者与信息处理装置30之间的通信速度,在网络负担较高或者通信速度较低的情况下,对终端应用302的请求选择较低的复杂度。由此,能够防止相互认证结束为止的时间变长,从而防止不必要的认证处理的失败。
应用管理单元4011接受从复杂度选择单元4010选择出的复杂度,从存储单元402读出所要求的终端应用数据1022、以及在所对应的指示书4021中符合所选择的复杂度的指示书4021,并转送给指示内容执行单元1012(步骤S2b)。
接下来经过步骤S3和S4的处理,使信息处理终端30执行在复杂度选择单元4010所选择的复杂度的认证信息运算的终端应用302被发行给信息处理终端30。步骤S5以后的处理与实施方式1的图2同样。其中,在服务器40与信息处理终端30之间的、终端应用302以及相互认证中的质询/响应的消息的交接通过网络50进行。
这样,根据本发明的实施方式4,依据与实施方式1的情形同样的原理,使信息处理终端30的认证信息复杂运算单元3021的运算变得复杂,而可使服务器40的认证信息运算单元1014的运算较为简单。也就是说,通过这样的结构,能够减轻服务器40的处理的负担。而且,能够根据状况选择终端应用302的认证信息复杂运算单元3021所执行的运算的复杂度,所以能够灵活地应对从多个信息处理终端接受终端应用的请求的情况,以及通信环境和信息处理终端的动作环境,从而实现顺利的服务。
另外,在以上说明的实施方式4中,虽然为了使认证处理运算的复杂度可变,对每个复杂度准备指示书4021,但是并不只限于此。比如,应用管理单元4011也可以根据在复杂度选择单元4010所选择的复杂度,改变嵌入到终端应用302的运算方法的数目和种类。此时,比如在指示书4021中预先记叙基于所求的复杂度的指示即可。
而且,复杂度选择单元4010也可以判别通信对方的信息处理能力,根据信息处理能力的高低来选择复杂度,或者判别通信对方的可靠性,根据可靠性的高低来选择复杂度。具体而言,比如,在可靠性较低的种类的信息处理终端30的情况下,通过增加所嵌入的运算方法的数目,或者选择处理较复杂的运算方法的种类,使认证信息复杂运算单元3021的运算处理变得更复杂。而且,在可靠性较高的种类的信息处理终端30的情况下,通过减少所嵌入的运算方法的数目,或者选择处理不复杂的运算方法的种类,减轻认证信息复杂运算单元3021的运算处理的复杂度。
另外,复杂度选择单元4010还可以根据所使用的网络50的种类(传输速度和可靠性等)选择适当的复杂度。具体而言,比如,在可靠性较低的网络的情况下,通过增加所嵌入的运算方法的数目,或者选择处理较复杂的运算方法的种类,使认证信息复杂运算单元3021的运算处理变得更复杂。而且,在可靠性较高的网络的情况下,通过减少所嵌入的运算方法的数目,或者选择处理不复杂的运算方法的种类,减轻认证信息复杂运算单元3021的运算处理的复杂度。
另外,复杂度选择单元4010还可以根据信息处理终端30的处理能力和网络50的传输速度,改变上述认证处理的超时的时间。比如,在信息处理终端30的处理能力较低时或者网络50的传输速度较慢时等认证处理中的响应变慢的情况下,延长超时的时间。而且,在信息处理终端30的处理能力较高时或者网络50的传输速度较快时等认证处理中的响应变快的情况下,缩短超时的时间。
(实施方式5)
本发明的实施方式5中的信息处理终端30和服务器40的结构与图7的实施方式4的情况同样。但是,运算复杂化信息1023的内容和处理该内容的运算复杂化单元1013的动作分别与实施方式2中的运算复杂化信息1023的内容和处理该内容的运算复杂化单元1013的动作同样。因此,依据与实施方式2的情形同样的原理,能够使信息处理终端30的认证信息复杂运算单元3021的运算变得复杂,而可使服务器10的认证信息运算单元1014的运算较为简单。
参照图7以及图8,与图7以及图8的步骤号码相对应地说明实施方式5中的服务器40和信息处理终端30的动作。
步骤S1至S2b的处理与实施方式4同样,终端应用数据1022以及所选择的复杂度的指示书4021被转送给指示内容执行单元1012。接下来,指示内容执行单元1012利用指示书4021中所写入的变量的位置信息,将随机数嵌入到认证信息3041至304n,并转送给运算复杂化单元1013。此时,认证信息3041中也嵌入随机数,这一点与实施方式4不同(步骤S3)。
接下来,运算复杂化单元1013利用运算方法组信息,从运算复杂化信息1023获得所对应运算式,将运算式和认证信息3041至304n转送给认证信息运算单元1014。但是,与实施方式4不同,不进行反值C的获取(步骤S4)。
具体而言,运算复杂化单元1013使用在指示书4021中所写入的方法的位置信息,在终端应用数据1022预先准备了可嵌入的运算方法的地点,选择运算方法图像102300至102306并嵌入。此时,使用实施方式2的图5所示的运算复杂化信息1023。也就是说,包括记叙了使常数适当地被抵消的方法的一对的‘pair’和使用‘pair’记叙了运算式的‘calc’。使用了图5所示的运算复杂化信息1023的运算复杂化单元1013的处理为在实施方式2中说明过的处理。
步骤S5以后的处理与实施方式4的图8同样,也就是与实施方式1的图2同样。
这样,根据本发明的实施方式5,在服务器40也能够得到在实施方式2所得到的特有的效果。
(实施方式6)
本发明的实施方式6的信息处理终端30和服务器40的结构与图7所示的实施方式4的信息处理终端30和安全设备10同样。但是,运算复杂化信息1023的内容和处理该内容的运算复杂化单元1013的动作分别与实施方式3中的运算复杂化信息1023的内容和处理该内容的运算复杂化单元1013的动作同样。因此,依据与实施方式3的情形同样的原理,能够使信息处理终端30的认证信息复杂运算单元3021的运算变得复杂,而可使服务器10的认证信息运算单元1014的运算较为简单。
参照图7以及图8,与图7以及图8的步骤号码相对应地说明实施方式6中的服务器40和信息处理终端30的动作。
步骤S1至S2b的处理与实施方式4同样,终端应用数据1022以及所选择的复杂度的指示书4021被转送给指示内容执行单元1012。接下来,指示内容执行单元1012利用指示书4021中所写入的变量的位置信息,将随机数嵌入到认证信息3041至304n,并转送给运算复杂化单元1013。此时,认证信息3041中也嵌入随机数,这一点与实施方式4不同(步骤S3)。
接下来,运算复杂化单元1013利用运算方法组信息,从运算复杂化信息1023获得所对应运算式,将运算式和认证信息3041至304n转送给认证信息运算单元1014。但是,与实施方式4不同,不进行相反值C的获取(步骤S4)。
具体而言,运算复杂化单元1013使用在指示书4021中所写入的方法的位置信息,在终端应用数据1022预先准备了的可嵌入运算方法的地点,选择运算方法图像102300至102306并嵌入。此时,使用实施方式3的图6所示的运算复杂化信息1023。也就是说,包括记叙了相乘后为‘answer’的值的方法的一对的‘pair’,以及使用‘pair’记叙了运算式的‘calc’。使用了图6所示的运算复杂化信息1023的运算复杂化单元1013的处理为在实施方式3中说明过的处理。
步骤S5以后的处理与实施方式4的图8同样,也就是与实施方式1的图2同样。
这样,根据本发明的实施方式6,即使是服务器40也能够得到在实施方式3中所得到的特有的效果。
(总结)
如上述说明,在哪个实施方式中,都能够追加每次不同的代码以与单纯地对认证信息进行运算相比,进行多余的运算,所以增加攻击者必须分析的命令数。而且,因为命令数每次都不同,所以分析变得更加困难。而且,即使假设不怀好意的第三者一次分析成功了,也必须再次进行分析,因此能够充分地确保安全性。而且,在安全设备内或者服务器内只选择预先知道答案的问题即可,所以能够抑制在安全设备端或者服务器端的认证密钥运算的处理的复杂度。
而且,在服务器,根据状况选择在终端应用端的认证密钥运算的处理的复杂度,所以能够灵活地应对从多个信息处理终端接受终端应用的请求的情况,以及通信环境和信息处理终端的动作环境,从而能够实现顺利的服务。而且,因为判别通信环境和信息处理终端的动作环境,选择适当的复杂度,所以能够均衡地兼顾安全性的确保和服务的顺利。
2005年12月7日提交的特愿第2005-354157号的日本专利申请和2006年12月7日提交的特愿第2006-330820号的日本专利申请中所包含的说明书、附图以及说明书摘要的公开内容,都引用于本申请。
工业实用性
本发明的安全设备、信息处理终端以及认证方法,作为能够在将安全设备内的处理负担以及卡应用的代码量抑制得较低的状态下,使终端应用的认证信息运算的内容为每次不同的复杂的运算处理的安全设备、搭载了该安全设备的信息处理终端以及认证方法,非常有用。也就是说,本发明的安全设备以及认证方法,能够使认证信息的运算内容为每次不同的复杂的运算内容,而且使安全设备内的运算处理的复杂度基本上不会提高,并且作为可在与终端应用之间进行安全的认证的安全设备以及认证方法非常有用。因此,能够适用于移动电话、便携式信息终端(PDA)、个人计算机、音乐重放/录音装置、照相机、摄像机、自动柜员机、街头终端、结算终端等各种信息处理装置中使用的各种安全设备。此外,本发明的信息处理终端也能够适用于上述各种信息处理装置。进而,本发明的服务器作为以下的服务器非常有用,即能够在将服务器内的处理负担以及卡应用的代码量抑制得较低的状态下,使终端应用的认证信息运算的内容为每次不同的复杂的运算处理的服务器。因此,能够适用于配置在网络上的、提供音乐数据播发等的服务的各种服务器。
Claims (17)
1.一种安全设备,安装在信息处理终端中,存储数据并且在隐匿的状态下执行运算,其包括:
存储单元,存储用于使所述信息处理终端进行处理的应用程序;
指示内容执行单元,将用于计算认证密钥的认证信息嵌入到所述应用程序中,所述认证密钥是所述应用程序与所述安全设备之间的认证处理所需的认证密钥;
运算复杂化单元,制作将预先选择出的运算结果作为解答的运算问题,并将该运算问题作为认证信息运算的一部分嵌入到所述应用程序中;
认证信息运算单元,对所述认证信息和所述运算结果进行运算而生成认证密钥;以及
认证处理单元,通过所述认证密钥进行与所述信息处理终端所执行的应用程序之间的认证处理。
2.如权利要求1所述的安全设备,其中,所述存储单元还存储由所述运算复杂化单元制作所述运算问题时所使用的运算复杂化信息,在所述运算复杂化信息中,至少保持运算问题和运算结果的组。
3.如权利要求1所述的安全设备,其中,所述运算问题的数据包含可嵌入到所述应用程序的程序代码的图像中。
4.如权利要求3所述的安全设备,其中,所述程序代码的图像为用来解答所述运算问题的代码。
5.如权利要求2所述的安全设备,其中,所述运算复杂化单元选择要对应的运算问题,以使所述应用程序所进行的复杂的运算结果的一部分成为在所述运算复杂化信息中所保持的运算结果。
6.一种信息处理终端,包括:
安全设备,存储数据并且在隐匿的状态下执行运算;以及
应用加载器,请求应用程序的发行,从所述安全设备接收包含了进行过复杂化的运算的应用程序而启动,
所述安全设备包括:
存储单元,存储用于使所述信息处理终端进行处理的应用程序;
指示内容执行单元,将用于计算认证密钥的认证信息嵌入到所述应用程序中,所述认证密钥是所述应用程序与所述安全设备之间的认证处理所需的认证密钥;
运算复杂化单元,制作将预先选择出的运算结果作为解答的运算问题,并将该运算问题作为认证信息运算的一部分嵌入到所述应用程序中;
认证信息运算单元,对所述认证信息和所述运算结果进行运算而生成认证密钥;以及
认证处理单元,通过所述认证密钥进行与所述信息处理终端所执行的应用程序之间的认证处理。
7.如权利要求6所述的信息处理终端,其中,所述存储单元还存储由所述运算复杂化单元制作所述运算问题时所使用的运算复杂化信息,在所述运算复杂化信息中,至少保持运算问题和运算结果的组。
8.如权利要求6所述的信息处理终端,其中,所述运算问题的数据包含可嵌入到所述应用程序的程序代码的图像中。
9.如权利要求8所述的信息处理终端,其中,所述程序代码的图像为用来解答所述运算问题的代码。
10.如权利要求7所述的信息处理终端,其中,所述运算复杂化单元选择要对应的运算问题,以使所述应用程序进行的复杂的运算结果的一部分成为在所述运算复杂化信息中所保持的运算结果。
11.一种服务器,将用于使信息处理终端进行处理的应用程序发送到所述信息处理终端,其包括:
存储单元,存储所述应用程序;
指示内容执行单元,将用于计算认证密钥的认证信息嵌入到所述应用程序中,所述认证密钥是所述应用程序与所述服务器之间的认证处理所需的认证密钥;
运算复杂化单元,制作将预先选择出的运算结果作为解答的运算问题,并将该运算问题作为认证信息运算的一部分嵌入到所述应用程序;
认证信息运算单元,对所述认证信息和所述运算结果进行运算而生成认证密钥;以及
认证处理单元,通过所述认证密钥进行与所述信息处理终端所执行的应用程序之间的认证处理。
12.如权利要求11所述的服务器,其中,所述存储单元还存储由所述运算复杂化单元制作所述运算问题时所使用的运算复杂化信息,在所述运算复杂化信息中,至少保持运算问题和运算结果的组。
13.如权利要求11所述的服务器,其中,所述运算问题的数据包含可嵌入到所述应用程序的程序代码的图像中。
14.如权利要求13所述的服务器,其中,所述程序代码的图像为用于解答所述运算问题的代码。
15.如权利要求12所述的服务器,其中,所述运算复杂化单元选择要对应的运算问题,以使所述应用程序所进行的复杂的运算结果的一部分成为在所述运算复杂化信息中所保持的运算结果。
16.如权利要求11所述的服务器,其中,还包括复杂度选择单元,用来选择所述运算复杂化单元所制作的运算问题的复杂度。
17.一种认证方法,其特征在于,包括以下步骤:
选择用于计算认证密钥的认证信息和运算结果,所述认证密钥是与使信息处理终端进行处理的应用程序之间的认证处理所需的认证密钥;
制作将选择出的运算结果作为解答的运算问题;
将选择出的认证信息嵌入到所述应用程序中,并将所制作的运算问题作为认证信息运算的一部分嵌入到所述应用程序中;
将嵌入了所述认证信息以及所述运算问题的所述应用程序发送到所述信息处理终端;
通过对所述认证信息和所述运算结果进行运算而生成的认证密钥,进行与所述信息处理终端所执行的应用程序之间的认证处理,所述认证信息和所述运算结果是嵌入在发送到信息处理终端的所述应用程序中的认证信息和运算结果。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005354157 | 2005-12-07 | ||
JP354157/2005 | 2005-12-07 | ||
JP330820/2006 | 2006-12-07 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101326530A true CN101326530A (zh) | 2008-12-17 |
Family
ID=40189198
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2006800461514A Pending CN101326530A (zh) | 2005-12-07 | 2006-12-07 | 安全设备、信息处理终端、服务器以及认证方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101326530A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014187143A1 (en) * | 2013-05-23 | 2014-11-27 | Tencent Technology (Shenzhen) Company Limited | Verification method, apparatus, server and system |
CN104794388A (zh) * | 2014-01-21 | 2015-07-22 | 周宏建 | 应用程序存取保护方法及应用程序存取保护装置 |
CN113507512A (zh) * | 2021-06-30 | 2021-10-15 | 中标慧安信息技术股份有限公司 | 物联网平台存储端数据存储安全性检测方法及*** |
-
2006
- 2006-12-07 CN CNA2006800461514A patent/CN101326530A/zh active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014187143A1 (en) * | 2013-05-23 | 2014-11-27 | Tencent Technology (Shenzhen) Company Limited | Verification method, apparatus, server and system |
CN104794388A (zh) * | 2014-01-21 | 2015-07-22 | 周宏建 | 应用程序存取保护方法及应用程序存取保护装置 |
CN104794388B (zh) * | 2014-01-21 | 2018-01-09 | 周宏建 | 应用程序存取保护方法及应用程序存取保护装置 |
CN113507512A (zh) * | 2021-06-30 | 2021-10-15 | 中标慧安信息技术股份有限公司 | 物联网平台存储端数据存储安全性检测方法及*** |
CN113507512B (zh) * | 2021-06-30 | 2022-10-21 | 中标慧安信息技术股份有限公司 | 物联网平台存储端数据存储安全性检测方法及*** |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3474209A1 (en) | Storing blockchain private keys in a sim card | |
EP1406410A1 (en) | Method for an integrated protection system of data distributed processing in computer networks and system for carrying out said method | |
US11227037B2 (en) | Computer system, verification method of confidential information, and computer | |
CN1439207A (zh) | 用于建立可核查身份而又保密的平台和方法 | |
CN101578608B (zh) | 用于基于会话票证存取内容的方法及设备 | |
US7500605B2 (en) | Tamper resistant device and file generation method | |
WO2020181809A1 (zh) | 基于接口校验的数据处理的方法、***和计算机设备 | |
CN109150903A (zh) | 一种账号管理方法、装置、存储介质和终端设备 | |
EP1227613A2 (en) | Method and apparatus for attaching electronic signature to document having structure | |
US9053480B1 (en) | Secure validation using hardware security modules | |
US20120198530A1 (en) | Real time password generation apparatus and method | |
CN114238874A (zh) | 数字签章验证方法、装置、计算机设备和存储介质 | |
CN112818370A (zh) | 信息验证方法、装置、电子设备、***和介质 | |
KR20210109164A (ko) | 블록체인을 이용한 최초 저작권자 인증 시스템 및 그 방법 | |
CN101326530A (zh) | 安全设备、信息处理终端、服务器以及认证方法 | |
WO2007106566A2 (en) | A method and apparatus to provide authentication using an authentication card | |
CN109302442A (zh) | 一种数据存储证明方法及相关设备 | |
JP2007183931A (ja) | セキュアデバイス、情報処理端末、サーバ、および認証方法 | |
CN101617318A (zh) | 用于将内容与许可证链接的方法及设备 | |
CN110380861A (zh) | 数字认证及其加密传输方法、***和存储介质 | |
EP3748905B1 (en) | Method of verifying partial data based on collective certificate | |
CN108833096A (zh) | 一种数据加密动态密钥管理***和方法 | |
CN113703995B (zh) | 前后端数据交互方法、装置、电子设备及存储介质 | |
CN110224836B (zh) | 基于“联连”平台的信息确认方法 | |
US20240235849A1 (en) | Signature Token System |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Open date: 20081217 |