首页 / 专利库 / 资料储存系统 / 分布式账本 / 区块链 / 运用加密功能以产生信息摘要的设备及方法

运用加密功能以产生信息摘要的设备及方法

阅读:900发布:2023-11-02

专利汇可以提供运用加密功能以产生信息摘要的设备及方法专利检索,专利查询,专利分析的服务。并且本 发明 涉及一种运用加密功能以产生信息 摘要 的设备及方法,包括:转换逻辑 电路 ,用以自一来源处接收一密码指令,其中该密码指令根据该密码运算之一 指定 一信息摘要的产生,并用以根据该密码运算,转换该密码指令成一指定完成该信息摘要所需的次运算的微指令序列;及执行 逻辑电路 ,在操作上耦接至该转换逻辑电路,用以接收该微指令序列,并用以执行该次运算以产生该信息摘要。本发明的相关 硬件 及相关指令能与前后代 操作系统 及应用程序兼容,且能执行防止未经授权的窥探。,下面是运用加密功能以产生信息摘要的设备及方法专利的具体信息内容。

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所述的方法,其特征在于,该区块密文模式至少包含下 列模式之一:计数器模式、密文区块链模式、密文授回模式、输出授回模式。

说明书全文

技术领域

发明涉及微电子领域,特别是涉及微处理器中用以产生信息摘要的设备 及方法。

背景技术

本案以2005年3月25日申请的美国申请案60/571122为优先权。
本案与下列未定美国专利申请案有关,这些美国专利申请案具有相同受让 人与至少一位相同发明人。   序号   申请日期  标题   60/556093       03/25/04      APPARATUS AND METHOD FOR EMPLOYING  CYRPTOGRAPHIC FUNCTIONS TO GENERATE A  MESSAGE DIGEST   60/571122       05/14/04      APPARATUS AND METHOD FOR EMPLOYING  CYRPTOGRAPHIC FUNCTIONS TO GENERATE A  MESSAGE DIGEST   60/582422   06/24/04  SECURITY APPLICATION NOTE   10/674057       09/29/03      MICROPROCESSOR APPARATUS AND METHOD  FOR PERFORMING BLOCK CIPHER  CRYPTOGRAPHIC FUNCTIONS   10/800768       03/15/04      MICROPROCESSOR APPARATUS AND METHOD  FOR OPTIMIZING BLOCK CIPHER  CRYPTOGRAPHIC FUNCTIONS     10/727973         12/04/03      APPARATUS AND METHOD FOR PERFORMING  TRANSPARENT BLOCK CIPHER CRYPTOGRAPHIC  FUNCTIONS     10/800938         03/15/04      MICROPROCESSOR APPARATUS AND METHOD  FOR EMPLOYING CONFIGURABLE BLOCK CIPHER  CRYPTOGRAPHIC ALGORITHMS     10/800983         03/15/04      APPARATUS AND METHOD FOR PROVIDING  USER-GENERATED KEY SCHEDULE IN A  MICROPROCESSOR CRYPTOGRAPHIC ENGINE     10/826435           04/16/04        MICROPROCESSOR APPARATUS AND METHOD  FOR PROVIDING CONFIGURABLE  CRYPTOGRAPHIC BLOCK CIPHER ROUND  RESULTS     10/82643         04/16/04      MICROPROCESSOR APPARATUS AND METHOD  FOR ENABLING CONFIGURABLE DATA BLOCK  SIZE IN A CRYPTOGRAPHIC ENGINE     10/826475         04/16/04      MICROPROCESSOR APPARATUS AND METHOD  FOR PROVIDING CONFIGURABLE  CRYPTOGRAPHIC KEY SIZE     10/730167         12/05/03      MICROPROCESSOR APPARATUS AND METHOD  FOR PERFORMING BLOCK CIPHER  CRYPTOGRAPHIC FUNCTIONS     10/826814         04/16/04      APPARATUS AND METHOD FOR PERFORMING  TRANSPARENT CIPHER BLOCK CHAINING MODE  CRYPTOGRAPHIC FUNCTIONS   10/826428       04/16/04      APPARATUS AND METHOD FOR PERFORMING  TRANSPARENT CIPHER FEEDBACK MODE  CRYPTOGRAPHIC FUNCTIONS   10/826745       04/16/04      APPARATUS AND METHOD FOR PERFORMING  TRANSPARENT OUTPUT FEEDBACK MODE  CRYPTOGRAPIC FUNCTIONS   10/826632       04/16/04      APPARATUS AND METHOD FOR GENERATING  A CRYPTOGRAPHIC KEY SCHEDULE IN A  MICROPROCESSOR
早期的计算机系统与其它计算机系统以独立方式运行,因其上执行的应用 程序的所需输入数据非位于其中,而是应用程序设计者在执行时提供的。当应 用程序被执行时,其将产生输出数据,且该输出数据一般为书面输出数据形式 或被写至磁带、光盘或该计算机系统的其它类型的大型存储装置的文件形式。 接着,该输出数据文件可作为同一计算机系统中下一应用程序的输入文件;或 当该输出数据文件存于一可移动式或可携式大容量存储装置中时,其甚可作为 另一不同但兼容的计算机系统中应用程序的输入文件。在这些早期计算机系统 上,已涉及对敏感信息加以保护,因此开发了许多加密应用程序等信息保护措 施以保护敏感信息,使该敏感信息未经允许不能公开。其一般作法为利用加密 程序对存于存储装置的输出数据设定加密及译码机制。
不久后,使用者开始发现网络计算机具有共享信息的优点,因此网络结构、 操作系统及数据传输协议齐步发展,使得数据不仅得以共享,数据的共享更具 突出的功能。例如,现今的计算机工作站使用者普遍可取得不同工作站或网络 文件服务器上的文件,或可使用因特网而取得新闻及其它信息,或可在众多计 算机之间来回发送及接收电子信息(即电子邮件),或可与贩卖商计算机系统相 连而提供信用卡或行业务信息以向该贩卖商订购产品,或可在餐厅、机场或 其它公众场合使用无线网络而进行上述使用。因此,避免敏感数据未经授权而 公开的必要性不言可喻,使用者也经常需要在使用计算机时对其敏感数据进行 保护。当前关于计算机信息安全备受瞩目,如垃圾邮件、网络黑客、身份窃取、 反向工程、网络愚弄及信用卡诈骗等种种手段均有出现。故相关责任单位已出 台各项法律、条款及加强公众教育;然而,并不能有效遏阻这种计算机信息危 机。因此该项过去仅为政府、金融机构、军事单位及间谍人士所关注的议题如 今已成为一般利用家用计算机而读取电子邮件或进行账户交易的民众所不得 不加以警戒的一大问题。现存大小公司在商业交易上也已投注了相当部份的资 源在其私有信息的保护上。
使用者对数据设定密码而令该数据仅被特定人士或单位译码的技术称为 加密技术。在将加密技术用于保护计算机上或计算机间的数据时,其最常将敏 感信息(未加密文件(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 Publication 46-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算法等。
本发明已针对特定实施例详述如上,本领域的普通技术人员在不违本发明 的精神及范围的条件下对本发明加以改变或更动,该改变或更动仍不脱离本发 明的范围,本发明的精神及范围将定义如下述的权利要求书中。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈