用于公认认证的硬件安全模块及其驱动方法与流程

文档序号:12288247阅读:293来源:国知局
本发明涉及一种用于公认认证的硬件安全模块及其驱动方法,更为详细地涉及这样一种用于公认认证的硬件安全模块及其驱动方法,所述用于公认认证的硬件安全模块能够在PC环境和智能手机环境下安全且便利地以共用的形式使用公认认证书。
背景技术
::公认认证书是由具有公信力的公认认证机关颁发的电子签名认证书,在韩国,不仅是网上银行,在线上证明书颁发、电子商务、网上股票交易等很多领域都是必不可少的。并且,最近急速普及的智能手机(smartphone)的金融交易正在激增,从而在智能手机上的公认认证书使用度正逐渐扩大。观察现有的PC环境下公认认证书的使用形态,其为执行如下公认认证的方式:将公认认证书存储于硬盘(harddisc)、移动式光盘(disc)、手机、存储令牌、硬件安全模块等,为了网上金融交易而需要公认认证时,通过存储于硬盘等的公认认证书生成电子签名,并使得认证服务器对其进行验证而进行公认认证。但是,硬盘或移动式光盘存储方式的情况下,黑客程序能够轻易复制以文件的形式存储于特定文件夹的公认认证书,并对PC进行监控,从而能够轻易获取公认认证书的密码,因此存在由于安全薄弱而因黑客所致的金融事故频繁发生的问题。另外,如果使用移动式光盘,则只有连接于PC时可能被黑客窃取,因此可能被认为比硬盘更安全,但是相反地,移动式光盘遗失的可能性较高,因此公认认证书的泄漏可能性较高。并且,手机、存储令牌存储方式的情况下,虽然公认认证书不是以文件形式被存储,但是在使用公认认证书时,必须在PC执行电子签名,因此仍然具有如下缺点:公认认证书的私钥被泄漏至PC存储器从而可能被黑客入侵。因此,将公认认证书存储于安全芯片内,并在安全芯片内执行电子签名的硬件安全模块(HSM;HardwareSecurityModule)存储方式最为安全,并且韩国互联网络振兴院(KISA)也正在鼓励硬件安全模块的使用。但是,现在受到韩国互联网络振兴院(KISA)认证而销售的这种形态的硬件安全模块产品是只能够在PC环境下进行操作的方式,因此存在无法在智能手机上进行使用的问题。与此相关地,从在现有的智能手机环境下使用公认认证书的形态来看,其为如下方式:将PC所颁发的公认认证书复制到智能手机,以文件的形式存储于特定文件夹,并使得多个应用(Application,或应用程序)以共用的形式使用,或者将PC所颁发的公认认证书复制并存储到智能手机每个应用自身的数据存储空间后进行使用。但是,即使在所述情况下,也存在如下问题:与在PC环境下硬盘存储方式一样,存储于智能手机的公认认证书可能被黑客入侵,并与移动式光盘存储方式一样,由于智能手机的遗失可能使得公认认证书泄漏。因此,需要一种方案,该方案无法被黑客入侵,并即使遗失也能够在智能手机上使用安全的硬件安全模块,尤其急切需要一种方案,该方案能够在PC环境和智能手机环境下以共用的形式安全且方便地使用硬件安全模块。并且,最近韩国互联网络振兴院(KISA)正在推进公认认证书密码系统高度化事业。此项事业的核心目的在于,将电子签名算法的私钥(密钥)长度由1024比特(bit)上调至2048比特,从而增加电子签名算法的安全性。目前,公认认证书的电子签名算法正使用RSA(RivestShamirAdleman)算法,如果将1024比特的RSA算法提高为2048比特,则理论上需要约四倍以上的运算时间。具体而言,目前智能卡芯片生成一对1024比特的私钥和公钥的时间为平均2~3秒,并且根据情况也可能需要6秒以上,密码系统提升的情况下,生成一对2048比特的私钥和公钥的时间为平均20~30秒,并且根据情况也可能需要60秒以上。由此,使用硬件安全模块来颁发2048比特的公认认证书时,颁发过程可能需要1分钟以上,从而可能使得用户感到非常不便。对此,韩国互联网络振兴院(KISA)虽然希望将硬件安全模块生成一对2048比特的私钥和公钥的时间缩短在数秒之内,但是并未公开有能够以目前技术来解决的方法。因此,急需一种方案,该方案在智能手机环境下利用近距离无线通信(NFC;NearFieldCommunication)技术使得硬件安全模块有效地生成一对私钥和公钥并能够进行使用。本发明的详细说明技术课题本发明为满足如上所述的要求而提出,本发明的目的在于提供一种能够在PC环境和智能手机环境下安全且便利地使用公认认证书的用于公认认证的硬件安全模块及其驱动方法。本发明的另一个目的在于提供一种在智能手机环境下利用NFC通信来预先生成私钥和公钥对的用于公认认证的硬件安全模块及其驱动方法。本发明的又一目的在于提供这样一种用于公认认证的硬件安全模块及其驱动方法,其将私钥和公钥对的生成过程分为两个以上的子过程来进行,由此即使通过电力较弱的NFC通信也能够生成私钥和公钥对。本发明的再一目的在于提供这样一种用于公认认证的硬件安全模块及其驱动方法,其在智能手机环境下利用NFC通信来生成电子签名。本发明的又另一目的在于提供这样一种用于公认认证的硬件安全模块及其驱动方法,其将电子签名生成过程分为两个以上的子过程来进行,由此即使通过电力较弱的NFC通信也能够生成电子签名。课题的解决手段为了所述目的,根据本发明的一形态的用于公认认证的硬件安全模块的特征在于包括安全芯片,所述安全芯片包括:密钥对生成模块,其生成用于公认认证书的私钥和公钥对;电子签名模块,其基于所述公认认证书生成电子签名;内部存储器,其存储所述公认认证书、私钥、公钥;NFC通信模块,其与无线终端执行NFC(NearFieldCommunication,近距离无线通信);以及控制部,其对所述密钥对生成模块、电子签名模块、内部存储器、NFC通信模块进行控制。优选地,所述安全芯片如果从所述无线终端接收生成私钥和公钥对的指令,则确认所述内部存储器是否存储有预先生成的私钥和公钥对,如果所述内部存储器存储有预先生成的私钥和公钥对,则读取所述预先生成的私钥和公钥对。并且,所述安全芯片如果从所述无线终端接收准备生成电子签名的请求,则利用通过从所述无线终端发出的电磁波得到充电的电力,选择从所述无线终端接收的相当于密钥信息的公认认证书的私钥,从而在通过所选择的私钥使得电子签名运算初始化后,向所述无线终端传送状态信息,如果从所述无线终端接收执行生成电子签名的请求,则利用通过从所述无线终端发出的电磁波而得到的再充电的电力,针对从所述无线终端接收的签名的数据执行电子签名运算,并向所述无线终端传送电子签名值。另外,根据本发明一形态的用于公认认证书的硬件安全模块的驱动方法的特征在于包括如下步骤:所述硬件安全模块通过NFC通信从无线终端接收生成私钥和公钥对的指令;所述硬件安全模块确认所述内部存储器是否存储有预先生成的私钥和公钥对;以及如果所述内部存储器存储有预先生成的私钥和公钥对,则所述硬件安全模块通过NFC通信向所述无线终端回应生成所述私钥和公钥对。优选地,所述硬件安全模块的驱动方法还包括如下步骤:如果所述内部存储器不存在预先生成的私钥和公钥对,则所述硬件安全模块通过所述无线终端所发出的电磁波实时生成所述私钥和公钥对,并通过NFC通信向所述无线终端回应。发明的效果根据本发明,具有如下效果:能够在任何PC环境和智能手机环境下稳定且方便地执行公认认证。并且根据本发明,具有如下效果:利用NFC通信在智能手机环境下也能够进行利用硬件安全模块的公认认证;尤其,因为利用NFC通信,所以无需电池,从而轻便且便于携带而且造价低。此外,根据本发明,硬件安全模块利用待机时间预先生成私钥和公钥对并进行存储,因此具有如下效果:能够使得根据私钥和公钥对的生成请求的应答时间最小化。此外,根据本发明,硬件安全模块将生成私钥和公钥对的过程分为两个以上的子过程来进行,因此具有如下效果:即使通过电力较弱的NFC通信也能够生成私钥和公钥对。此外,根据本发明,硬件安全模块将生成电子签名的过程分为两个以上的子过程来进行,因此具有如下效果:即使通过电力较弱的NFC通信也能够生成电子签名。附图说明图1是根据本发明的在PC环境和智能手机环境下以共用的形式使用的公认认证系统的概要图。图2是根据本发明一实施例的硬件安全模块的详细构成图。图3是示出根据现有技术的智能卡芯片生成私钥和公钥对并进行使用的过程的流程图。图4是示出根据本发明一实施例的硬件安全模块生成私钥和公钥对并进行使用的过程的流程图。图5是示出图4的步骤S420的详细过程的流程图。图6是示出智能卡芯片使用的一般过程的流程图。图7是示出根据本发明一实施例的安全芯片在待机模式下生成私钥和公钥对的过程的流程图。图8是示出根据本发明一实施例安全芯片处理指令的同时生成私钥和公钥对的过程的流程图。图9是示出当普通的智能卡芯片通过NFC通信连接至无线终端来使用的情况下根据智能卡芯片的运算时间的电力变化的图表。图10是示出当根据本发明一实施例的安全芯片通过NFC通信连接至无线终端来使用的情况下,在执行生成私钥和公钥对的子过程期间,根据安全芯片的运算时间的电力变化的图表。图11是对根据本发明一实施例的硬件安全模块在PC环境下执行公认认证的方式进行说明的概要图。图12是根据本发明一实施例的硬件安全模块在PC环境下执行公认认证的方法的流程图。图13是对根据本发明一实施例的硬件安全模块在智能手机环境下执行公认认证的方式进行说明的概要图。图14是根据本发明一实施例的硬件安全模块在智能手机环境下执行公认认证的方法的流程图。图15是根据本发明一实施例的安全芯片生成电子签名的一实施例的流程图。图16是根据本发明一实施例的安全芯片生成电子签名的另一实施例的流程图。图17是示出在图16的实施例的情况下安全芯片的电力变化图。具体实施方式以下,参照附图及优选实施例对本发明进行详细说明。作为参考,在以下说明中对有可能混淆本发明的主旨的公知功能及构成的详细说明进行省略。首先,作为在PC环境和智能手机环境下以共用的形式使用硬件安全模块的方案,可以考虑如下方案:使得硬件安全模块通过USB与PC连接并使用,通过Wi-Fi、蓝牙(Bluetooth)、近距离无线通信(NFC;NearFieldCommunication)等与智能手机(无线终端)连接并使用。但是,问题在于,为了使得硬件安全模块通过Wi-Fi或蓝牙与智能手机连接,必需通过电池实现供电,并且如果将电池内置于硬件安全模块,则对于制造商而言制造成本上升,而对于用户而言需要进行充电管理。此外,Wi-Fi或蓝牙由于连接距离较长,从而可能存在安全隐患。因此,本发明提出一种利用NFC(NearFieldCommunication)通信使硬件安全模块与智能手机(无线终端)连接并使用的方案。图1是根据本发明的在PC环境和智能手机环境下以共用的形式使用的公认认证系统的概要图。参照图1,根据本发明的公认认证系统大致包括硬件安全模块100、计算机200、无线终端300、认证服务器400等。对此进行简单说明,硬件安全模块100能够接入计算机及无线终端两者,并且是内部具备公认认证书,能够生成电子签名的HSM(HardwareSecurityModule)。例如,硬件安全模块100与计算机200进行USB(UniversalSerialBus)通信,与无线终端300进行NFC(NearFieldCommunication)通信,从而能够与计算机及无线终端全部进行通信,并且将基于内部的公认认证书所生成的电子签名向计算机200和/或无线终端300进行传送,或者将内部的公认认证书直接向计算机200和/或无线终端300进行传送,从而进行公认认证。计算机200例如,将从硬件安全模块100所传送的电子签名通过USB通信传送至认证服务器400,从而执行公认认证,并在其基础上提供金融、颁布、游戏、教育等服务。作为参考,在本发明中,计算机200是指包括类似于个人计算机(PC;PersonalComputer)、笔记本电脑等具备USB端口从而能够进行USB通信并通过无线网络能够与认证服务器400进行通信的全部种类的计算机。并且,无线终端300例如,将从硬件安全模块100所传送的电子签名通过NFC通信传送至认证服务器400,或者基于从硬件安全模块100所传送的公认认证书来生成电子签名,并将其向服务器400进行传送从而执行公认认证,同样地,在其基础上提供金融、颁布、游戏、教育等服务。作为参考,在本发明中,无线终端300是指包括类似于智能手机、平板电脑(tabletPC)等可进行NFC通信并通过无线网络能够与认证服务器400进行通信的全部种类的无线终端。最后,认证服务器400是对从计算机200和/或无线终端300所传送的电子签名进行验证从而执行本人认证后告知其结果的装置。图2是根据本发明一实施例的硬件安全模块100的详细构成图。参照图2,根据本发明一实施例的硬件安全模块100包括USB连接部110、内部通信控制部120、安全芯片130、天线(antenna)140等,安全芯片130又包括接触式通信模块131、NFC通信模块132、密钥对生成模块133、电子签名模块134、内部存储器(memory)135、控制部136等。USB连接部110是用于连接计算计200的USB端口220和硬件安全模块100(具体而言,内部通信控制部120)的装置。优选地,USB端口的形状为最为常用的TypeA,但也可形成为TypeB、Mini-A、Mini-B、Micro-A、Micro-B等。内部通信控制部120是控制与计算机200进行USB通信,控制与安全芯片130进行接触式通信的装置,根据USB的协议接收来自计算机200的供电进行操作。作用在于,与计算机200以遵守USB协议的形式进行通信,与安全芯片130的接触式通信模块131以遵守例如ISO7816协议的形式进行通信,并且将从计算机200的应用软件210所传送的指令传送至安全芯片130,并将安全芯片130的应答传送至计算机200的应用软件210。优选地,内部通信控制部120由一个芯片构成,但是USB通信控制部与接触式通信控制部也可以由独立的芯片构成,此外,内部通信控制部120也可以由通用的微控制单元(MCU;MicroControlUnit)或安全芯片130的一部分构成。内部通信控制部120由安全芯片130的一部分构成的情况下,也能够不与安全芯片130的接触式通信模块131进行通信,而直接与安全芯片130的控制部136进行通信。安全芯片130包括接触式通信模块131、NFC通信模块132、密钥对生成模块133、电子签名模块134、内部存储器(memory)135、控制部136等。安全芯片130在硬件安全模块100连接于计算机200的情况下,根据例如ISO7816协议从计算机200及/或内部通信控制部120接收供电来进行操作,不连接于计算机200而接近无线终端300的情况下,根据例如ISO14443协议通过从无线终端300的NFC通信模块330诱导至天线140的电力来进行操作。优选地,安全芯片130以固定于硬件安全模块100的基板的形态形成,但是也有以SIM(SubscriberIdentityModule)式插入的形态。接触式通信模块131是与内部通信控制部120进行接触式通信的模块。作用在于,与内部通信控制部120以遵守例如ISO7816协议的形式进行通信,并且将从计算机200的应用软件210所传送的指令通过内部通信控制部120传送至安全芯片130,并将安全芯片130的应答再次通过内部通信控制部120传送至计算机200的应用软件210。NFC通信模块132是与无线终端300的NFC通信模块330进行通信的模块。作用在于,与无线终端300的NFC通信模块330以遵守例如ISO14443协议的形式进行通信,并且将从无线终端300的应用320所传送的指令通过无线终端300的NFC通信模块330传送至安全芯片130,并将安全芯片130的应答再次通过无线终端300的NFC通信模块330传送至无线终端300的应用320。密钥对生成模块133生成公认认证书颁发过程中所需要的私钥和公钥对。密钥对生成模块133如果通过接触式通信模块131或NFC通信模块132从计算机200或无线终端300接收私钥和公钥对的生成指令,则在控制部136的控制下生成私钥和公钥对。此外,根据本发明的优选实施例,即使从计算机200或无线终端300未接收私钥和公钥对的生成指令,密钥对生成模块133也在控制部136的控制下预先生成私钥和公钥对,并将其存储于内部存储器135。本发明的生成私钥和公钥对的相关说明将在下文进行详述。电子签名模块134如果通过接触式通信模块131或NFC通信模块132从计算机200或无线终端300接收电子签名指令,则在控制部136的控制下,使用存储于内部存储器135的公认认证书的私钥来生成电子签名。与本发明的电子签名生成相关的详细说明将在下文进行详述。内部存储器135作为在安全芯片130内部的内部存储器,可以通过例如EEPROM(ElectricallyErasableProgrammableReadOnlyMemory,电可擦只读存储器)来实现,并存储驱动安全芯片130的OS(OperatingSystem,操作系统)、私钥、公钥、公认认证书等。作为参考,虽然优选地,公认认证书是安全芯片130内部所生成的,但是也可以是将安全芯片130外部所生成的公认认证书复制至安全芯片130内部存储器135,从而进行使用。控制部136对安全芯片130的接触式通信模块131、NFC通信模块132、密钥对生成模块133、电子签名模块134、内部存储器135等进行全面控制,并且执行如下多种功能:私钥和公钥对生成及存储、公认认证书颁发及复制、电子签名生成及传送、密码设定及变更、硬件安全模块自动锁定、硬件安全模块初始化等。另外,天线140是与安全芯片130的NFC通信模块132连接,从而用于与无线终端300进行NFC通信的装置。优选地,天线140固定于硬件安全模块100的基板,但是在安全芯片130是以SIM式插入于硬件安全模块100的形态的情况下,也可插入于SIM。以下,参照图3至图17,对在PC环境下和智能手机环境下以共用的形式使用根据本发明的硬件安全模块的例子进行详细说明。首先,图3是示出根据现有技术的智能卡芯片生成私钥和公钥对并进行使用的过程的流程图。参照图3,现有技术的情况下,在步骤S310中,如果从外部装置(例,计算机、无线终端)向智能卡芯片传送生成私钥和公钥对的指令,则在步骤S320中,智能卡芯片生成私钥和公钥对。并且,在步骤S330中,智能卡芯片向外部装置回复私钥和公钥对生成结束。由此,根据现有技术的智能卡芯片如果从外部装置得到私钥和公钥对的生成请求,则从此时开始生成了私钥和公钥对,此情况下,如
背景技术
:中也言及到的,生成私钥和公钥对需要很多时间,尤其,在生成2048比特的私钥和公钥对时,平均需要20~30秒,长的时候也可能需要60秒以上,从而在使用上存在不便。另外,图4是示出根据本发明一实施例的硬件安全模块100生成私钥和公钥对并进行使用的过程的流程图。并且,图5是示出图4的步骤S420的详细过程的流程图。参照图4,本发明的情况,如果在步骤S410中从外部装置(例,计算机、无线终端)向硬件安全模块100传送生成私钥和公钥对的指令,则在步骤S420中,硬件安全模块100的安全芯片130生成私钥和公钥对,或读取预先生成的私钥和公钥对。参照图5对其进行详述,如果计算机200或无线终端300向硬件安全模块100请求生成私钥和公钥对,则在步骤S422中,安全芯片130的控制部136首先检索内部存储器135是否存储有预先生成的私钥和公钥对,如果内部存储器135不存在预先生成的私钥和公钥对,则在步骤S424中,安全芯片130的控制部136使得密钥对生成模块133实时生成私钥和公钥对。但是,如果内部存储器135存在预先生成的私钥和公钥对,则在步骤S426中,安全芯片130的控制部136不使得密钥对生成模块133生成私钥和公钥对,而读取存储于内部存储器135的私钥和公钥对。并且,在步骤S430中,硬件安全模块100通过接触式通信或NFC通信向计算机200或无线终端300回应私钥和公钥对生成结束。与此相关的,参照图6至图10,在以下对根据本发明的硬件安全模块(安全芯片)预先生成私钥和公钥对的方式进行说明。首先,图6是示出智能卡芯片使用的一般过程的流程图。参照图6,如果在步骤S610中,外部装置(例,计算机、无线终端)向智能卡芯片供应电源,则在步骤S612中,智能卡芯片进行初始化作业。在初始化作业结束后,在步骤S614中,智能卡芯片向外部装置传送ATR(AnswerToReset,复位应答)信号。之后智能卡芯片转换为待机模式,待机到外部装置输入APDU(ApplicationProtocolDataUnit,应用协议数据单元)指令为止。如果在步骤S620中,外部装置向智能卡芯片传送APDU指令,则在步骤S622中,智能卡芯片离开待机模式而对指令进行处理。并且,在步骤S624中,智能卡芯片向外部装置传送APDU应答。此后,智能卡芯片再次转换为待机模式,待机至外部装置输入下一个APDU指令为止。并且,如果在步骤S630中,外部装置再次向智能卡芯片传送APDU指令,则在步骤S632中,智能卡芯片离开待机模式而对指令进行处理。并且,在步骤S634中,智能卡芯片向外部装置传送APDU应答。此后,智能卡芯片再次转换为待机模式,待机至外部装置输入下一个APDU指令为止,并且反复所述过程的同时进行操作。另外,在根据本发明一实施例的硬件安全模块的安全芯片直到从外部装置(例,计算机、无线终端)输入指令时为止的待机期间,预先生成并存储私钥和公钥对,以下参照图7进行说明。图7是示出根据本发明一实施例的硬件安全模块在待机模式下生成私钥和公钥对的过程的流程图。参照图7,如果在步骤S710中,外部装置向硬件安全模块进行供电,则在步骤S712中,硬件安全模块执行初始化作业。初始化作业结束后,在步骤S714中,硬件安全模块的安全芯片将ATR(AnswerToReset)信号向外部装置传送。之后,在步骤S716中,硬件安全模块的安全芯片在为接收下一指令而待机期间,预先生成并存储私钥和公钥对。如果在步骤S720中,外部装置向硬件安全模块传送APDU指令,则在步骤S722中,硬件安全模块的安全芯片对指令进行处理。并且,在步骤S724中,硬件安全模块的安全芯片向外部装置传送APDU应答。此后,在步骤S726中,在硬件安全模块的安全芯片为接收下一指令而待机期间,预先生成并存储私钥和公钥对。并且,如果在步骤S730中,外部装置再次向硬件安全模块传送APDU指令,则在步骤S732中,硬件安全模块的安全芯片对指令进行处理。并且,在步骤S734中,硬件安全模块的安全芯片向外部装置传送APDU应答。此后,在步骤S736中,在硬件安全模块的安全芯片为接收下一指令而待机期间,预先生成并存储私钥和公钥对,并且反复所述过程的同时进行操作。作为参考,外部装置对于其本身向硬件安全模块传送APDU指令,如果硬件安全模块在一定时间(通常为1秒)内未作应答,则识别硬件安全模块发生错误,因此硬件安全模块的安全芯片在预先生成私钥和公钥对的过程中,也需要能够对从外部装置输入的APDU指令进行处理。由此,在图7中,如果硬件安全模块的安全芯片在预先生成私钥和公钥对期间(步骤S716、S726、S736),从外部装置输入APDU指令,则硬件安全模块的安全芯片将到目前为止的私钥和公钥对的预先生成过程临时存储于内部存储器,并优先处理所输入的指令且对结果进行应答。此后硬件安全模块的安全芯片重新继续进行临时存储于内部存储器的私钥和公钥对的预先生成过程。如果硬件安全模块的安全芯片难以将私钥和公钥对的预先生成过程临时存储于内部存储器,则硬件安全模块的安全芯片取消私钥和公钥对的预先生成过程,并优先处理所输入的指令且对结果进行应答后,重新从头开始进行私钥和公钥对的预先生成过程。另外,在图7的待机模式下,私钥和公钥对的预先生成过程具有需要持续向硬件安全模块(安全芯片)供电的制约性。换句话说,所述私钥和公钥对的预先生成过程只能在如下情况下实现:使得硬件安全模块利用接触式通信(例,USB通信)来持续得到供电,或者即使是利用非接触式通信(例,NFC通信)也能够持续接收从外部的电磁波所感应的电力的供应。硬件安全模块通过USB通信连接于计算机使用时,不仅外部电源充足,而且用于私钥和公钥对的预先生成的待机模式的时间也充足。但是,硬件安全模块通过NFC通信连接于无线终端使用时,只有在执行NFC无线通信时才能使得无线终端发出电磁波,因此电源不充足,由此事实上,通过现有的硬件安全模块在待机模式期间无法生成1024比特的私钥和公钥对。为了解决所述制约性,在本发明中提出了在通过NFC通信和无线终端连接的情况下,使得硬件安全模块的安全芯片处理指令的同时,生成私钥和公钥对的方式。与此相关地,图8是示出根据本发明一实施例的硬件安全模块处理指令的同时生成私钥和公钥对的过程的流程图。参照图8,如果在步骤S810中,通过NFC通信使得无线终端向硬件安全模块进行供电,则在步骤S812中,硬件安全模块的安全芯片进行初始化作业。初始化作业结束后,在步骤S814中,硬件安全模块的安全芯片通过NFC通信将ATR信号向无线终端传送。之后硬件安全模块的安全芯片转换为待机模式,待机到无线终端传送APDU(ApplicationProtocolDataUnit,应用协议数据单元)指令时为止。如果在步骤S820中,无线终端向硬件安全模块传送APDU指令,则在步骤S822中,硬件安全模块的安全芯片对指令进行处理。此时,硬件安全模块的安全芯片在处理指令的同时通过密钥对生成模块执行私钥和公钥对的预先生成。并且,在步骤S824中,硬件安全模块的安全芯片向无线终端传送APDU应答。此后硬件安全模块的安全芯片再次转换为待机模式,待机到无线终端传送下一个APDU指令时为止。并且,如果在步骤S830中,无线终端再次向硬件安全模块传送APDU指令,则在步骤S832中,硬件安全模块的安全芯片在处理指令的同时同样地通过密钥对生成模块执行对私钥和公钥对的预先生成。并且,在步骤S834中,硬件安全模块的安全芯片向无线终端传送APDU应答。此后,硬件安全模块的安全芯片再次转换为待机模式,待机到无线终端传送下一个APDU指令时为止,并且反复所述过程的同时进行操作。另外,就所述图8的同时执行指令处理和私钥和公钥对生成的过程而言,需要向硬件安全模块(安全芯片)持续供电,以便达到在一次指令处理期间同时执行私钥和公钥对的生成,因此也存在制约性。如图9所示,在常用智能卡芯片通过NFC通信连接于无线终端使用的情况,相比从无线终端发出的电磁波所生成的电力,智能卡芯片内部运算所消耗的电力更多,因此智能卡芯片在处理指令期间,电力逐渐下降,最终可以下降至能够驱动智能卡芯片的最小临界值以下并复位(reset)。因此,在一次指令处理期间无法完成生成私钥和公钥对的情况下,也需要安全芯片(具体而言,密钥对生成模块)能够以最大效率生成私钥和公钥对的替代方案,以下将对此进行详细说明。根据本发明的优选实施例,硬件安全模块的安全芯片将私钥和公钥对的生成过程分为两个以上的子过程后,每当指令处理时同时执行一个以上的子过程,并且反复进行所述过程而完成所有子过程,由此预先生成私钥和公钥对。换句话说,根据本发明的智能卡芯片在处理一个指令期间(例如,步骤S822)执行一个以上的子过程,在无法执行所有子过程的情况下,将目前为止的作业内容存储于内部存储器并临时中断。并且,在处理下一个指令期间(例,步骤S832),以执行剩余子过程的方式完成私钥和公钥对的生成过程。与此相关地,以下将对本发明的优选实施例的生成私钥和公钥对的子过程进行说明。公认认证书中所使用的私钥和公钥对是RSA(RivestShamirAdleman)算法的私钥D和公钥N、E。并且,以下是生成私钥D和公钥N、E的算法。【RSA私钥D和公钥N、E的生成算法】1)生成相同大小的彼此不同的大素数P和Q。2)对N=P×Q,phi=(P-1)×(Q-1)进行计算。3)对满足1<E<phi,GCD(E,phi)=1的E进行选择。(GCD:最大公约数)4)使用扩展欧几里德(ExtendedEuclidean)算法,对满足1<D<phi,E×D≡1(modphi)的D进行计算。5)私钥是D,公钥输出为N、E。在所述RSA算法中占据大部分运算时间的是第一步骤生成大素数P和Q的时间。生成大素数的方法有多种,在本发明的一实施例中,使用如下方式:在选择任意的数后,通过米勒-拉宾(MillerRabin)检验(test)来判断是素数还是合数。【生成大素数的算法】1)生成任意的大数Z。2)执行米勒-拉宾(MillerRabin)检验来判断是素数还是合数。3)如果Z是合数,则从第一步骤重新开始。4)如果Z是素数,则输出Z。【针对大数Z的米勒-拉宾(MillerRabin)检验】1)Z-1=2S×R,R计算作为单数的S和R。2)i为从1到t,执行如下内容。在此,t作为安全参数(securityparameter),当Z为1024比特的数时通常使用5。2.1)选择满足1<A<Z–1的任意的数A。2.2)计算Y=ARmodZ。2.3)如果Y不等于1,也不等于Z-1,则执行如下内容。2.3.1)j=1。2.3.2)如果j小于S,Y不等于Z-1,则反复执行如下内容。2.3.2.1)计算Y=Y2modZ。2.3.2.2)如果Y等于1,则输出为合数并完成算法。2.3.2.3)j=j+1。2.3.3)如果Y不等于Z-1,则输出为合数并完成算法。3)输出为素数并完成算法。在所述米勒-拉宾检验中,占据大部分运算时间的是2.2步骤的计算Y=ARmodZ的部分以及2.3.2.1步骤的计算Y=Y2modZ的部分那样的模幂运算(ModularExponentiation)。最终,就在公认认证书中所使用的私钥和公钥对的生成而言,占据大部分运算时间的是模幂运算。因此,在本发明的优选实施例中,以模幂运算为基准,将生成私钥和公钥对的子过程分开,从而使得运算时间平均分布。例如,分配为如下:私钥和公钥对的生成算法的第一子过程直到第一次模幂运算为止、第二子过程直到第二次模幂运算为止、第N-1子过程直到最后一次模幂运算为止、第N子过程为私钥和公钥对的生成算法的剩余运算,由此近似分配子过程的运算时间。并且,在本发明的优选的另一个实施例中,也可以分配并实现为如下:私钥和公钥对的生成算法的第一子过程直到生成第一素数P的运算为止、第二子过程直到生成第二素数Q的运算为止、第三子过程为私钥和公钥对的生成运算的剩余运算。另外,图10是示出根据本发明一实施例的硬件安全模块(安全芯片)通过NFC通信连接于无线终端使用的情况下,执行生成私钥和公钥对的子过程期间,根据安全芯片的运算时间的电力变化的图表。参照图10,根据本发明一实施例的安全芯片在执行用于私钥和公钥对的生成运算的第一子过程后,对下一操作所需的电力进行充电。并且,在执行用于私钥和公钥对的生成运算的第二子过程后,同样地,对下一操作所需的电力进行充电,并重复所述方式,从而完成私钥和公钥对的生成。以下,参照图11至图17对根据本发明的硬件安全模块(安全芯片)执行公认认证的方式进行说明。图11是对根据本发明一实施例的硬件安全模块在PC环境下执行公认认证的方式进行说明的概要图。并且,图12是根据本发明一实施例的硬件安全模块在PC环境下执行公认认证的方法的流程图。如上所述,计算机200包括类似于PC(PersonalComputer,个人计算机)、笔记本电脑等具备USB端口220,从而能够进行USB通信,并通过有/无线网络能够与认证服务器400进行通信的全部种类的计算机。计算机200中设置有应用软件210,从而向用户提供各种服务,并在需要公认认证的情况下,将从硬件安全模块100传送的电子签名向认证服务器400传送,并提供金融、颁布、游戏、教育等服务。参照图11及图12对此进行详细说明,在计算机的应用程序运行过程中需要公认认证的情况下,计算机200的应用软件210在USB端口220查找硬件安全模块100(参照步骤S1200)。如果计算机200的应用软件210查找硬件安全模块100成功,则使得计算机200的应用软件210和安全芯片130连接有线信道(channel)。此时,计算机200的应用软件210通过USB通信连接内部通信控制部120和信道,而内部通信控制部120通过例如ISO7816通信连接安全芯片130与信道(参照步骤S1201)。如果通过连接计算机200的应用软件210的有线信道向安全芯片130传送用于电子签名的密钥信息并请求电子签名(参照步骤S1202),则安全芯片130读取相当于密钥信息的内部存储器135所存储的公认认证书的私钥,从而电子签名模块134通过私钥生成电子签名(参照步骤S1203)。如果通过连接安全芯片130的有线信道向计算机200的应用软件210传送电子签名(参照步骤S1204),则计算机200的应用软件210将所传送的电子签名通过有线/无线网络向认证服务器400传送(参照步骤S1205)。这样,认证服务器400对所传送的电子签名进行验证(参照步骤S1206),并再次通过有线/无线网络向计算机200的应用软件210传送验证结果(参照步骤S1207)。如果验证成功了(参照步骤S1208),则计算机200的应用软件210提供金融、颁布、游戏、教育等服务(参照步骤S1209),并结束公认认证过程。另外,如果在步骤S1200中,计算机200的应用软件210查找硬件安全模块100失败,则检查计算机200的应用软件210的持续查找条件(参照步骤S1250)。在此,持续查找条件可使用设定的时间、次数、无限反复等。并且,如果满足应用软件210的持续查找条件,则重新回到步骤S1200,并进行其之后的步骤。但是,如果在步骤S1250中,不满足应用软件210的持续查找条件,则计算机200的应用软件210输出查找失败消息(message)(参照步骤S1251),并结束认证过程。另外,如果在步骤S1208中验证失败了,则计算机200的应用软件210输出验证失败消息(参照步骤S1260),并结束认证过程。图13是对根据本发明一实施例的硬件安全模块在智能手机环境下执行公认认证的方式进行说明的概要图。并且,图14是根据本发明一实施例的硬件安全模块在智能手机环境下执行公认认证的方法的流程图。如上所述,无线终端300包括类似于智能手机、平板电脑等可进行NFC通信,且通过无线网络能够与认证服务器400进行通信的全部种类的终端。无线终端300构成为包括无线网络模块310、NFC通信模块330,并设置有智能手机应用程序320。无线网络模块310可实现为3G、4G、WiFi、蓝牙装置等,并且是在这些装置中至少使用一个从而通过无线形式接入互联网的无线通信模块。并且,优选地,NFC通信模块330使用在10cm以内的近距离(通常为3~4cm)可以进行无线通信的NFC通信。NFC通信能够以卡模拟(CardEmulation)模式、读卡器(reader)模式、P2P模式等进行操作,优选地,在本发明中使用ISO14443协议的读卡器模式。另外,智能手机应用程序320设置于无线终端300从而向用户提供各种服务,并且在需要公认认证时向认证服务器400传送从硬件安全模块100所传送的电子签名,并提供金融、颁布、游戏、教育等服务。参照图13及图14对此进行详细说明,在无线终端300应用程序运行过程中需要公认认证的情况下,无线终端300的应用程序320利用NFC通信来查找硬件安全模块100(参照步骤S1300)。如果无线终端300的应用程序320查找硬件安全模块100成功,则无线终端300的应用程序320和安全芯片130连接近距离无线信道(channel)。此时,无线终端300的NFC通信模块330通过例如ISO14443通信连接安全芯片130与信道(参照步骤S1301)。如果通过连接无线终端300的应用程序320的近距离无线信道向安全芯片130传送用于电子签名的密钥信息并请求电子签名(参照步骤S1302),则安全芯片130读取相当于密钥信息的内部存储器135所存储的公认认证书的私钥,电子签名模块134通过私钥生成电子签名(参照步骤S1303)。如果通过连接安全芯片130的近距离无线信道向无线终端300的应用程序320传送电子签名(参照步骤S1304),则无线终端300的应用程序320将所传送的电子签名通过无线网络向认证服务器400传送(参照步骤S1305)。这样,认证服务器400对所传送的电子签名进行验证(参照步骤S1306),并再次通过无线网络向无线终端300的应用程序320传送验证结果(参照步骤S1307)。如果验证成功了(参照步骤S1308),则无线终端300的应用程序320提供金融、颁布、游戏、教育等服务(参照步骤S1309),并结束公认认证过程。另外,如果在步骤S1300中,无线终端300的应用程序320查找硬件安全模块100失败,则检查无线终端300的应用程序320的持续查找条件(参照步骤S1350)。在此,持续查找条件可使用设定的时间、次数、无限反复等。并且,如果满足应用程序320的持续查找条件,则重新回到步骤S1300,并进行其之后的步骤。但是,如果在步骤S1350中,不满足应用程序320的持续查找条件,则无线终端300的应用程序320输出查找失败消息(参照步骤S351),并结束认证过程。另外,如果在步骤S1308中验证失败了,则无线终端300的应用程序320输出验证失败消息(参照步骤S1360),并结束认证过程。以下,与所述步骤S1302、S1303及S1304相关地,对根据本发明的安全芯片130生成电子签名的过程进行详细说明。首先,图15是根据本发明的安全芯片生成电子签名的一实施例的流程图。作为参考,图15的实施例以安全芯片130通过一次充电(换句话说,一次指令执行)执行电子签名的情况为例。参照图15,无线终端300通过"COMPUTEDIGITALSIGNATURE指令"向安全芯片130传送用于电子签名的密钥信息和签名的数据(参照步骤S1302a)。这样,安全芯片130选择相当于密钥信息的公认认证书的私钥(参照步骤S1303a),通过所选择的私钥执行用于电子签名运算的初始化作业(参照步骤S1303b),针对签名数据执行电子签名运算从而生成电子签名值(参照步骤S1303c)。并且,安全芯片130通过"COMPUTEDIGITALSIGNATURE应答"向无线终端300传送电子签名值和状态信息(参照步骤S1304a)。另外,如上所述,NFC通信是根据无线终端300所发出的电磁波使得硬件安全模块100直接生成电来进行通信的方式,因此无需电池且连接距离短从而安全性显著,但是问题在于难以生成使得硬件安全模块100执行电子签名程度的电力。因此,需要一种替换方案,即使在无线终端300所发出的电磁波的功率较弱的情况下,也能够使得安全芯片130利用最小的电力执行电子签名,以下,参照图16及图17对此进行说明。图16是根据本发明的安全芯片生成电子签名的另一实施例的流程图。作为参考,图16的实施例中,将一次电子签名指令分解为两个以上的电子签名指令,从而分散电力使用,以安全芯片130通过两次以上的充电(换句话说,两次以上的指令执行)来执行电子签名的情况为例。参照图16,首先无线终端300通过"INITIALIZECRYPTO指令"向安全芯片130传送用于电子签名的密钥信息(参照步骤S1302b)。作为参考,这是无线终端300向安全芯片130请求准备生成电子签名的过程。这样,安全芯片130选择相当于密钥信息的公认认证书的私钥(参照步骤S1303a),通过所选择的私钥执行用于电子签名运算的初始化作业(参照步骤S1303b)。并且,安全芯片130通过“INITALIZECRYPTO应答”向无线终端300传送状态信息(参照步骤S1304b)此后,无线终端300通过“PERFORMCRYPTO指令”向安全芯片130传送签名的数据(参照步骤S1302c)。作为参考,这是无线终端300向安全芯片130请求执行生成电子签名的过程。这样,安全芯片130针对签名数据执行电子签名运算,从而生成电子签名值(参照步骤S1303c),通过“PERFORMCRYPTO应答”向无线终端300传送电子签名值和状态信息(参照步骤S1304c)。参照图17,通过“INITIALIZECRYPTO指令”和“PERFORMCRYPTO指令”执行电子签名的过程中,在安全芯片130的电力降至最小临界值以下之前,结束执行“INITIALIZECRYPTO指令”的过程,无线终端300处理“INITIALIZECRYPTO应答”并准备“PERFORMCRYPTO指令”的期间,安全芯片130再次被充电,同样地,在安全芯片130的电力降至最小临界值以下之前,结束执行“PERFORMCRYPTO指令”的过程,从而能够正常执行电子签名过程。再次参照图2,根据本发明的优选实施例,本发明的硬件安全模块100除了所述的公认认证功能以外,还能够执行密码设定及变更功能、公认认证书复制及备份功能、硬件安全模块自动锁定功能、硬件安全模块初始化功能等。具体而言,安全芯片130的控制部136通过例如USB通信从用户接收密码的输入,并存储于内部存储器135,在请求公认认证时,要求输入密码,从而能够确认是正确的用户。此外,在用户变更密码的情况下,在确认变更前密码之后,将变更后的密码存储于内部存储器135,由此执行密码变更功能。另外,在用户所输入的密码错误超过规定次数(例,五次)以上的情况下,安全芯片130的控制部136能够自动使得硬件安全模块禁用,从而执行自动锁定功能。并且,安全芯片130的控制部136通过用户所输入的初始化指令来使得硬件安全模块进行初始化,从而也能够执行初始化功能。虽然到此为止参照优选实施例对本发明进行了详细说明,但是本发明所属
技术领域
:的技术人员在不变更本发明的技术思想或必需的特征的前提下,可以以其他具体的各种形态进行实施,因此以上所记载的实施例应理解为不是所有方面的示例,也不是限定的示例。并且,本发明的范围应理解为根据权利要求书来决定,而非所述详细说明来决定,从权利要求书的意义、范围、等同概念所推导出的全部变更或变形的形态包含于本发明的范围。当前第1页1 2 3 当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1