专利名称:运用加密功能以产生信息摘要的设备及方法
技术领域:
本发明涉及微电子领域,特别是涉及微处理器中用以产生信息摘要的设备及方法。
背景技术:
本案以2005年3月25日申请的美国申请案60/571122为优先权。
本案与下列未定美国专利申请案有关,这些美国专利申请案具有相同受让人与至少一位相同发明人。
早期的计算机系统与其它计算机系统以独立方式运行,因其上执行的应用程序的所需输入数据非位于其中,而是应用程序设计者在执行时提供的。当应用程序被执行时,其将产生输出数据,且该输出数据一般为书面输出数据形式或被写至磁带、光盘或该计算机系统的其它类型的大型存储装置的文件形式。接着,该输出数据文件可作为同一计算机系统中下一应用程序的输入文件;或当该输出数据文件存于一可移动式或可携式大容量存储装置中时,其甚可作为另一不同但兼容的计算机系统中应用程序的输入文件。在这些早期计算机系统上,已涉及对敏感信息加以保护,因此开发了许多加密应用程序等信息保护措施以保护敏感信息,使该敏感信息未经允许不能公开。其一般作法为利用加密程序对存于存储装置的输出数据设定加密及译码机制。
不久后,使用者开始发现网络计算机具有共享信息的优点,因此网络结构、操作系统及数据传输协议齐步发展,使得数据不仅得以共享,数据的共享更具突出的功能。例如,现今的计算机工作站使用者普遍可取得不同工作站或网络文件服务器上的文件,或可使用因特网而取得新闻及其它信息,或可在众多计算机之间来回发送及接收电子信息(即电子邮件),或可与贩卖商计算机系统相连而提供信用卡或银行业务信息以向该贩卖商订购产品,或可在餐厅、机场或其它公众场合使用无线网络而进行上述使用。因此,避免敏感数据未经授权而公开的必要性不言可喻,使用者也经常需要在使用计算机时对其敏感数据进行保护。当前关于计算机信息安全备受瞩目,如垃圾邮件、网络黑客、身份窃取、反向工程、网络愚弄及信用卡诈骗等种种手段均有出现。故相关责任单位已出台各项法律、条款及加强公众教育;然而,并不能有效遏阻这种计算机信息危机。因此该项过去仅为政府、金融机构、军事单位及间谍人士所关注的议题如今已成为一般利用家用计算机而读取电子邮件或进行账户交易的民众所不得不加以警戒的一大问题。现存大小公司在商业交易上也已投注了相当部份的资源在其私有信息的保护上。
使用者对数据设定密码而令该数据仅被特定人士或单位译码的技术称为加密技术。在将加密技术用于保护计算机上或计算机间的数据时,其最常将敏感信息(未加密文件(plaintext)或明码通信报文(cleartext))转换成一不可解读格式(业界称为密文(ciphertext)),此一将未加密文件转换成密文的转换方式称作“加密”、“密码编译”或“密码加用”,而将密文转换回未加密文件的反向转换方式称作“解密”、“密码破解”或“密码去除”。
在加密技术上,多种加密程序及协议已开发为使用者所用,使使用者在不需大量背景知识及研究的条件下将其信息在加密形式下加以传送,或将其信息产品在加密形式下提供给不同使用者。除提供该加密信息外,发送一端使用者一般还提供一接收端使用者以一“密码金钥”,以令接收端使用者对该加密信息进行译码,如此接收端使用者即得将加密原始信息回复成可读信息或取得对原始信息的使用权,本领域技术人员当对该程序及协议相当熟悉。
对数据进行加密或译码时,用于该类密码的算法(即RSA算法等公开密码金钥算法)利用了两个密码金钥。该二密码金钥即公开金钥与私用金钥。在某些公开金钥算法中,发送端使用一接收端公开金钥而对将传送予接收端的数据加以加密。由于使用者的公开及私用金钥间存有一数学关系,因此接收端必须以其私用金钥对传输数据加以译码,以回复该数据的原始形态。虽然该类密码算法广用于现今密码使用技术上,但该加密及译码运算速度过于缓慢,甚至对于少量数据的应用也是这样。一种称作对称式金钥算法的第二类算法提供了对等相称的数据安全层级,其执行速度比前一算法更快。该算法之所以称作对称式金钥算法乃因其以一单一密码金钥同时用于信息的加密及译码上。在公开金钥方面,目前有三种常用的单一金钥密码算法,即数据加密标准(DES)、三重DES及进阶加密标准(AES)算法。由于该算法具相当的敏感数据保护能力,美国政府机关正是采用了这种算法,但该算法中一或多者在不久的将来将成为商业及私人交易所用的标准。在所有该对称式金钥算法中,未加密文件及密文皆被切割成多个指定大小的区块,以进行加密及译码工作。例如,AES对128位大小的区块执行密码运算,并使用128位、192位及256位大小的密码金钥。其它对称式金钥算法尚有Rijndael Cipher等,也可对192及256位的数据区块加以保护功能。因此,在进行数据区块加密操作时,1024位格式的未加密文件信息将以八个128位区块的样式进行加密。
在对未加密文件区块加密时,所有对称式金钥算法皆使用相同类型的子运算,且诸多较为常用的对称式金钥算法中一起始密码金钥常拓展成多个金钥(即一“金钥排程”),该多个金钥的每一负责该子运算的对应加密运算回合皆对未加密文件区块执行加密操作。例如,金钥排程的一第一金钥用以对该未加密文件的区块执行子运算中一第一加密运算回合,且第一回合所得结果作为一第二回合的输入,其中该第二回合使用该金钥排程中一第二金钥而获致一第二结果。接着,一特定数的后续回合分别被执行,以产生一最后回合结果,即密文本身。在使用该AES算法时,每一回合中的子运算在文献中称作SubBytes或S-box、ShiftRows、MixColumns及AddRoundKey转换。密文区块的译码以类似方式完成,但在每一回合执行时,密文为译码的输入,且受执行者为反子运算操作,该回合执行完毕后得到的最后结果为未加密文件区块。
DES及三重DES算法使用不同规格的子运算,但该子运算与AES算法类似,因该子运算在将未加密文件区块转换成密文区块时采用类似方式。
在对多个后续文字区块加以密码运算时,所有的对称式金钥算法皆使用同类型模式,该模式包含电子码书(ECB)模式、密文区块链(CBC)模式、密文回授(CFB)模式及输出回授(OFB)模式。在执行该子运算期间,该模式的某些者使用一外加起始向量,某些者则使用对一第一未加密文件区块执行的一第一组加密回合所得的密文输出,即将该密文输出当作对一第二区块未加密文件执行的一第二组加密回合的一外加输入。对于各种密码算法及现今对称式金钥密码算法所使用的子运算,在本发明的说明书中将深入讨论,因其不属于本发明的范围。
欲深入了解DES及三重DES算法的详细执行标准,请参阅1999年10月25日发表的Federal Information Processing Standards Publication46-3(FIPS-46-3);对于AES算法的详细说明,可参阅2001年11月26日发表的Federal Information Processing Standards Publication 197(FIPS-197)的论文内容。这些标准由国家标准及科技协会(NIST)公布及维护,在此将其并入本案中以应各种用途所需。除上述标准外,各种教学、白皮书、工具套件及来源文章也可自NIST的计算机安全资源中心(CSRS)于因特网上网址http//csrc.nist.gov/处取得。
除信息的加密及解密外,现另有一种用以确认存于硬盘装置、磁带或其它存储装置中特定数据串、文件或诸多文件的内容的信息安全措施,该种确认方式通称为信息摘要,执行该功能的应用程序则产生信息摘要,其产生被称作单向杂凑功能、杂凑功能、压缩应用、收缩功能、指纹、密码检对和、信息完整度检对和及操作检测码。不管其名称为何,这些应用程序一般有多种长度的输入串,该输入串称作信息或预影像。这些应用程序将信息或预影像转换成一固定长度、且通常较小的输出字符串,该输出字符串称作杂凑或信息摘要。现以利用因特网传送一文件为例,若该文件包含发送者及接收者必须相当确认未被损坏的财务、合约、法律或任何其它种类数据时,则发送者将对该文件执行一杂凑处理,且将伴随该文件送出一信息摘要给接收者。若该文件在传送过程中因各种原因而改变,则接收者在接收该文件时,对该文件执行以相同杂凑处理(即执行与发送者执行的相同杂凑功能)时,该文件在被接收时产生的信息摘要将与被送出的信息摘要不同,故可得知文件内容在被送出时已改变。当然,文件有可能被破坏而导致信息及杂凑皆被改变,此时被改变的杂凑刚好与被改变的信息相符,如此的破坏被视为成功的破坏,这就是安全协议在信息摘要产生功能外另使用其它加密及安全认证等信息保护技术的原因。
在密码使用领域中,目前已有多种让使用者在不需大量知识或努力的条件下执行杂凑处理的程序及协议被开发出来,使使用者在传送或提供其信息产品时同时传送一对应信息摘要给不同使用者。这些程序及协议通常为数学算法形式,其所构成的应用程序可逐一实施而完成敏感信息的杂凑处理。
目前已有多种算法可用于数字杂凑功能的执行,包含安全杂凑算法(SHA)、N-Hash、Snerfu、Md2、MD4、MD5、Ripe-MD、Haval等,还包含其它算法。然而,本案发明人观察到同领域中已有提供使用对称金钥算法而进行单向杂凑功能的趋势,其中这些对称金钥算法包含上述的AES算法等。例如,利用AES密文区块链(CBC)模式对1024位未加密文件构成的128位区块加以加密会产生一1024位的密文输出。当上述区块用作为一杂凑算法时,除上一受处理数据区块外的区块全部被丢弃,故对上述1024位根据CBC模式以128位元区块AES加密算法加以杂凑运算可产生一128位的信息摘要。加密算法在一信息摘要通过一对称金钥加密算法而在一端产生时必须同样为接收端所使用,以使该传输信息有效。译码运算法也同样可用于传输及接收端上,以产生一信息摘要,并使该信息摘要对于一给定信息是成立的。又由于信息摘要通过对一信息加密、并丢弃最后加密(或译码)区块的方式以一对称金钥算法产生以形成一有意义的杂凑处理,用以执行杂凑功能的区块密文模式必须为对一数据区块加以一前一计算出的中间杂凑处理结果往前送的各模式中之一,其中该结果送至对下一数据区块所加的杂凑功能中。因此,一信息(即输入文字)被依据选择用以进行该杂凑功能的对称金钥算法分作多个特定大小的区块。例如,AES杂凑处理可分别执行于128位、192位或256位大小的信息区块上。在对每一信息区块加以杂凑功能后,一中间杂凑值便产生,且该中间杂凑值被依对下一信息区块加以杂凑功能执行所用的区块密文模式往前送。
多种应用程序可在得执行密码运算(加密及译码)的计算机系统上被执行,事实上某些操作系统(如Mi crosoft Windows XP及Linux等)即以密码相关原始形式及密码相关应用程序接口等提供直接的加密及解码服务。然而,本案发明人已观察得知目前的计算机密码相关技术在某些层面上仍显不足,下文将结合图1说明此不足。
图1为一说明现有计算机密码应用技术方块图100。该方块图中显示一第一计算机工作站101及一局域网105相接,一第二计算机工作站102、一网络文件存储装置106、一第一路由器107或与因特网等广域网(WAN)110相接的其它形式接口及一符合IEEE标准802.11等的无线网络路由器108与局域网105相接。一笔记本电脑104经由一无线网络109与该无线网络路由器108通过接口相接,一第二路由器111则在广域网110与一第三计算机工作站相接。
如前文中所提到,目前使用者在工作期间面临的计算机信息安全性问题比过去严重许多。例如,在现今多任务操作系统控制下,第一计算机工作站101的使用者可同时执行多项工作,且每项工作皆需加以加密处理。第一计算机工作站101的使用者需执行一加密、译码或杂凑应用程序112(不论该应用程序整合于操作系统中还是被该操作系统所唤起执行),以将其第一计算机工作站101上的文件存储至网络文件存储装置106中。在执行文件存储的同时,使用者可将一具有或不具有一信息摘要的加密信息传送给一在第二计算机工作站102的第二使用者,该第二计算机工作站102上同样需要执行该加密、译码或杂凑应用程序112,其中加密信息的提供可为实时(如一同步信息)或非实时(即电子邮件)形式。此外,使用者可在远程计算机103通过广域网110而使用或提供其金融数据(如信用卡号及金融交易等)或其它形式敏感数据。远程计算机103还可代表一家用办公或其它远程计算机103,第一计算机工作站101使用者可在其离开办公室时利用第一计算机工作站101而使用局域网105上的共享资源101,102,106,107,108,109。上述任一操作的执行皆须唤起对应的加密、译码或杂凑应用程序112。再者,无线网络109现皆例行设于咖啡店、机场、学校及其它公共场所,因此使用者不仅需对其与其它使用者间的往来信息加以加密及译码,事实上所有经过无线网络109而传送至无线网络路由器108的通信数据皆需加以加密/解码/杂凑处理。
因此,在某一工作站101-104所做的任何一项与密码相关的操作皆需唤起加密、译码或杂凑应用程序112,故计算机101-104在不久的未来可能得以同时执行数百项密码运算。
本案发明人已提及上述藉唤起一加密、译码或杂凑应用程序112的一或多执行个体而进行的密码运算的数项限制。例如,经由程序化软件执行一指定功能相较于经由专用硬件执行相同功能是过度缓慢的;每当加密、译码或杂凑应用程序112需执行时,一正于计算机101-104上执行的工作必须暂停执行,且密码运算的参数(即未加密文件、密文、信息区块、中间杂凑值、区块密文模式及密码金钥等)必须经过操作系统而传送至加密、译码或杂凑应用程序112的执行个体,该项送至加密、译码或杂凑应用程序112的执行个体的动作必须被唤起以完成密码运算。又由于密码算法必然包含对一特定数据区块所为的诸多子运算动作回合,因此加密、译码或杂凑应用程序112的执行包含许多计算机指令的执行而使整体系统处理速度受到不良影响。熟习该项技术者皆能了解Microsoft Outlook软件在送出一封经加密的小电子邮件信息所花费的时间是送出一封不加密电子邮件信息的五倍。
此外,目前的密码相关技术因操作系统的介入而有延迟,多数应用程序不提供整合式的金钥产生或加密/译码/杂凑控件(components),它们使用操作系统或外挂程序的控件来完成该等密码相关工作。再者,操作系统需分心应付各种中断及其它目前执行的应用程序的需求。
再者,本案发明人已提及现有计算机系统101-104上密码运算的完成非常类似微处理器中使用专用浮点单位前的浮点数学运算;早期的浮点运算以软件完成,故其执行速度相当缓慢,而通过软件处理的密码运算也同样缓慢。随着浮点技术的进一步发展,浮点指令于浮点共处理器中执行,该浮点共处理器执行浮点运算的速度远快于利以软件方式执行,但却也增加系统的成本。同样地,现有的加密共处理器以插卡或外部装置的形式出现;当以外部装置形式出现时,加密共处理器经由并行端口或其它接口总线(如USB)以接口与一主处理器相接。当然,上述共处理器确能使密码运算远快于只通过软件执行的速度,但密码用共处理器增加了系统设置的成本,还需要额外的电源,降低了系统的整体可靠度。另外,密码用共处理器的执行不能防止窥探,这是因为数据信道不与主微处理器处于同一芯片。
因此,本案发明人了解到现有微处理器需要专用密码相关硬件的支持,以使一需加以密码运算的应用程序可令微处理器经由一单一及极微密码相关指令执行密码运算。该种能力的提供必须要以操作系统的介入及管理的需求下降至一定程度为原则。此外,密码相关指令以在应用程序中具有优先被使用权为佳,且专用密码相关硬件以与现有微处理器的常用结构兼容为佳。此外,密码相关硬件及相关密码相关指令的出现需能与前后代操作系统及应用程序兼容。再者,一种能执行防止未经授权的窥探的密码运算的设备及方法有其被提出的必要,其必须支持多种密码相关算法,并为之程序化、支持其上执行的密码相关算法的确认及测试工作、接受使用者提供的金钥及自我产生的金钥的使用、支持多种数据区块大小及多种位大小的密码金钥、提供ECB、CBC、CFB及OFB等可程序化区块加密及译码模式、并使利用上述可程序化区块密文模式的区块密文加密功能可有效在多数据区块上执行。
发明内容
本发明所要解决的主要问题在于解决现有技术中存在的问题与缺点,提出一种在微处理器中执行密码运算的技术。
为了实现上述目的,本发明公开了一种运用加密功能以产生信息摘要的设备,用以实现密码运算,包含转换逻辑电路,用以自一来源处接收一密码指令,其中该密码指令根据该密码运算之一指定一信息摘要的产生,并用以根据该密码运算,转换该密码指令成一指定完成该信息摘要所需的次运算的微指令序列;及执行逻辑电路,在操作上耦接至该转换逻辑电路,用以接收该微指令序列,并用以执行该次运算以产生该信息摘要。
所述的密码运算之一包含一加密运算,该加密运算包含对多个信息区块加以加密以产生对应的多个中间杂凑值,其中该中间杂凑值的一最后者的值即为该信息摘要。
所述的密码运算之一包含一译码运算,该译码运算包含对多个信息区块加以译码,以产生对应多个中间杂凑值,其中该中间杂凑值的一最后者即为该信息摘要。
所述的密码运算之一的进行依据进阶加密标准算法而为。
所述的密码指令指定待用以达成该密码运算之一的一区块密文模式。
所述的区块密文模式至少包含下列模式之一计数器模式、密文区块链、密文授回模式、输出授回模式。
所述的密文指令参考该微处理器中多个缓存器。
所述的多个缓存器包含一缓存器,其中该缓存器的内容包含一指向一第一记忆地址的第一指针,该第一记忆地址指定一用以存取多个信息区块的内存中一第一位置,该密码运算之一针对该多个信息区块而进行,以产生该信息摘要。
所述的多个缓存器包含一缓存器,其中该缓存器的内容包含一指向一第一记忆地址的第一指针,该第一记忆地址指定该内存中的一第一位置,以存储对应的多个中间杂凑值,该对应的多个中间杂凑值因该密码运算之一对多个信息区块的动作而产生。
所述的多个缓存器包含一缓存器,其中该缓存器的内容指出多个信息区块中的区块数。
所述的多个缓存器包含一缓存器,其中该缓存器的内容包含一指向一第一记忆地址的第一指针,该第一记忆地址指定内存中用以存取密码金钥数据的一第一地址,以利用该密码金钥数据完成该密码运算之一。
所述的多个缓存器包含一缓存器,其中该缓存器的内容包含一指向一第一记忆地址的第一指针,该第一记忆地址指定用以存取一起始向量的内存中一第一位置,以利用该起始向量完成该密码运算之一。
所述的多个缓存器包含一缓存器,其中该缓存器的内容包含一指向一第一记忆地址的第一指针,该第一记忆地址指定用以存取一控制字组的内存中一第一位置,以利用该控制字组完成该密码运算之一,其中该控制字组指定该密码运算之一的密码参数。
本发明还公开一种运用加密功能以产生信息摘要的方法,包含下列步骤接收密码指令,其中该密码指令根据该密码运算之一指定一信息摘要的产生;及执行该密码运算产生信息摘要。
所述的接收密码指令的步骤包含下列步骤指定一加密运算为该等密码运算之一,其中该加密运算包含对多个信息区块加以加密,以产生对应的多个中间杂凑值,且该中间杂凑值的最后者为该信息摘要。
所述的接收密码指令的步骤包含下列步骤指定译码运算为该密码运算之一,其中该解码运算包含对多个信息区块的译码,用以产生对应的多个中间杂凑值,且最后的该中间杂凑值为该信息摘要。
所述的产生信息摘要的步骤包含下列步骤根据进阶加密标准算法完成该密码运算。
所述的接收密码指令的步骤包含下列步骤在该密码指令中指定一待被用以完成该密码运算之一的区块密文模式,以产生该信息摘要。
所述的区块密文模式至少包含下列模式之一计数器模式、密文区块链模式、密文授回模式、输出授回模式。
本发明的相关硬件及相关指令能与前后代操作系统及应用程序兼容,且能执行防止未经授权的窥探。
图1为说明现有密码相关应用的方块图;图2为说明执行密码运算的技术的方块图;图3为代表本发明用以执行密码运算的微处理器设备的方块图;图4为本发明的极微密码指令实施例的方块图;
图5为说明图4中极微密码指令中区块密文模式字段元值范例的表格;图6为本发明的与x86相同的微处理器内一密码使用单元的方块图;图7为使图6的微处理器内进行密码相关子运算的微指令范例中的字段元图;图8为具图7的格式的一XLOAD微指令的缓存器字段元值的表格;图9为具图7的格式的一XSTOR微指令的缓存器字段元值的表格;图10为本发明用以指定一密码使用运算的密码相关参数的控制字符格式范例中的字段元图;图11为说明本发明中一密码使用单元范例细节的方块图;图12为说明本发明的一执行进阶加密标准(AES)的密码运算的区块密码逻辑电路实施例的方块图;图13为说明本发明用以在一中断事件期间保存密码相关参数状态的方法的流程图;及图14为说明本发明在一或多中断事件存在的条件下利用一对称金钥算法产生多个信息区块的一信息摘要的方法的流程图。
其中,附图标记100 现今计算机密码应用技术方块图101 第一计算机工作站102 第二计算机工作站103 远程计算机 104 笔记本电脑105 局域网 106 网络文件存储装置107 第一路由器 108 无线网络路由器109 无线网络110 广域网112 加密、译码或杂凑应用程序111 第二路由器200 执行密码运算技术的方块图201 微处理器202 操作系统软件203 应用程序内存204 密码金钥产生应用程序205 金钥排程206 加密应用程序207 译码应用程序208 起始向量209 密码参数210 未加密文件 211 信息摘要300 执行密码运算与微处理器设备相关的方块图
301 微处理器 302 获取逻辑电路303 转换逻辑 304 微指令列305 存储 306 载入307 缓存器文件 308 控制指标309 金钥指标 310 密钥生成311 输入指标 312 输出指标313 区块计数 314 装载逻辑电路315 数据高速缓存 316 密码使用单元317 存储逻辑电路 318 写回逻辑电路319 内存总线 320 操作系统321 系统内存 322 密码指令323 密码控制字组 324 起始密码金钥排程325 起始向量 326 消息正文327 信息摘要 328 执行逻辑400 极微密码指令 401 选择性前缀字段402 重复前缀字段 403 运算码字段500 区块密文模式字段元值范例表格 404 区块密文模式字段600 微处理器 601 获取逻辑电路602 转换逻辑 603 转译器604 微码只读存储器 605 缓存器级606 地址级 607 负载级608 执行级 609 微指令列610 整数单元 611 微指令列612 浮点单元 613 微指令列614 多媒体延伸指令集单元 615 微指令列616 串流延伸集单元 617 密码使用单元618 存储级 619 写回级620 负载总线 621 拖延信号622 存储总线 624 旗标缓存器625 X位 626 中断逻辑电路
627 软件及硬件中断信号628 总线629 E位 630 特征控制缓存器631 D位 632 执行逻辑电路633 机器指定缓存器640 信息摘要逻辑电路700 微指令701 微运算码702 数据缓存器703 缓存器800 XLOAD微指令的缓存器字段元值的表格900 XSTOR微指令的缓存器字段元值的表格1000 控制字符 1001 保留字段1002 金钥大小字段 1003 加密/解码字段1004 中间结果字段 1005 金钥生成字段1006 算法字段 1007 信息摘要字段1008 回合计数字段 1100 密码使用单元1101 区块密文逻辑电路 1102 金钥随机存取内存1103 微运算码 1104 控制字组1105 输入-0缓存器 1106 输入-1缓存器1107 金钥-0缓存器 1108 金钥-1缓存器1109 输出-0缓存器 1110 输出-1缓存器1111 加载总线 1112 存储总线1113 拖延信号 1114 微指令总线1200 区块密文逻辑电路 1201 微指令1202 控制字组 1203 金钥-0缓存器1204 金钥-1缓存器 1205 输入-0缓存器1206 输入-1缓存器 1207 输出-0缓存器1208 输出-1缓存器 1210 回合引擎控制器1211 加密/解密总线 1212 回合计数总线1213 金钥总线 1214 金钥生成总线1215 至金钥总线1216 总线1217 总线 1218 下回合输入总线1221 第一金钥XOR逻辑电路 1220 回合引擎
1222 REG-0缓存器1223 S-box逻辑电路1224 移列逻辑电路 1225 REG-1缓存器1226 混合列逻辑电路 1227 REG-2缓存器S1300 中断发生时保存密码参数状态的方法S1400 对多个信息区块产生一信息摘要的方法具体实施方式
以下说明针对本发明的特定应用及需求,以使本领域的技术人员得以制造及使用本发明,技术人员可轻易对所述实施例进行各种变化,或将所述基本原理应用至其它实施例上。因此,本发明的范围不仅限于已述特定实施例,其范围当视为不违本文中所提原理及新颖特征的最大范围。
在前述对于密码运算、用于现有计算机系统以对数据加密及译码的技术、及对应数据区块所产生的信息摘要的现有部份讨论后,以下将配合图2对该技术及其限制进行讨论。接着,本发明的说明将配合图3至图14说明本发明提出的用以在现有计算机系统中执行密码运算的设备及方法,其具有更加优异的性能,并能满足上述限制操作系统的介入、极微性、前后代结构兼容性、演算及模式的可程序化性、防止黑客侵入及可测式性的目的。
请参阅图2,所示为说明在一现有计算机系统中如前述般执行密码运算技术的方块图200,该方块图包含一微处理器201,用以获取指令及处理与应用程序相关的数据,其中该指令及数据位于一称作应用程序内存203的系统内存区域中,而应用程序内存203中数据的程控及动作一般由系统内存的一保护区域中的操作系统软件202管理。如上所述,若一执行应用程序(如一电子邮件程序或一文件存储程序)需密码运算的进行,则该执行应用程序必须通过微处理器201执行相当数量的指令才能完成该密码运算。其中该指令可为执行应用程序本身中的子程序,如可为与执行应用程序相连接的外挂应用程序,或可为操作系统软件202提供的服务;不管该指令的形式如何,该指令皆存于指定或分配的内存区域中。该内存区域显示于应用程序内存203中,且包含一密码金钥产生应用程序204,其中该密码金钥产生应用程序204一般产生或接收一密码金钥,并将该金钥拓展成一金钥排程205,以为密码回合运算所用。
在一多区块加密运算进行时,一区块加密应用程序206需先被唤起,以执行未加密文件210区块、金钥排程205、指定模式等加密运算细节的密码参数209及金钥排程位置等的使用权的指令。若为规格中模式所需,加密应用程序206还会使用一起始向量208。在执行其中的指令后,加密应用程序206产生对应的密文区块(在杂凑中称作“信息摘要”211),而一区块译码应用程序207也同样被唤起以执行信息摘要运算(如前所略提),即执行取得信息、金钥排程205、进一步指定该区块解码运算的特定者的密码参数209等所需的指令,用以产生对应的信息摘要211。若为规格中模式所需,区块译码应用程序207还会使用一起始向量208。
需强调的是,在产生密码金钥及对文字区块加以加密及译码时,所需执行的指令数目相当多;上述FIPS规格中包含诸多可形成数量相当的需加估计指令的伪码范例,故本领域技术人员皆了解一项简单的区块加密运算需数百个指令方能完成,且每个指令皆须由微处理器201加以执行方能完成所要求的密码运算。再者,对于现有执行应用程序的主要目的(如文件管理、实时信息功能、电子邮件功能、远程文件取得及信用卡交易等)而言,执行指令以完成密码运算一般被视为不必要的功能,因此现有执行应用程序的使用者感到现有执行应用程序的执行效率不足。若所用的应用程序为独立或外挂加密/译码应用程序206,207,则该应用程序206,207的唤起及管理也需考虑到操作系统软件202的其它要求,如支持中断、异常及类似使问题恶化的事件等。甚至,对于每一个同时于计算机系统中进行的密码运算而言,应用程序204,206,207的独立执行个体必须在应用程序内存203中配以其空间,且需同时为微处理器201所执行的密码运算数将持续随时间增加,如前文所描述。
本案发明人已提到目前计算机系统的密码技术所存有的问题与局限,并了解到提出在一微处理器中执行包含信息摘要的产生的密码运算设备及方法的必要性,其中该信息摘要的产生使用微处理器中对称金钥算法、但不会有程序延迟的问题。
请参阅图3,图中所示为本发明用以执行密码运算与微处理器设备相关的方块图300,该方块图中显示一微处理器301通过一内存总线319耦合至一系统内存321,其包含用以自一指令缓存器接收指令的转换逻辑303,该转换逻辑303包含逻辑、电路、装置微码(即微指令或原始指令)、或逻辑、电路、装置或微码的组合,或其它用以将指令转换成相关微指令序列的等效控件。该用以在转换逻辑303中执行转换工作的控件可为其它电路、微码等用以在微处理器301中执行其它功能者所共享。就本发明的范围而言,微码一词代表多个微指令,而微指令(也称作原始指令)的层级属于为一单元执行的层级。例如,微指令直接为一精简指令集(RISC)微处理器所执行。以一如x86兼容的微处理器等复杂指令集计算机(CISC)微处理器而言,x86指令被转换成相关的微指令,且相关的微指令直接为一CISC微处理器中一单元或多单元执行。另外,转换逻辑303耦合至一微指令列304,该微指令列304具有多个微指令表目305、306,并被自微指令列304提供至包含一缓存器文件307的缓存器级逻辑电路,其中该缓存器文件307具有多个缓存器308-313,而该缓存器308-313的内容在一指定密码运算执行之前建立完成。缓存器308-312指向系统内存321中的对应位置323-327,位置323-327包含执行该指定密码运算所需的数据。缓存器级被耦合至装载逻辑电路314,装载逻辑电路314则以接口与一数据高速缓存315相接,以取得执行指定密码运算所需的数据。该数据高速缓存315经内存总线319与系统内存321相耦合,执行逻辑328耦合至装载逻辑电路314,并执行前级送来的微指令指定的运算,其包含电路、装置或微码(即微指令或原始指令),或为电路、装置或微码的组合,或其它用以执行指令所指定的运算的等效控件,其中该用以执行逻辑328中运算的控件可为其它电路及微码等用以在微处理器301中执行其它该密码使用单元316自装载逻辑电路314接收执行指定密码运算所需的数据,微指令使该密码使用单元316对多个输入文字区块(消息正文326)执行指定的密码运算,以产生对应的信息摘要327。密码使用单元316包含逻辑、电路、装置或微码(即微指令或原始指令),或为逻辑、电路、装置或微码的组合,或其它用以执行密码运算的等效控件,其中该用以在密码使用单元316中执行密码运算的控件可为其它电路及微码等用以在微处理器301中执行其它功能者所共享。在一实施例中,密码使用单元316与整数单元及浮点单元等执行逻辑328中其它执行单元(图中未示)平行操作。本发明范围所对应的“单元”实施例包含逻辑、电路、装置或微码(即微指令或原始指令)的组合,或其它用以执行既定功能或操作的等效控件,其中该用以在一特定单元中执行其它功能或操作的控件可为其它电路及微码等用以在微处理器301中执行其它功能者所共享。例如,一实施例中的一整数单元包含逻辑、电路、装置或微码(即微指令或原始指令)的组合,或其它用以执行整数指令的等效控件。一浮点单元包含逻辑、电路、装置或微码(即微指令或原始指令)的组合,或其它用以执行浮点指令的等效控件,其中该用以在该整数单元中执行整数指令的控件可为其它电路及微码等用以在该浮点单元中执行浮点指令者所共享。
在一与x86结构兼容的实施例中,密码使用单元316与一x86整数单元、一x86浮点单元、一x86 MMX单元及一x86串流延伸集SSE单元平行运作。以本发明的范围而言,如果为了在x86微处理器中执行而设计的应用程序中的大多数能够被实施例执行,实施例即为与x86结构兼容。而一应用程序得以正确执行是指其可获得所欲结果。在其它的x86兼容实施例中,密码使用单元与前述x86执行单元组成的子集合平行运转,其中密码使用单元316耦合至存储逻辑电路317,并提供对应的信息摘要327。此外存储逻辑电路317也耦合至数据高速缓存315。该数据高速缓存315将信息摘要327转送至系统内存321以存储的。存储逻辑电路317耦合至写回逻辑电路318。当指定密码杂凑运算完成时,该写回逻辑电路318在指定密码运算完成时更新缓存器文件307中的缓存器308-313。在一实施例中,微指令与一频率信号同步流过上述每一个逻辑级302,303,304,307,314,316-318,因此运算操作可同时以大致类似于一组合在线执行的操作方式执行。
在系统内存321中,需执行指定密码运算的应用程序可令微处理器301利用一单一密码指令322执行该运算,在本案中该单一密码指令322并称作一XCRYPT指令。在一CISC实施例中,密码指令322包含一指定密码运算的指令,在RSIC实施例中则包含一指定密码运算的微指令。在一实施例中,该密码指令322使用在一现存指令集结构中一闲置或不用的指令运算码。在一x86兼容的实施例中,密码指令322为一4字节指令,其包含一x86 REP前缀(即0xF3),接着为未使用的2字节x86运算码(如0x0FA7),再接着为一用以说明在一指定密码运算期间所用的区块密码模式的字节。在一实施例中,本发明的密码指令322的执行层级可为应用程序所使用的系统优先层级,并因此可被程序化成一指令构成的程序流,其中该程序流直接被一应用程序送至微处理器301,或经由操作系统320的控制而送至微处理器301。由于使微处理器301执行指定密码运算的密码指令322仅需一个,因此该运算的完成可完全为该操作系统320所知。
在实际运行中,操作系统320唤起一应用程序以在微处理器301中执行,且在该应用程序执行时指令流中一密码指令322由系统内存321送至获取逻辑电路302,这一操作也被视作应用程序执行期间指令流的一部份。但于密码指令322执行之前,程序流中指令使微处理器301对缓存器308-312内容初始化,以使缓存器308-312内容指向系统内存321中包含一密码控制字组323、一起始密码金钥排程324、一起始向量325(若为所需时)、运行所需消息正文326及信息摘要327的位置323-327。在执行密码指令322之前需初始化缓存器308-312,因密码指令实际上参考了缓存器308-312及一包含一区块计数313功能的外加缓存器而为,其中该外加区块计数313暂存计数的值为待加杂凑的消息正文326区域中的数据区块数。因此,转换逻辑303自获取逻辑电路302取得XCRYPT指令,并将其转换成一对应微指令序列,以使微处理器301执行该指定密码运算。在该对应微指令序列中一第一组多个微指令305-306使密码使用单元316加载装载逻辑电路314所送出的数据,并开始执行指定数目的密码回合,以产生一对应输出数据区块,并提供对应输出数据区块至存储逻辑电路317,以通过数据高速缓存315存储于系统内存321的信息摘要327区域中。在该对应微指令序列中一第二组多个微指令(未显示)令微处理器301中其它执行单元(未显示)执行其它完成指定密码运算所需的操作,如对包含暂时结果及计数值的非结构式缓存器(未显示)的管理输入及输出指针311-312缓存器的更新、在一消息正文326区块的加密/解码后,对起始向量指针缓存器的更新(若为所需)及未受处理的中断的处理等。在一实施例中,缓存器308-313为定义于特定执行的微处理所用的指令集结构(ISA)中的结构式缓存器。
在一实施例中,密码使用单元316被分作多级,以能对后续消息正文326区块进行管线式处理。
图3的执行密码运算与微处理器设备相关的方块图300用以说明本发明所需的控件,现有微处理器301中所用的多种逻辑电路在方块图中则被省略,以顾及说明的清楚。然而,现有微处理器301包含诸多级逻辑控件,视其特定应用而定,且其中一些级及逻辑控件在本案中已整合在一起,以使说明较为简洁。例如,装载逻辑电路314可整合以一地址产生级,接着可有一高速缓存接口级,并接着可有一高速缓存线对位级。但必须特别说明的是,对多个消息正文326区块所做的密码运算完整操作需经由一单一密码指令322完成,且该单一密码指令322的操作为操作系统320所知,其执行并经由一专用密码使用单元316完成,其中该专用密码使用单元316的运作与微处理器301中其它执行单元平行且一致进行。
现请参阅图4,图中所示为用以说明本发明的一极微密码指令400实施例的方块图。该极微密码指令400包含一选择性前缀字段401,之后为一重复前缀字段402,之后为一运算码字段403,再后为一区块密文模式字段404。在一实施例中,字段401-404的内容与x86指令集结构兼容。在其它不同实施例中,字段401-404的内容与其它指令集结构兼容。
在运作时,选择性前缀字段401用于诸多指令集结构中,以启动或关闭一主微处理器的某些特定处理能力,如进行16位或32位的运算或处理,或处理或使用特定的内存区块等。该重复前缀字段402指出极微密码指令400所指定的密码运算需对多个输入数据(即未加密的文件或密文)区块而为。重复前缀字段402令一兼容微处理器将其中多个结构式缓存器的内容作为系统内存中位置的指针,其中该系统内存位置包含完成既定密码运算所需的密码数据及参数。如上所述,该重复前缀字段402的值在一x86相容的实施例中为0xF3;且根据x86结构协议而言,密码指令的形式非常类似REP.MOVS等x86重复串指令。例如,当以本发明的x86相同微处理器实施例为之时,重复前缀实际上参考一存于结构式缓存器ECX中的区块计数变量、一存于缓存器ESI中的来源地址指针(指向该密码运算对应的输入数据)及一存于缓存器EDI中的目的位址指针(指向内存中的输出数据区域)。在一x86相容实施例中,本发明还将传统的重复串指令概念拓展成再参考一存于缓存器EDX中的控制字组指针、一存于缓存器EBX中的密码金钥指针及一存于缓存器EAX中指向一起始向量的指标(若为指定密文模式所需)。
运算码字段403指定微处理完成进一步为一内存中一控制字组所指定的密码运算,其中对该控制字组的参考经由该控制字组指针而为。本发明中,较佳的运算码值为一现存指令集结构中闲置或未使用的运算码值之一,以维持一与操作系统及应用软件兼容的微处理器的兼容性。例如,前述的一与x86兼容的运算码字段403实施例使用值0x0FA7以进行既定密码运算的执行,区块密文模式字段404指定在既定密码运算期间使用特定区块密文模式,以下将配合图5说明的。
图5为图4的极微密码指令所用的区块密文模式字段值范例表格500,其中值0xC8指定以电子码书(ECB)模式完成密码运算,值0XD0指定以密文区块链(CBC)模式完成密码运算,值0xE0指定以密文回授(CFB)模式完成密码运算,而值0xE8指定以输出回授(OFB)模式完成密码运算。另外,区块密文模式字段404的所有其它值皆受保留,该模式的描述可见于前述FIPS档的内容。
现请参阅图6,其为一说明本发明中一x86兼容微处理器600中密码使用单元617的方块图。其中,微处理器600包含获取逻辑电路601,该获取逻辑电路601自内存(未显示)获取指令以为执行,其并耦合至转换逻辑602。转换逻辑602包含逻辑、电路、装置或微码(即微指令或自然指令),或为逻辑、电路、装置或微码的组合,或为其它用以将指令转换成相关微指令序列的等效控件。该用以在转换逻辑602中执行转换的控件可为其它电路及微码等所共享,以在微处理器600中执行其它功能。转换逻辑602包含信息摘要逻辑电路640,该信息摘要逻辑电路640耦合至一转译器603及一微码只读存储器(ROM)604。中断逻辑电路626通过总线628耦合至该转换逻辑602电路。多个软件及硬件中断信号627为中断逻辑电路626处理,中断逻辑电路626可指出目前对转换逻辑602的尚未受处理的中断。转换逻辑602耦合至微处理器600的后级,包含一缓存器级605、地址级606、负载级607、执行级608、存储级618及写回级619。该每一个后级皆包含用以完成指令执行相关的特定功能的逻辑,其中该指令指以图3中微处理器内类似零组件标号配合说明的获取逻辑电路601所提供者。图6中所示x86兼容实施范例显示执行级608中的执行逻辑电路632,其包含平行执行单元610,612,614,616,617;一整数单元610自微指令列609接收执行用整数微指令;一浮点单元612自微指令列611接收执行用浮点微指令;一多媒体延伸指令集单元614自微指令列613接收执行用MMX微指令;一串流延伸集(SSE)单元616自微指令列615接收执行用SSE微指令。在所示x86实施范例中,密码使用单元617通过一负载总线620、一拖延信号621及存储总线622耦合至SSE单元616,并共享SSE单元的微指令列615。另一不同实施例中,密码使用单元617以与单元610,612及614相似的独立平行方式运作,整数单元610耦合至一x86旗标(EFLAGS)缓存器624,其中该旗标缓存器624包含一X位625,用以指出密码运算是否正执行中。在一实施例中,该X位625为一x86旗标缓存器624的位30。此外,整数单元610通过使用一机器指定缓存器633而推估一E位629的状态,其中该E位629的状态指出微处理器600中是否存在该密码使用单元617。此外,整数单元610也得使用一特征控制缓存器630中的一D位631,以启动或关闭密码使用单元617。至于图3中的微处理器实施例301,图6中微处理器600已显示本发明所需要的主要控件,该控件并说明于一x86相容实施例的叙述内容中,该微处理器中的其它控件则已整合显示或省略未示,用以使图面说明较为简洁。本领域的技术人员皆知完成该接口需有其它控件的存在,如一数据高速缓存、总线接口单元及频率产生与分配逻辑等。
在如上述方式获取一XCRYPT指令后,转换逻辑602产生令微处理器600后续级605-608,618,619执行指定密码运算的相关微指令,其中一第一组多个相关微指令直接被送至密码使用单元617,并令密码使用单元617加载负载总线620上的数据,或将一输入数据区块加载,并开始执行指定数目的密码回合,以产生一输出数据区块,或将一产生的输出数据区块提供至存储总线622上,以为存储逻辑电路存储于内存中。该微指令中的一第二组多个相关微指令被送至其它执行单元610,612,614,616,以执行完成该E位629的测试等指定密码运算所需的次运算,以致能该D位631、设定该X位625以指出一密码运算正在执行当中、更新缓存器级605中缓存器(如计数缓存器、输入文字指针缓存器、输出文字指针缓存器)、及处理中断逻辑电路626所指的中断等。这些相关微指令被加排序,以利用间插整数单元微指令于密码使用单元微指令序列中的方式使既定密码运算有最佳效能,其中间插整数单元微指令的作法以使整数运算可与密码单元运算并行为之为原则。该相关微指令中含有微指令,用以使软件及硬件中断信号627得以存在,并能自软件及硬件中断信号627中回复。由于所有指向密码参数及数据的指针皆设于x86结构缓存器中,故该指针的状态会在中断被处理时被存储,且该状态会在中断结束后被回复。因此,当一中断发生时,程控权转交给一对应中断服务子程序。在程控权转移时,X位625被清除以指出金钥数据及控制字组数据不再有效;当中断结束时,程控权再转回至XCRYPT指令手上,以判定金钥数据及控制字组数据是否有效;若是,则运算在中断发生的时重复对特定输入数据区块进行。若X位625的状态指出金钥数据及控制字组数据不再有效,则金钥数据及控制字组在中断发生时再次自内存与正被处理的特定输入数据区块被加载。总之,本发明的XCRYPT指令的执行必定包含对位的初始测试,以判定密码使用单元617中金钥数据及控制字组数据的有效性。若金钥数据及控制自组数据无效,则金钥数据及控制字组数据自内存中加载,且输入指针缓存器内容所指的输入数据区块被加载,且该输入数据区块被执行以该指定的密码运算。另一方面,该输入数据区块被加载,且该指定密码运算的执行于不先下载金钥数据及控制字组数据的条件下进行。
若新金钥数据或新控制字组存在时,则X位625需在一新CRYPT指令执行之前被清除,且后续XCRYPT指令可在使用相同金钥数据及控制制组数据的条件下执行。在此例中,在起始金钥数据及控制字组数据被加载后不需清除X位625。例如,为使内存总线速度得到最佳化,则使用者可中断如500个输入数据区块的加密/译码成为5个XCRYPT指令,其中每一XCRYPT指令处理100个输入数据区块。
信息摘要逻辑电路640用以增强信息摘要产生运作的性能,其能确保相关微指令经过排序而使信息区块序列的区块密码运算序列的指针缓存器及中间杂凑结果得在软件及硬件中断信号627受处理之前更新。信息摘要逻辑电路640还令微指令插置于相关微指令流中,以使输入数据区块的指针能在内存中一第一信息数据区块的密码运算(即编码或译码)完成时指向一下一信息区块。输出指标维持为一定值,以使每一后续中间杂凑结果复写于先前产生的杂凑结果上。此外,信息摘要逻辑电路640令微指令插置于相关微指令流中,以修正区块计数器为指出密码运算已对目前信息数据区块动作完成。例如,在输出授回(OFB)模式下使用加密运算的信息摘要利用一与一第一消息正文区块并用的起始向量产生相同大小的一第一中间杂凑区块,且该起始向量被加以一前向密文运算以产生一第一密文输出区块,其中该第一密文输出区块再利用对第一密文输出区块及第一中间杂凑区块加以互斥或的方式产生。接着,第一密文输出区块被作为一起始向量往前送,且等效对一第二信息区块加密。使用OFB模式译码的信息摘要运算与使用OFB加密方式所为的信息摘要运算极其相似,但其中间杂凑区块以对信息区块及密文输出区块加以互斥或的方式产生,其中起始向量及后续起始向量与其等效向量需加前向密文运算,以产生密文输出区块。
在一实施例中,信息摘要逻辑电路640根据既定区块密文模式进行一指定的信息摘要产生运算,并提供微指令序列以更新结构缓存器的指针,以确保一第一信息区块后的区块有正确的区块数据得被前送以产生下一中间杂凑值。
现请参阅图7,图中说明用以令图6中微处理器进行密码子运算的微指令700范例中的字段。该图中,微指令700包含一微运算码701字段、一数据缓存器702字段及一缓存器703字段。微运算码701字段指定一待受执行的子运算,并指定微处理器600的一或多级中逻辑电路以执行该子运算,其中微运算码701字段中的值指定微指令为本发明的密码使用单元执行。在一实施例中,该微运算码701字段有二值,其中第一值(XLOAD)指定数据将从一结构性缓存器内容所指定的内存地址中取得,其中该结构性缓存器为数据缓存器702字段的内容所指者,而该数据接着被加载密码使用单元中一缓存器,该缓存器则为缓存器703字段内容所指定者,且上述所取得的数据(如密码金钥数据、控制字组、信息数据及起始向量等)被送至密码使用单元。微运算码701字段的第二值(XSTOR)指定密码使用单元所产生的数据当被存储于一由一结构性缓存器内容所指的记忆地址中,其中该结构性缓存器由该数据缓存器702字段的内容所标定。在一多级密码使用单元实施例中,缓存器703字段的内容指定多个输出数据区块中之一存储于内存中,该输出数据区块为数据域位中密码使用单元所提供,用以为存储逻辑电路所动作。以下针对本发明的密码使用单元所执行的XLOAD及XSTOR微指令进行更详细的说明,其中说明的进行将配合图8及图9而为。
请参阅图8,其中一XLOAD微指令的缓存器字段值的表格800用以说明图7中的XLOAD微指令的缓存器703字段。如前所述,一微指令序列在一XCRYPT指令转换后产生,该微指令序列包含一第一组多个微指令及一第二组多个微指令,其中第一组多个微指令为密码使用单元所执行,而第二组多个微指令则为微处理器中密码使用单元外的一或多平行功能单元所执行,并使计数器更新、暂时缓存器、结构性缓存器、机器指定缓存器的状态位的测试及设定等子动作进行。第一组多个指令提供金钥数据、密码参数及信息数据至密码使用单元而令之产生金钥排程(或加载已自内存取得的金钥排程),以对信息数据加载并加密(或译码),并存储信息摘要数据。此外,一XLOAD微指令被送至密码使用单元以加载控制字组数据、加载一密码金钥或金钥排程、加载起始向量数据、加载信息数据及加载输入文字数据,并令密码使用单元开始进行一指定密码运算。此时,一XLOAD微指令的缓存器703字段值0b010令密码使用单元加载一控制字组至其内部控制字组缓存器中。当该微指令在该管线中进行时,经由使用一缓存器级中的结构性控制字组指针缓存器内容可得控制字组存储的内存地址。记忆逻辑电路将该位址转换成一内存存取的实际地址;装载逻辑电路自高速缓存取得控制字组,并将控制字组置入数据域位中,且该控制字组接着被送至密码使用单元。同样地,缓存器字段值0b100令密码使用单元加载数据字段中输入文字数据,接着开始指定的密码运算。该输入数据的存取经由一存于一结构性缓存器中的一指针为之,此与控制字组相当。值0b101令数据域位中输入数据加载内部缓存器IN-1中,该数据可为输入文字数据(在管线作业时)或起始向量;值0b110及0b111则令密码使用单元分别加载一密码金钥或使用者产生的金钥排程中一金钥的低效及高效位。在本发明中,使用者的定义为执行一特定功能或动作者,其可体现应用程序、操作系统、机器或人等。因此,一使用者产生的金钥排程实施例以一应用程序产生,另一不同实施例中则为一人所产生。
若密码运算执行所根据的是为使用者产生的金钥排程时,多数个对应该使用者产生的金钥排程中金钥数的多数个XLOAD微指令被送至密码使用单元,以令该单元加载金钥排程中的每一回合金钥。
XLOAD微指令中缓存器703字段的所有其它值皆被保留。请参阅图9,图中为XSTOR微指令的缓存器字段值的表格900显示图7所示格式的XSTOR微指令的缓存器703字段。一XSTOR微指令被送至密码使用单元以令其提供一所产生(经加密或译码)的输出文字区块至存储逻辑电路中,以存储于内存中数据缓存器702字段所指定的位置。因此,本发明的转换逻辑先发出一对一特定输入文字区块操作的XSTOR微指令,接着再发出一对其对应输出文字区块操作的XLOAD微指令。缓存器703字段的值0b100令密码使用单元提供与其内部输出-0缓存器相关的输出文字区块至存储逻辑电路中以进行存储,OUT-0的内容与送至IN-0的输入文字区块相关。同样地,缓存器字段值0b101所参考的内部输出-1缓存器的内容与送至IN-1的输入文字数据相关。因此,多个输入文字区块在金钥及控制字组数据加载后可为密码使用单元加以管线管理,通过以XLOAD.IN-1、XLOAD.IN-0(XLOAD.IN-0令密码使用单元同样开始密码运算的执行)、XSTOR.OUT-1、XSTOROUT-0、XLOAD.IN-1、XLOAD.IN-0(开始进行后续二输入文字区块的运算或操作)等的顺序发出密码微指令的方式即可实现。
现请参阅图10,该图说明本发明中用以指定密码运算的密码参数的控制字组格式范例。控制字符1000由一使用者程序化至内存中,且其指针在密码运算执行前被送至一兼容微处理器中一结构性缓存器。因此,一对应一经提供的XCRYPT指令的微指令序列中的一XLOAD微指令被送出,以令微处理器读取含该指针的结构性缓存器,以将该指针转换成一实际内存地址,借以自内存(高速缓存)取得控制字符1000,并将该控制字符1000载至密码使用单元的内部控制字组缓存器中。控制字符1000包含一代表保留的保留(RSVD)字段1001、一金钥大小(KSIZE)字段1002、一加密/解码(E/D)字段1003、一中间结果(IRSLT)字段1004、一金钥生成(KGEN)字段1005、一算法(ALG)字段1006、一信息摘要(MD)字段1007及一回合计数(RCNT)字段1008。
保留字段1001的所有值皆受保留。金钥大小字段1002的内容指定加密及译码执行时所用的密码金钥的大小。在一实施例中,金钥大小字段1002指定区块大小为128位、192位或256位。加密/译码字段1003指定密码运算究将为一加密运算或解码运算。金钥生成字段1005指出使用者产生的金钥排程是否存于内存中,或一单一密码金钥是否存于内存中。若一单一密码金钥确实存在,那么微指令及密码金钥被发送至密码使用单元,以令该单元将该金钥依算法字段1006内容所指定的金钥密码算法拓展成一金钥排程。在一实施例中,算法字段1006指定使用前述的DES算法、三重DES算法或AES算法。其余不同实施例中,采用的算法为Rijndael Cipher及Twofish Cipher算法等。信息摘要字段1007的内容决定当产生一信息摘要或当进行一般加密或译码运算。
回合计数字段1008的内容指定使用的算法在对每一输入文字区块运算时所用的密码回合数;虽然上述算法所用标准对于每一输入文字区块使用指定固定演算回合数,但程序设计者得利用回合计数字段1008来改变该标准所指定的回合数。在一实施例中,程序设计者对于每一区块得设定0至15等不同回合。最后,中间结果字段1004的内容指定一输入文字区块是否当依信息摘要字段1007指定的密码算法标准加以回合计数字段1008中指定的回合数,或是否对该依回合计数字段1008中指定的回合数执行加密/译码,其中该所执行的最后一回合代表一中间结果而非一最终结果。诸多密码算法在每一回合中执行相同的子运算,不过最后一回合则不同。因此,对中间结果字段1004加以程序化以提供中间结果而非最终结果的作法有其优点,因其得令程序设计者确认所为算法的中间步骤。例如,确认算法性能的通过渐进中间结果得利用对一文字区块加以一加密回合、接着对该相同文字区块执行以二回合、并接着执行三回合等方式而达成。此外,可程序化回合及中间结果的达成令使用者得确认密码相关性能,并能解决及验究各种不同金钥结构及回合数的使用性。
现请参阅图11,其为说明本发明的密码使用单元范例的方块图。图中,密码使用单元1100包含一微运算码1103缓存器,其经由一微指令总线1114接收密码微指令(即XLOAD及XSTOR微指令),并具有一控制字组1104缓存器、一输入-0缓存器1105、输入-1缓存器1106、一金钥-0缓存器1107及一金钥-1缓存器1108。依照微运算码1103缓存器中一XLOAD微指令的内容所指定的,数据经由一加载总线1111送至缓存器1104-1108。此外,密码使用单元1100还包含区块密文逻辑电路1101,该区块密文逻辑电路1101耦合至缓存器1103-1108的每一个,并耦合至密码金钥随机存取内存(RAM)1102。此外,区块密文逻辑电路1101还提供一拖延信号1113,并提供区块结果至一输出-0缓存器1109及一输出-1缓存器1110。输出缓存器1109-1110将其内部所存内容经由一存储总线1112送至一兼容微处理器的后级中。在一实施例中,微指令码1103缓存器的大小为32位,缓存器1104-1110的大小则为128位。密码微指令得与指定予控制字组1104缓存器的数据选择性依序提供至微指令码1103缓存器、输入缓存器1105-1 106中其一或金钥缓存器1107-1108中其一。在图8及图9所示实施例中,一控制字组经由一XLOAD微指令被载至控制字组1104缓存器中,接着密码金钥或金钥排程经由后续XLOAD微指令被加载。若被加载的密码金钥为128位,则一XLOAD微指令用以指定金钥-01缓存器1107。若被加载的密码金钥大于128位,则一XLOAD微指令指定金钥-0缓存器1107,且一XLOAD微指令指定金钥-1缓存器1108。若被加载的为一使用者产生的金钥排程,则后续XLOAD微指令指定金钥-0缓存器1107。被加载的金钥排程中金钥的每一个依顺序置放于金钥随机存取内存1102中,以供其相对金钥回合执行时所用。之后,输入文字数据(若不需使用起始向量)被载至输入-1缓存器1106。若使用起始向量,则其被经由一XLOAD微指令载至输入-1缓存器1106。一送至输入-0缓存器1105的微指令令密码使用单元将输入文字数据载至输入-0缓存器1105,并开始利用输入-1中或二输入缓存器1105-1106中(当输入数据正处管线处理时)起始向量对输入-0缓存器1105中输入文字数据执行以密码回合,其中该密码回合的执行依控制字组1104缓存器中内容所提供的参数为目的。当一接收及一指定输入-0缓存器1105的XLOAD微指令时,区块密文逻辑电路开始执行控制字组内容指定的密码运算。当一单一密码金钥需加以拓展时,区块密文逻辑电路产生金钥排程中的每一金钥,并将的存储于金钥随机存取内存1102。在一不同实施例中,区块密文逻辑电路在接收得指定输入-0缓存器1105的LOAD微指令的前产生金钥排程中每一金钥。不论区块密文逻辑电路1101是否产生一金钥排程或金钥排程是否自内存中载出,第一回合所用金钥在区块密文逻辑电路1101皆被加以快取处理,以使第一区块密码回合可在不需使用金钥随机存取内存1102的条件下进行。区块密文逻辑电路1101在一经起动后即持续对一或多输入文字区块执行指定密码运算,直至该运算完成止。接着,自金钥随机存取内存1102中获取所用密码算法所需的回合金钥。密码使用单元1100对被指定的输入文字区块加以一既定区块密码运算,后续输入文字区块经由相对的后续XLOAD及XSTOR微指令的执行而被加加密或译码。当一XSTOR微指令被执行时,若指定的输出数据(即输出-0缓存器1109或输出-1缓存器1110)尚未完全产生,则区块密文逻辑电路发出拖延信号1113。一旦输出数据已经产生并被置入一对应输出缓存器1109-1110中,则该缓存器1109-1110的内容被传送至存储总线1112。
现请参阅图12,其为说明本发明用以依进阶加密标准(AES)执行密码运算的区块密文逻辑电路实施范例的方块图。区块密文逻辑电路1200包含一回合引擎1220,该回合引擎1220经由总线1211-1214及总线1216-1218耦合至一回合引擎控制器1210,该回合引擎控制器1210使用一微指令1201缓存器、控制字组1202缓存器、金钥-0缓存器1203及金钥-1缓存器1204而存取金钥数据、微指令及所进行的密码运算的参数。输入缓存器1205-1206的内容被送至回合引擎1220,且回合引擎1220提供对应输出文字至输出缓存器1207-1208。输出缓存器1207-1208也经由总线1216-1217耦合至回合引擎控制器1210,以令回合引擎控制器1210得使用每一后续密码回合的结果,其中该结果经由下回合输入总线1218而送至一下一密码回合。金钥RAM(未显示)中的密码金钥可经由至金钥总线1215而被存取;加密/解密总线1211令回合引擎使用子运算而执行加密(如S-Box)或译码(如反向S-Box);回合计数总线1212的内容令回合引擎1220执行一第一AES回合、一中间AES回合或一最后AES回合。金钥生成总线1214被发出以令回合引擎1220根据金钥总线1213所提供的金钥产生一金钥排程,且金钥总线1213在每一回合金钥被执行时提供对应回合金钥至回合引擎1220中。
回合引擎1220包含第一金钥XOR逻辑电路1221,该第一金钥XOR逻辑电路1221耦合至一REG-0缓存器1222。REG-0缓存器1222耦合至S-box逻辑电路1223,该S-box逻辑电路1223耦合至移列(Shift Row)逻辑电路1324,该移列逻辑电路1224耦合至一REG-1缓存器1225,REG-1缓存器1225则耦合至混合列(Mix Column)逻辑电路1226,混合列逻辑电路1226则耦合至一REG-2缓存器1227。第一金钥XOR逻辑电路1221、S-box逻辑电路1223、移列逻辑电路1224及混合列逻辑电路1226被设定以对输入文字数据执行类似名称的子运算,其中该当执行的子运算已指定于上述AES FIPS标准中。此外,混合列逻辑电路1226也另被设定以在所需的中间回合期间通过金钥总线1213所提供的回合金钥对输入数据执行AES XOR功能。第一金钥XOR逻辑电路1221、S-box逻辑电路1223、移列逻辑电路1224及混合列逻辑电路1226也被设定以在译码期间经由加密/解密总线1211的状态而启动执行其对应反AES子运算。中间回合数据的依据特定区块加密模式而送回至回合引擎1220系为控制字组1202缓存器所指定。起始向量数据(若需要)经由下回合输入总线1218而送至回合引擎1220。
在图12所示实施例中,回合引擎被分作第一级及第二级,其中第一级位于REG-0缓存器1222及REG-1缓存器1225间,第二级则位于REG-1缓存器1225及REG-2缓存器1227之间。中间回合数据在该二级之间受管线管理,且该管线管理与一频率信号同步。当对一输入数据区块的一密码运算操作完成时,相关输出数据被置入一对应输出缓存器1207-1208中。当一XSTOR微指令被执行时,一指定输出缓存器1207-1208即被送至一存储总线上。
现请参阅图13,图中所示为一说明本发明的用以在中断发生时保存密码参数状态的方法S1300的流程图。该流程起始于步骤S1302,此时一指令流为一微处理器执行,其中该指令流不需包含本案中所述XCRYPT指令。接着,该流程往步骤S1304移动。
在步骤S1304时,一中断事件(如可屏蔽中断、非可屏蔽中断、页错误、工作切换等)是否正发生中断将受判断,此时该指令流中需有一改变而形成一指令流(中断处理)以处理该中断事件。若中断确实正进行中,该流程往步骤S1306前进;若否,则该流程在步骤S1304上反复受判断直至一中断事件发生,其中在反复判断期间指令执行的动作持续进行。
在步骤S1306时,由于在将程控权传送至一对应中断处理者之前已有一中断事件发生,故本发明的中断逻辑电路对一旗标缓存器中的X位加以清除,如此得确保若于中断处理者处返回时一区块密码运算正进行时、一或多中断事件的发生将被指出且控制字组数据及金钥数据必须在持续进行区块密码运算之前再被加载,其中该密码运算所针对的输入数据区块为输入指针缓存器内容所指者。接着,流程行进至步骤S1308。
在步骤S1308时,包含与本发明的区块密码运算性能相关的指针及计数器结构性缓存器被存至内存中。现有数据计算装置中结构性缓存器的存储典型上是于传送控制至中断处理者之前进行,因此本发明提出本数据结构形式以令中断事件发生整个过程中具有执行透明度。在该缓存器被存储后,流程前进至步骤S1310。
在步骤S1310时,程序流被送至中断处理处。接着,流程前进至步骤S1312。
该方法在步骤S1312处结束。图13的方法在于中断处理处返回时在步骤S1302处再度开始。
现请参阅图14,图中所示为用以说明本发明的利用一对称金钥算法而于一或多中断事件发生时对多个信息区块产生一信息摘要的方法S1400的流程图。虽然本领域技术人员皆知在利用其它区块密文模式(如CBC、CTR及CFB等之一)产生信息摘要时仍会一些可忽略的改变,但该方法的步骤依据输出授回区块密文模式表示,以使说明较简便。
流程开始于步骤S1402,此时一本发明的XCRYPT指令使一信息摘要的产生开始执行。XCRYPT指令的执行可为一第一执行,或可因中断事件造成执行中断而变为一第一执行之后的执行,其中该中断事件对执行的中断使得程控权在一中断处理已执行之后传送回至XCRYPT指令。接着,流程行进至步骤S1404。
在步骤S1404时,一本发明的输入指针缓存器内容所指的一内存数据区块被自内存中载出,且根据一指定密码运算而为之信息摘要产生也开始。该被使用的既定输入指针缓存器被决定,且特定密码运算(如加密或解码)依据该输入指针缓存器而被决定,且区块密文模式(如CBC、CTR、CFB或OFB)也通过该输入指针缓存器而被决定。例如,若OFB模式被用于加密运算以产生信息摘要,则输入指针缓存器及一起始指针缓存器皆被用以加载数据,故输入指针缓存器指向一下一将被加密的信息区块,其结果为一中间杂凑值。若一信息摘要的产生利用OFB模式译码运算而为,则输入指针缓存器指向相同的下一信息区块,且此时以译码算法而非加密方式而为。不管方式为何(即OFB加密或OFB译码),起始向量缓存器皆指向内存中一起始向量位置,且其内容对于一第一信息区块为一起始向量,对于后续信息区块则为对应一前一信息区块的输出密文区块(即中间杂凑值),其中该前一信息区块被用作为等效于一目前信息区块的一起始向量。
在步骤S1406处,一旗标缓存器中X位是否为设定状态被加判断。若X位被设定,则控制字组及以被载进本发明的密码使用单元的金钥排程的值成立;若X位被清除,则控制字组及以被载进本发明的密码使用单元的金钥排程的值不成立。如上述配合图13所提到的,X位在一中断事件发生时被清除。此外,当需要加载一新控制字组或金钥排程或该二者时,指令须被执行以在XCRYPT指令发出之前清除,如上所述。在一于X86 EFLAGS缓存器内使用位30的X86兼容实施例中,该X位的清除可通过一POPFD指令后执行一PUSHFD指令的方式进行。不过,X位的清除在其它不同实施例中必须依赖其它指令。若X位被设定,则流程行进至步骤S1412;若X位被清除,则流程行进至步骤S1408。
在步骤S1408时,由于一被清除的X位已指出一中断事件已发生或一新控制字组及(或)金钥数据将被加载,因此一控制字组被自内存中载出。在一实施例中,控制字组的加载使密码使用单元的指定密码运算操作停止,如上述配合步骤S1404所载述。在本实施范例中步骤S1404中一密码运算的开始使多个区块密码运算得到最佳化,其方式为假设一目前的控制字组及金钥数据为将被使用者。因此,目前输入数据区块被加载,且密码运算在核对步骤S1406中X位状态之前即已开始。接着,流程行进至步骤S1410。
在步骤S1410处,金钥数据(即一加密金钥或一完整金钥排程)被自内存中加载。此外,步骤S1404中配合说明的输入信息区块及起始向量(或起始向量的等效者)被再度加载,且密码运算依据最新加载的控制字组及金钥排程开始进行。接着,流程行进至步骤S1412。
在步骤S1412处,在步骤S1404或步骤S1410处被加载的输入信息区块被存储至一内部缓存器TEMP。接着,流程行进至方块1414。
在步骤S1414处,一对应该加载的信息区块的中间杂凑值被产生。接着,流程进行至步骤S1416。
在步骤S1416处,一起始向量的等效者IVEQ通过对中间杂凑值及TEMP的内容加以互斥或的方式产生。接着,流程行进至步骤S1418。
在步骤S1418处,起始向量的等效者IVEQ被写至起始向量指针缓存器IVPTR内容所指的记忆位置,以使对下一输入信息区块的指定OFB模式密码运算使用正确的起始向量等效者。接着,流程行进至步骤S1420。
步骤S1412,S1414,S1416及S1418中所述的步骤得确保一XCRYPT指令得在任何时候使用将被中断的OFB模式区块密码方式的条件下执行。
在步骤S1420处,所产生的中间杂凑值被存储至内存中。接着,流程行进至步骤S1422。
在步骤S1422处,输入区块指针缓存器的内容被修改以指向下一输入信息区块。由于此一流程S1400的作用在于产生一信息摘要,故输出指针缓存器的内容不改变,以使所产生的每一后续中间杂凑值皆覆写于先前产生的值上,并最后使信息摘要本身在指定密码运算执行之后形成于上一信息区块上。此外,区块计数缓存器内容被加修正以指出目前输入信息区块上的密码运算已完成。在图14所示实施例中,区块计数缓存器值递减,但其它实施例中可对区块计数缓存器内容加以处理及测试,以令输入信息区块同样可受管线式处理。接着,流程行进至步骤S1424。
在步骤S1424处,输入信息区块是否仍被加运算被加判断,本实施例以了解区块计数器判断是否为零的方式判断的,不过此仅为说明用,仍有其它实施例的存在。若已无区块受运算处理,则流程行进至步骤S1428。若有一区块仍受运算处理,则流程行进至步骤S1426。
在步骤S1426处,下一输入信息数据区块与起始向量的等效者一同被载入,且该起始向量的等效者为输入指针缓存器及起始向量缓存器所指。接着,流程行进至步骤S1412。
在步骤S1428处,该方法结束。
步骤S1416,S1418,S1420,S1422及S1424对应的步骤的行进顺序可不同于以上所述,其甚至可平行而为。
本发明的目的、特征及优点已详述于上,但其它实施例属本发明包含的范围。例如,本发明的与x86结构兼容的实施例已详尽描述于上,但仅因x86结构为一般所广泛了解而举例说明,故对其的讨论可用以教示本发明的其它部份。即,本发明的范围扩及PowerPC、MIPS等其它指令集结构,并适用于其它全新的指令集结构。
本发明的密码运算还可于一计算系统中微处理器本身以外的控制件中进行,如得于计算系统中一不同于微处理器所在集成电路上的一密码使用单元上进行,该实施例得依序整合于一围绕一微处理的芯片组(如北桥及南桥)中,或可构成一专用以执行密码运算的处理器,此时密码指令由一主微处理器被送至该处理器中。本发明还可用于嵌入式控制器、工业控制器、信号处理器、阵列处理机及各种得用以处理数据的类似装置中。此外,本发明还包含一仅具有上述中该用以执行密码运算所必须的控制件的实施例。以上述方式体现的装置确实得将执行密码运算的低成本及低功率代用方式单由一通信系统中一加密/解码处理器等实施的。为便于说明,本案发明人将上述该不同处理控件统称作处理器。
此外,虽然上述中本发明以128位区块作为代表说明,也可使用其它各种不同区块大小,仅需改变携载输入数据、输出数据、金钥及控制字组的缓存器的大小即可实现。
再者,虽然DES、三重DES及AES的特征已在本案中详述,但本案发明人当特别说明本发明实际上还包含一般不常用的区块密码使用算法,如MARS密文、Rijndael密文、Twofish密文及Blowfish密文、Serpent密文及RC6密文。在详阅过上述说明后,本发明的专用区块密码使用设备及微处理器中的支持方法必足为一般所了解,其中信息摘要产生运算可经由对一单一指令的执行而被唤起动作。
最后,本发明已经详述单一密码使用单元可支持多个区块密码算法,但本发明的范围还包含多密码使用单元的使用,该单元在操作上与兼容微处理器中其它执行单元平行耦合,且皆设定以执行一既指定的区块密码算法。例如,一第一单元设定以执行AES算法,一第二单元设定以执行DES算法等。
本发明已针对特定实施例详述如上,本领域的普通技术人员在不违本发明的精神及范围的条件下对本发明加以改变或更动,该改变或更动仍不脱离本发明的范围,本发明的精神及范围将定义如下述的权利要求书中。
权利要求
1.一种运用加密功能以产生信息摘要的设备,用以实现密码运算,其特征在于,包含转换逻辑电路,用以自一来源处接收一密码指令,其中该密码指令根据该密码运算之一指定一信息摘要的产生,并用以根据该密码运算,转换该密码指令成一指定完成该信息摘要所需的次运算的微指令序列;及执行逻辑电路,在操作上耦接至该转换逻辑电路,用以接收该微指令序列,并用以执行该次运算以产生该信息摘要。
2.如权利要求1所述的微处理器中的设备,其特征在于,该密码运算之一包含一加密运算,该加密运算包含对多个信息区块加以加密以产生对应的多个中间杂凑值,其中该中间杂凑值的一最后者的值即为该信息摘要。
3.如权利要求1所述的微处理器中的设备,其特征在于,该密码运算之一包含一译码运算,该译码运算包含对多个信息区块加以译码,以产生对应多个中间杂凑值,其中该中间杂凑值的一最后者即为该信息摘要。
4.如权利要求1所述的微处理器中的设备,其特征在于,该密码运算之一的进行依据进阶加密标准算法而为。
5.如权利要求1所述的微处理器中的设备,其特征在于,该密码指令指定待用以达成该密码运算之一的一区块密文模式。
6.如权利要求5所述的微处理器中的设备,其特征在于,该区块密文模式至少包含下列模式之一计数器模式、密文区块链、密文授回模式、输出授回模式。
7.如权利要求1所述的微处理器中的设备,其特征在于,密文指令参考该微处理器中多个缓存器。
8.如权利要求7所述的微处理器中的设备,其特征在于,该多个缓存器包含一缓存器,其中该缓存器的内容包含一指向一第一记忆地址的第一指针,该第一记忆地址指定一用以存取多个信息区块的内存中一第一位置,该密码运算之一针对该多个信息区块而进行,以产生该信息摘要。
9.如权利要求7所述的微处理器中的设备,其特征在于,该多个缓存器包含一缓存器,其中该缓存器的内容包含一指向一第一记忆地址的第一指针,该第一记忆地址指定该内存中的一第一位置,以存储对应的多个中间杂凑值,该对应的多个中间杂凑值因该密码运算之一对多个信息区块的动作而产生。
10.如权利要求7所述的微处理器中的设备,其特征在于,该多个缓存器包含一缓存器,其中该缓存器的内容指出多个信息区块中的区块数。
11.如权利要求7所述的微处理器中的设备,其特征在于,该多个缓存器包含一缓存器,其中该缓存器的内容包含一指向一第一记忆地址的第一指针,该第一记忆地址指定内存中用以存取密码金钥数据的一第一地址,以利用该密码金钥数据完成该密码运算之一。
12.如权利要求7所述的微处理器中的设备,其特征在于,该多个缓存器包含一缓存器,其中该缓存器的内容包含一指向一第一记忆地址的第一指针,该第一记忆地址指定用以存取一起始向量的内存中一第一位置,以利用该起始向量完成该密码运算之一。
13.如权利要求7所述的微处理器中的设备,其特征在于,该多个缓存器包含一缓存器,其中该缓存器的内容包含一指向一第一记忆地址的第一指针,该第一记忆地址指定用以存取一控制字组的内存中一第一位置,以利用该控制字组完成该密码运算之一,其中该控制字组指定该密码运算之一的密码参数。
14.一种运用加密功能以产生信息摘要的方法,其特征在于,包含下列步骤接收密码指令,其中该密码指令根据该密码运算之一指定一信息摘要的产生;及执行该密码运算产生信息摘要。
15.如权利要求14所述的方法,其特征在于,该接收密码指令的步骤包含下列步骤指定一加密运算为该等密码运算之一,其中该加密运算包含对多个信息区块加以加密,以产生对应的多个中间杂凑值,且该中间杂凑值的最后者为该信息摘要。
16.如权利要求14所述的方法,其特征在于,该接收密码指令的步骤包含下列步骤指定译码运算为该密码运算之一,其中该解码运算包含对多个信息区块的译码,用以产生对应的多个中间杂凑值,且最后的该中间杂凑值为该信息摘要。
17.如权利要求14所述的方法,其特征在于,该产生信息摘要的步骤包含下列步骤根据进阶加密标准算法完成该密码运算。
18.如权利要求14所述的方法,其特征在于,该接收密码指令的步骤包含下列步骤在该密码指令中指定一待被用以完成该密码运算之一的区块密文模式,以产生该信息摘要。
19.如权利要求14所述的方法,其特征在于,该区块密文模式至少包含下列模式之一计数器模式、密文区块链模式、密文授回模式、输出授回模式。
全文摘要
本发明涉及一种运用加密功能以产生信息摘要的设备及方法,包括转换逻辑电路,用以自一来源处接收一密码指令,其中该密码指令根据该密码运算之一指定一信息摘要的产生,并用以根据该密码运算,转换该密码指令成一指定完成该信息摘要所需的次运算的微指令序列;及执行逻辑电路,在操作上耦接至该转换逻辑电路,用以接收该微指令序列,并用以执行该次运算以产生该信息摘要。本发明的相关硬件及相关指令能与前后代操作系统及应用程序兼容,且能执行防止未经授权的窥探。
文档编号H04L9/00GK1838140SQ20061006616
公开日2006年9月27日 申请日期2006年3月24日 优先权日2005年3月25日
发明者汤姆士·克里斯宾, 葛伦·亨利, 泰利·派克 申请人:威盛电子股份有限公司