著录项信息
专利名称 | 执行组态区块密码编译演算法的微处理器装置和方法 |
申请号 | CN200410080551.X | 申请日期 | 2004-09-28 |
法律状态 | 授权 | 申报国家 | 暂无 |
公开/公告日 | 2005-04-20 | 公开/公告号 | CN1607763 |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | H04L9/06 | IPC分类号 | H;0;4;L;9;/;0;6;;;G;0;6;F;7;/;0;0查看分类表>
|
申请人 | 威盛电子股份有限公司 | 申请人地址 | 中国台湾
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 威盛电子股份有限公司 | 当前权利人 | 威盛电子股份有限公司 |
发明人 | 汤马士A·魁斯宾;G·葛兰亨利;泰瑞帕克斯 |
代理机构 | 北京中原华和知识产权代理有限责任公司 | 代理人 | 寿宁;张华辉 |
摘要
本发明是关于一种执行组态区块密码编译演算法的微处理器装置和方法,本发明提供一种在微处理器内多个输入数据区块上执行密码编译运算的装置和方法。在一较佳实施例中,提供一种在微处理器内执行密码编译运算的装置。而此装置包含密码编译指令电路、演算逻辑电路和执行逻辑电路。电脑装置会将密码编译指令接收,并加入至执行电脑装置的指令流程中,而密码编译指令负责一个密码编译运算和一个密码编译演算法。演算逻辑电路与密码编译指令电路连接,且演算逻辑电路会命令电脑装置,依据一个密码编译演算法来执行一个密码编译运算。而执行逻辑电路与演算逻辑电路连接,且执行逻辑电路会执行一个密码编译运算。
1.一种执行加密运算的装置,其特征在于其包括:
一加密指令电路,其参照一微处理器内的多个暂存器,提供一个由该 微处理器来接收的加密指令,以作为执行该微处理器的部分指令流程,其 中该加密指令规定多个加密运算的其中之一,且其中该加密指令规定多个 加密演算法的其中之一;
一演算逻辑电路,连接到该加密指令电路,其配置来指示该微处理器 依据该些加密演算法的其中之一以执行该些加密运算的其中之一;以及
一执行逻辑电路,连接到该演算逻辑电路,其配置来执行该些加密运 算的其中之一,该执行逻辑电路包括:
一加密单元,其配置来执行在每一输入文字区块上的多个加密回 合,以产生对应的每一输出文字区块,其中该些加密回合藉由该加密单元 所提供的控制字的回合计数栏位来规定。
2.根据权利要求1所述的执行加密运算的装置,其特征在于该些加密运 算的其中之一是选自下列运算中的至少一个:
一加密运算,用以对多个明文区块进行密码加密运算,以产生对应的多 个密文区块;以及
一解密运算,用以对多个密文区块密码进行密码解密,以产生对应的多 个本文区块。
3.根据权利要求1所述的执行加密运算的装置,其特征在于该些加密演 算法的其中之一包含下列演算法之一:
高阶加密标准演算法;
数据加密标准演算法;以及
三元数据加密标准演算法。
4.根据权利要求1所述的执行加密运算的装置,其特征在于其中所述 的该些暂存器包括下列暂存器中的至少一个:
第一暂存器,其中该第一暂存器的内容包含对应到第一内存位址的第一 指标,而该第一内存位址指定内存中的第一位址,被指定的该加密运算是通 过对应于该第一位址的至少一个输入文字区块的存取而完成;
第二暂存器,其中该第二暂存器的内容包含对应到第二内存位址的第二 指标,而该第二内存位址指定内存中的第二位址,以储存至少一个以上相对 应的输出文字区块,该输出文字区块的产生是至少一个以上的输入文字区 块完成被指定的该加密指令的结果;
第三暂存器,其中该第三暂存器的内容指示该些输入文字区块内的多 个文字区块;
第四暂存器,其内容包含对应到第三内存位址的第三指标,而该第三内 存位址指定内存中的第三位址,以存取用来完成该些加密程序的其中之一 的密码金钥数据;
第五暂存器,其包含对应到第四内存位址的第四指标,而该第四指标 指定内存中的第四位址,且该第四位址包含初始化向量位置,该初始化向 量位置对应的内容包含用来完成被指定的一密码程序的初始化向量或初始 化向量相等物;以及
第六暂存器,其内容包含对应到第五内存位址的第五指标,而该第五 指标指定内存中的第五位址,以存取用来完成该些加密程序的其中之一的 控制字,其中该控制字规定该些加密程序的其中之一的加密参数。
5.一种执行加密程序的微处理器,其特征在于其包括:
一加密单元位于该微处理器内,配置来在接收到一指令流内的一加密 指令的时候执行被指定的一加密运算,其中该指令流是用来指定被指定的 加密运算的指令流程的一部分,其中该加密单元配置来执行在每一输入文 字区块上的多个加密回合,以产生对应的每一输出文字区块,其中该些加 密回合藉由该加密单元所提供的控制字的回合计数栏位来规定,其中该加 密指令包含:
一演算栏位,其参照该微处理器内的多个暂存器的数据,配置来 当执行其中一加密程序,规定多个加密演算法的其中之一;以及
一演算逻辑电路,连接到该加密单元,配置来命令该微处理器依据该 些加密演算法的其中之一以执行其中一加密编译程序。
6.根据权利要求5所述的执行加密程序的微处理器,其特征在于该些 加密演算法的其中之一包含下列演算法之一:
高阶加密标准演算法;
数据加密标准演算法;以及
三元数据加密标准演算法。
7.根据权利要求5所述的执行加密程序的微处理器,其特征在于其中 所述的加密指令是依据x86指令形式规定。
8.一种在微处理器中执行加密运算的方法,其特征在于其包含以下步 骤:
接收一加密指令,用来规定多个加密运算的其中之一的其中一个加密 演算法;
依据该些加密演算法的其中之一,参照该微处理器内的多个暂存器的 数据来执行该些加密运算的其中之一;以及
执行该加密运算时,执行在每一输入文字区块上的多个加密回合,以 产生对应的每一输出文字区块,其中该些加密回合藉由一控制字的回合计 数栏位来规定。
9.根据权利要求8所述的在微处理器中执行加密运算的方法,其特征 在于该些加密演算法的其中之一包含下列各演算法之一:
高阶加密标准演算法;
数据加密标准演算法;
三元数据加密标准演算法。
技术领域\n本发明涉及一种微电子领域,特别是涉及一种在电脑装置中执行密码 编译运算,而在电脑装置中执行特殊密码编译演算可在指令阶级编制程序 的执行组态区块密码编译演算法的微处理器装置和方法。\n背景技术\n早期电脑系统都是独立作业,因为运作一个应用程序所需输入的数据 (数据即资料,以下皆称为数据)是内建于早期电脑系统内或是由软件(软 件即为软体,以下皆称为软件)工程师在程序运作时输入。应用程序执行 后产生的输出数据通常是以白纸黑字的列印方式呈现,或是以一个档案的形 式被写入磁碟、硬碟、或其他属于电脑系统一部分的储存装置中。接着这 个输出档案可视为输入档案,在同一个电脑系统中执行下一个应用程序,或 是如果这个输出数据先存成档案到大量储存装置,再用应用程序送到不同 且相容的电脑系统。这些早期的系统对于保护敏感数据有一定的认知。而 在其他数据保密措施中,执行密码编译应用程序,以保护未经许可而公开 的敏感数据。这些密码编译程序通常于大量储存装置中,把存为档案的输 出数据做加密或解密的动作。\n几年之后,使用者发现可通过网络电脑来分享数据的好处。接着,网络 架构、操作系统、数据传输规则所发展的范围,除了能支援分享的数据之 外,还能提供重要的附加功能。例如,存取档案不同的工作站、或网络档案 伺服器,或利用网络来取得新闻和其他资讯,或传输和接收电子讯息(如电 子邮件)在数百种不同电脑。连接拍卖者的电脑系统并提供拍卖者信用卡或 银行资料来购买产品,在餐厅、机场、或其他公共场使用无线网络来执行 先前所提到的动作。对于今日电脑工作站的使用者来说,早已经习惯这种 便利的生活了。因此,保护敏感数据和传送未经许可而公开的数据变成十 分重要。今日通过电脑所传输的敏感数据需要保护的频率已大幅增加。因 而目前新闻头条会发布如垃圾邮件、骇客、盗用身分、反向工程、诈欺和 信用卡盗刷等有关电脑安全性资讯给社会大众,以唤起社会大众的警觉。这 些侵害隐私动作的动机有时是纯属意外的无心过失,有些则是已计划好的 恐怖手段。使得政府相关单位已制定好新的法令来严格执行,但是这些动 作未能有效杜绝有心人士入侵电脑数据的浪潮。过去让政府单位、金融机 构、军方和情报单位所担忧的问题,如今便成为每一位在家读取电子邮件 或使用网络银行交易的社会大众最担心的问题之一。\n资讯安全这个领域能提供数据加密的动作,可以让指定人士将数据解 密,这个保护方式称为密码编译。在保护电脑与电脑间数据的传输上,通常 使用密码编译来将敏感数据(如本文)转换成无法辨识的形式(如密文)。将 本文转换成密文的变换过程称为“加密”,而将密文转换成本文的反向变 换过程称为“解密”。\n在密码解译的这个领域中,已发展几项程序和规则,可让使用者不需 用太多密码编译的知识或花太大的努力,将数据以加密的形式传送给不同 的使用者。除了加密数据以外,寄件者通常会给收件者一个“加密金钥”,让 收件者能回复加密数据,或提供收件者进入未加密的原始数据的管道。熟 知此技艺者了解,这些程序通常会通过密码保护、数学演算、及特别设计 给加密和解密敏感数据的应用程序来执行。\n目前有许多种类的演算法可用于加密和解密数据上。其中一种公开金 钥加密演算法(如RSA演算法)使用两个加密金钥,一个公开金钥(public key)和一个私密金钥(private key)来加密或解密数据。依据一些公开金钥 加密演算法,寄件者所提供的公开金钥,将传送给收件者的数据加密。因 为公开金钥和一个私密金钥间有某种特定的数学关系,收件者必须执行他 的私密金钥来将传加密的数据解密,以还原原本的数据。虽然今日这种密 码编译演算法广为大众所使用,可是加密和解密的运算过慢,就连处理少 量的数据也是一样很慢。第二种演算法为对称加密金钥演算法,不但提供 与第一种演算法等级的数据保密性,且执行速度更快。这种演算法会称为 对称加密金钥演算法,是因为使用单一加密金钥来同时执行加密和解密的 动作。在一些公家机关中,目前普遍使用三种单一金钥加密演算法:数据 加密标准(Data Encryption Standard,DES)演算法、三元数据加密标准 (Triple DES)演算法以及高阶加密标准(Advanced Encryption Standard, AES)演算法。由于这些演算法的强度足以保护敏感数据,因而目前被美国 政府单位使用,但相信不久的未来,这些演算法中其中的一种或更多种能 成为商业或是私人交易中的使用标准。从这些对称加密金钥演算法来看,将本 文和密文分割成一定大小的片段来执行加密和解密的动作。例如,AES演算 法在128位元的片段上进行密码编译运算的动作,并可使用大小为128、192、256 位元的加密金钥。其他对称加密金钥演算法如Rijndael Cipher同样地可 用于192、256位元的数据片段。因此,在一片段加密运算上,可将1024 位元的本文加密分为8个128位元的片段。所有的对称加密金钥演算法使 用相同种类的子运算来加密本文的片段。依据较常使用的对称加密金钥演 算法,将一个初始的加密金钥扩展到多个金钥(如金钥程序表),作为对应 的密码编译“回合”的每个金钥执行于本文片段中。例如,从金钥程序表 的第一金钥用来执行本文片段中子运算的第一密码编译回合。第一回合的 结果作为第二回合的输入数据,而第二回合会执行从金钥程序表的第二金 钥以产生第二回合的结果。接着执行几个特定的回合以产生最后回合的结 果“密文”。而在AES演算法,每一回合内的子运算指向相关文献中,如子 位元(SubBytes、S-box)、移列(ShiftRows)、混栏(MixColums)和加入 回合金钥(AddRoundKey)。密文片段解密相似于本文片段加密,就是把密 文当作输入值输到反向加密。当进行每一回合时,执行反向子运算(如:反 向混栏(Inverse MixColums)、反向移列(Inverse ShiftRows)。而最后一 回合的结果为本文片段。\nDES和三元DES都使用不同的特定子运算,但这些子运算与AES的子运 算相似,因为它们都用相似的方式将本文转变成密文片段。\n为了在多个连续片段数据上执行加密运算,所有的对称加密金钥演算 法使用相同种类的模式。这些模式包含电子书码(electronic code book) 模式、连续编码片段(cipher block chaining)模式、编码反馈(cipher feedback)模式和输出反馈(output feedback)模式。其中一些模式在执行 子运算时需使用额外的初始化向量,而另一些模式使用第一段本文所执行 的第一加密回合的加密输出值,其可作为第二段本文所执行的第二加密回 合的输入值。若深入探讨每一个密码编译演算法和对称加密金钥演算法所 执行的子运算,会超出本发明的应用范围。关于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)。由 National Institute of Standards and Technology(NIST)发行并维护先 前所述的标准,在此作为参阅数据。除了上述的标准外,在NIST’s电脑 安全资源中心(Computer Security Resource Center,CSRS)的网站 http://csrs.nist.gov/提供单元教学、白皮书、套件(toolkits)和相关文 章等。\n熟知此技艺者了解,用于执行电脑系统的应用程序能进行密码编译运 算(如加密和解密)。事实上,一些操作系统(操作系统即作业系统,以下 皆称为操作系统)(如 Linux)通过密码编译基 元(cryptographic primitives)、密码编译应用程序介面(cryptographic application program interfaces)及其他类似的介面,以提供直接加密/ 解密的服务。本发明者发现现今电脑密码编译的技术在某些方面上仍有许 多缺点,因此读者们所见的图1,图中所说明的缺点会在下述讨论。\n请参阅图1所示,为现今电脑密码编译应用的方框图。方框图100是 连接到区域网络105的第一电脑工作站101。而区域网络105又连接到第二 电脑工作站102、网络档案储存装置(network file storage device)106、第 一路由器(first router)107、或其他连接至广域网络110(wide area network)的介面。而其他连接至广域网络110(wide area network)的介面 像是网络、无线网络路由器(wireless network router)108(如IEEE标 准802.11规范)。膝上型电脑104则通过无线网络(wireless network) 109与无线路由器108连接。而第二路由器(second router)111能提供 与第三电脑工作站(third computer workstation)103的介面。\n如先前所述,现今使用者在使用电脑时会多次遇到电脑资讯安全性的 问题。例如,在多个操作系统控制之下,电脑工作站101的使用者能同时 进行多样工作,而每样工作都需要密码编译运算。电脑工作站101的使用 者需执行加密/解密应用112(通过操作系统执行),以在网络档案储存装置 中储存部分档案。在储存档案的同时,使用者能将已加密的数据传输到电 脑工作站102上的第二个使用者。电脑工作站102上的第二个使用者亦需 要执行加密/解密应用112。而这个已加密的数据可能是即时的(如即时讯 息)、或非即时的(如电子邮件)。因此,使用者能进入或提供他/她的金融 资料(如信用卡号码、金融交易等等)或其他通过广域网络110从电脑工 作站103所得到的敏感数据。电脑工作站103也能代表一个家庭办公室或 其他远端电脑103。当电脑工作站101的使用者不在办公室时,需过通过网 络来存取区域网络105的分享资源101、102、106、107、108、109。每一 个上述的动作需执行加密/解密应用112。因此,无线网络109目前已被广 泛使用在咖啡厅、机场、学校和其他的公共场所,膝上型电脑的使用者除 了需要将传送给别的使用者的数据或从别的使用者接收的数据加密/解密 之外,所有通过无线网络109到无线网络路由器的数据也都要加密/解密。\n熟知此技艺者了解,在已知的电脑工作站101-104上需要做密码编译 运算的动作时,且需执行加密/解密应用112。因此,在不久的将来,电脑 101-104有可能会同时进行数百种的密码编译运算。\n本发明的发明者已注意到使用上述电脑101-104的加密/解密应用112 来执行密码编译运算,会有一些限制。例如,相较于用专门的硬件(硬件 即为硬体,以下皆称为硬件)来执行特定功能,硬件的处理速度会比软件 处理的速度来得快。每一次都需要执行加密/解密应用112,在电脑101-104 正在执行的工作会被暂停。而密码编译运算的参数(如本文、密文、模式、金 钥等等)必须通过操作系统传到加密/解密应用112,来完成密码编译运算。因 为密码编译演算在数据的特殊片段中需执行许多回合的子运算。因此,加密 /解密应用112要执行的指令数量繁多,让整个操作系统处理的速度明显下 降。熟知此技艺者了解,在 中传送一封加密电子邮件 的时间会是传送一封未加密电子邮件的时间的五倍。\n介入电脑操作系统的延误也会影响目前的技术,大多应用程序不提供 完整的金钥产生或加密/解密功能,因此,都是靠操作系统或插件软件来完 成这些作业。而要获得操作系统的资源,要向操作系统发出中断指令或正 在执行的应用软件对操作系统提出要求。\n因此,本发明的发明者已注意,在电脑101-104中完成密码编译运算 十分相似于微处理器内所出现的特定浮点单元之前的浮点数学运算。早期 的浮点运算可用软件来执行,因此它们执行的速度非常慢。而密码编译运 算通过软件处理的速度也很慢。随着浮点技术的发展,浮点指令会执行于 浮点共同处理器(co-processor)。虽然整体系统的价格会升高,但这些浮 点共同处理器所执行的浮点运算比执行软件的速度快很多。同样地,密码 编译共同处理器是用附加卡(add-on boards)或通过平行接口或其他介面总 线(如USB)到主处理器的插卡式或外挂式装置。这些共同处理器能让密码编 译运算完成速度比单纯执行软件的速度快上许多。但密码编译共同处理器 会增加系统组装的花费和耗电量提升,使得系统的整体可靠度降低。因为 共同处理器和主处理器各处于不同的晶片,所以可从连接它们之间的管道 来窃取数据。\n因此内建现今微处理器内的特定密码编译运算的硬件是必要的。这个 硬件应让应用软件只需发出一个命令便能完成密码编译运算的工作。发明 者认为这种硬件可以减少介入电脑操作系统的必要性。本发明能提供应用 软件执行密码编译指令的优先权,除了需相容于普及于市面上的微处理器 之外,还要能支援先前老旧的操作系统和应用软件。因此,更需要提供一种 执行密码编译运算的装置和方法,其可支援多种密码编译演算法,且能认 证和测试硬件上的密码编译演算法、支援切换不同大小的多种数据片段和 金钥、并提供可程序化片段加密/解密模式(如ECB、CBC、CFB和OFB)。\n由此可见,上述现有的执行密码编译演算的微处理器装置和方法在结 构、方法与使用上,显然仍存在有不便与缺陷,而亟待加以进一步改进。为 了解决执行密码编译演算的微处理器装置和方法存在的问题,相关厂商莫 不费尽心思来谋求解决之道,但长久以来一直未见适用的设计被发展完成,而 一般产品又没有适切的结构能够解决上述问题,此显然是相关业者急欲解 决的问题。\n有鉴于上述现有的执行密码编译演算法的微处理器装置和方法存在的 缺陷,本发明人基于从事此类产品设计制造多年丰富的实务经验及专业知 识,并配合学理的运用,积极加以研究创新,以期创设一种新的执行组态区 块密码编译演算法的微处理器装置和方法,能够改进一般现有的执行密码 编译演算法的微处理器装置和方法,使其更加具有实用性。经过不断的研 究、设计,并经反复试作样品及改进后,终于创设出确具实用价值的本发 明。\n发明内容\n本发明的目的在于,克服现有的执行密码编译演算法的微处理器装置 存在的缺陷,而提供一种新的执行组态区块密码编译演算法的微处理器装 置和方法,所要解决的技术问题是使其提供一种在微处理器内执行密码编 译运算的装置。而此装置包含密码编译指令电路、演算逻辑电路和执行逻 辑电路。电脑装置会将密码编译指令接收,并加入至执行电脑装置的指令 流程中,而密码编译指令负责一个密码编译运算和一个密码编译演算法。 演算逻辑电路与密码编译指令电路连接,且演算逻辑电路会命令电脑装置, 依据一个密码编译演算法来执行一个密码编译运算。而执行逻辑电路与演 算逻辑电路连接,且执行逻辑电路会执行一个密码编译运算,从而更加适 于实用。\n本发明的另一目的在于,提供一种执行密码编译运算的装置。此装置 具有装置内的一个密码编译单元和演算逻辑电路。密码编译单元执行其中 的一个密码编译运算,是根据指令流程中接收的密码编译指令,而这个指 令流程会负责一种密码编译运算。这个密码编译指令具有一个演算栏位, 当执行其中的一种密码编译运算时,负责执行其中的一种密码编译演算法。 而演算逻辑电路连接到密码编译单元,且演算逻辑电路会依据这种密码编 译演算法,来命令执行这种密码编译运算的装置,从而更加适于实用。\n本发明的再一目的在于,提供另一种在装置中执行密码编译运算的方 法。这种方法包含接收负责其中的一种密码编译运算的密码编译指令和其 中的一种密码编译演算法,并依据这种密码编译演算法来执行这种密码编 译运算,从而更加适于实用。\n本发明的目的及解决其技术问题是采用以下技术方案来实现的。依据 本发明提出的一种执行加密运算的装置,其包括:一加密指令电路,其参 照一微处理器内的多个暂存器,提供一个由该微处理器来接收的加密指令, 以作为执行该微处理器的部分指令流程,其中该加密指令规定多个加密运 算的其中之一,且其中该加密指令规定多个加密演算法的其中之一;一演 算逻辑电路,连接到该加密指令电路,其配置来指示该微处理器依据该些 加密演算法的其中之一以执行该些加密运算的其中之一;以及一执行逻辑 电路,连接到该演算逻辑电路,其配置来执行该些加密运算的其中之一, 该执行逻辑电路包括:一加密单元,其配置来执行在每一输入文字区块上 的多个加密回合,以产生对应的每一输出文字区块,其中该些加密回合藉 由该加密单元所提供的控制字的回合计数栏位来规定。\n本发明的目的及解决其技术问题还可采用以下技术措施进一步实现。\n前述的执行加密运算的装置,该些加密运算的其中之一是选自下列运算 中的至少一个:一加密运算,用以对多个明文区块进行密码加密运算,以产 生对应的多个密文区块;以及一解密运算,用以对多个密文区块密码进行 密码解密,以产生对应的多个本文区块。\n前述的执行加密运算的装置,该些加密演算法的其中之一包含下列演算 操作之一:高阶加密标准演算法;数据加密标准演算法;以及三元数据加 密标准演算法。\n前述的执行加密运算的装置,其中所述的该些暂存器包括下列暂存器 中的至少一个:第一暂存器,其中该第一暂存器的内容包含对应到第一内存 位址的第一指标,而该第一内存位址指定内存中的第一位址,被指定的该加 密运算是通过对应于该第一位址的至少一个输入文字区块的存取而完成;第 二暂存器,其中该第二暂存器的内容包含对应到第二内存位址的第二指标,而 该第二内存位址指定内存中的第二位址,以储存至少一个以上相对应的输 出文字区块,该输出文字区块的产生是至少一个以上的输入文字区块完成 被指定的该加密指令的结果;第三暂存器,其中该第三暂存器的内容指示 该些输入文字区块内的多个文字区块;第四暂存器,其内容包含对应到第三 内存位址的第三指标,而该第三内存位址指定内存中的第三位址,以存取 用来完成该些加密程序的其中之一的密码金钥数据;第五暂存器,其包含 对应到第四内存位址的第四指标,而该第四指标指定内存中的第四位址, 且该第四位址包含初始化向量位置,该初始化向量位置对应的内容包含用 来完成被指定的一密码程序的初始化向量或初始化向量相等物;以及第六 暂存器,其内容包含对应到第五内存位址的第五指标,而该第五指标指定 内存中的第五位址,以存取用来完成该些加密程序的其中之一的控制字,其 中该控制字规定该些加密程序的其中之一的加密参数。\n本发明的目的及解决其技术问题是采用以下技术方案来实现的。依据 本发明提出的一种执行加密程序的微处理器,其包括:一加密单元位于该 微处理器内,配置来在接收到一指令流内的一加密指令的时候执行被指定 的一加密运算,其中该指令流是用来指定被指定的加密运算的指令流程的 一部分,其中该加密单元配置来执行在每一输入文字区块上的多个加密回 合,以产生对应的每一输出文字区块,其中该些加密回合藉由该加密单元 所提供的控制字的回合计数栏位来规定,其中该加密指令包含:一演算栏 位,其参照该微处理器内的多个暂存器的数据,配置来当执行其中一加密 程序,规定多个加密演算法的其中之一;以及一演算逻辑电路,连接到该加 密单元,配置来命令该微处理器依据该些加密演算法的其中之一以执行其 中一加密编译程序。\n本发明的目的及解决其技术问题还可采用以下技术措施进一步实现。\n前述的执行加密程序的微处理器,该些加密演算法的其中之一包含下 列演算法之一:高阶加密标准演算法;数据加密标准演算法;以及三元数 据加密标准演算法。\n前述的执行加密程序的微处理器,其中所述的加密指令是依据x86指 令形式规定。\n本发明的目的及解决其技术问题是采用以下技术方案来实现的。依据 本发明提出的一种在微处理器中执行加密运算的方法,其包含以下步骤: 接收一加密指令,用来规定多个加密运算的其中之一的其中一加密演算; 依据该些加密演算法的其中之一,参照微处理器内的多个暂存器的数据来 执行该些加密运算的其中之一;以及执行该加密运算时,执行在每一输入 文字区块上的多个加密回合,以产生对应的每一输出文字区块,其中该些 加密回合藉由一控制字的回合计数栏位来规定。\n本发明的目的及解决其技术问题还可采用以下技术措施进一步实现。\n前述的在微处理器中执行加密运算的方法,该些加密演算法的其中之 一包含下列各演算法之一:高阶加密标准演算法;数据加密标准演算法; 三元数据加密标准演算法。\n经由上述可知,本发明是关于一种执行组态区块密码编译演算法的微 处理器装置和方法,本发明提供一种在微处理器内多个输入数据区块上执 行密码编译运算的装置和方法。在一较佳实施例中,提供一种在微处理器 内执行密码编译运算的装置。而此装置包含密码编译指令电路、演算逻辑 电路和执行逻辑电路。电脑装置会将密码编译指令接收,并加入至执行电脑 装置的指令流程中,而密码编译指令负责一个密码编译运算和一个密码编 译演算法。演算逻辑电路与密码编译指令电路连接,且演算逻辑电路会命 令电脑装置,依据一个密码编译演算法来执行一个密码编译运算。而执行 逻辑电路与演算逻辑电路连接,且执行逻辑电路会执行一个密码编译运算。\n综上所述,本发明执行组态区块密码编译演算法的微处理器装置和方 法,具有上述诸多的优点及实用价值,并在同类产品及方法中未见有类似的 结构设计及方法公开发表或使用而确属创新,其不论在产品结构、方法或 功能上皆有较大的改进,在技术上有较大的进步,并产生了好用及实用的 效果,且较现有的执行密码编译演算法的微处理器装置和方法具有增进的 多项功效,从而更加适于实用,诚为一新颖、进步、实用的新设计。\n上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的 技术手段,而可依照说明书的内容予以实施,并为了让本发明的上述和其 他目的、特征和优点能更明显易懂,以下特举多个较佳实施例,并配合附 图,详细说明如下。\n附图说明\n图1是现今密码编译应用的方框图。\n图2是执行密码编译运算的技术的方框图。\n图3是依据本发明一执行密码编译运算的微处理装置的方框图。\n图4是依据本发明一基本单元密码编译指令实施例的方框图。\n图5是依据图4的基本单元密码编译指令一区块编码模式栏位数值的 对照表。\n图6是依据本发明x86微处理器内密码编译单元的方框图。\n图7是绘示微指令内的栏位,用来命令图6的微处理器内的密码编译 子运算。\n图8是依据图7一XLOAD微指令的暂存栏位数值的对照表。\n图9是依据图7一XSTOR微指令的暂存栏位数值的对照表。\n图10是依据本发明一个控制字元格式例子的方框图,控制字元规定密 码编译运算的密码编译参数。\n图11是依据本发明一详细说明密码编译单元例子的方框图。\n图12是依据本发明一区块编码逻辑实施例,执行AES演算法的密码编 译运算的方框图。\n图13是依据本发明中断事件发生时保留密码编译状态的方法的流程 图。\n图14是依据本发明一或多个中断事件发生时在多个输入数据片段中所 指定的密码编译演算法,一执行密码编译运算的方法的流程图。\n具体实施方式\n为更进一步阐述本发明为达成预定发明目的所采取的技术手段及功效, 以下结合附图及较佳实施例,对依据本发明提出的执行组态区块密码编译 演算法的微处理器装置和方法其具体实施方式、结构、方法、步骤、特征 及其功效,详细说明如后。\n下述内容将参阅图2所延续先前技术背景的密码编译程序和现今电脑 系统内执行加密及解密数据的相关技术。接下来请参阅图3~图12所示。本发 明提供了一种效能和机制优越的装置和方法来执行密码编译运作,除此之 外,更可达到介入操作系统的限制、独立完整性、老旧架构相容性、演算和 模式切换性、骇客抵御性以及可测试性的目的。\n现在请参阅图2所示,其方框图200是现今电脑系统内执行密码编译 运算。方框图200包括一个微处理器201,这个微处理器201从应用内存 203的系统记忆区内快取指令并存取应用程序所连结的数据。应用内存203 内的程序控制和数据存取通常是由操作系统软件202处理,而操作系统软件 202位于系统内存的保护区内。如先前所提及,一个执行应用程序(如:一个 电子邮件的程序或一个档案储存的程序)需要执行密码编译运作,而此执 行应用程序必须命令微处理器201执行一连串的指令,以完成密码编译运 算。这些指令有些是此执行应用程序内的子程序,有些是连接到此执行应用 程序的插件软件应用,或是操作系统202所提供的服务。无论怎么连结,这 些指令都位于内存中的特定区域。为了方便讨论,这些记忆区位于应用内 存203中且包含一个金钥产生软件204,此金钥产生软件一般负责产生和接 受金钥的工作,并将金钥展开成为金钥程序表205,以用于密码编译回合运 作。对于多片段加密运作,可执行片段加密应用。而区块加密应用执行指 令来存取本文210区块、金钥程序表205、密码编译参数209,而密码编译 参数209更指定加密运算的项目如模式、金钥程序表的位置等。如果需要 指定模式,加密软件206也会存取初始化向量208。加密软件206执行内部 指令以产生符合的密文211区块。解密流程大致上相同,当需要解读加密 片段时,部分解密软件207会被呼叫。解密软件207执行指令以进入密文 区块、金钥程序表205、密码编译参数209。其中密码编译参数209能提供解 密的详细项目。若需要解密模式,解密软件207也会存取初始化向量208。而 解密软件207执行内部指令来产生符合的本文210区块。\n加密、解密和产生金钥的动作应该可以用更少的指令完成。先前提出 由FIPS规范提供几个不同虚拟码来预估需要执行的指令数量,而目前技术 需要数百个指令来完成一项简单的加密工作。微处理器201执行每一个指 令,以完成所需的密码编译运算。除此之外,从这些执行的应用软件(如:档 案管理、简讯、电子邮件、远端档案存取、信用卡交易)的角度来看,执行 密码编译不是软件的主要用途,且会让使用执行应用软件者错觉应用软件 效率差。至于独立或插件加密软件206和解密软件207,加密软件206和解 密软件207的管理必须支援操作系统202的其他目的如支援中断、异常和 其他状况。此外,电脑系统上每一个同时正在进行的密码编译都会需要在 内存203内安排一定的空间给软件204、206和207,而且未来微处理器201 所需处理的密码编译工作数量只会有增无减。\n有鉴于现今电脑系统处理密码编译的这个缺陷,发明者体会需要在微 处理器内改善密码编译处理速度的装置及方法的必要性。此密码编译单元 通过单一密码编译指令来启动密码编译程序。关于此发明,将在图3~图 12作更进一步的解释。\n请参阅图3所示,其照本发明所提供的微处理器密码编译运作的装置 方框图。方框图300是微处理器301经由内存总线319连接到系统内存321,而 微处理器301包括转译逻辑电路303由指令暂存器302接收指令。转译逻 辑电路303的构成可以是一个逻辑、电路、装置、微指令码(如微指令或 原生指令)或是一个逻辑、电路、装置、微指令码、将指令转译成微指令 码的连接序列的相同功效元件的结合。而转译逻辑电路303执行转译的元 件可以与微处理器301内执行其他功能的线路、微指令码等元件共用。依 据本发明的应用范围,微指令码指示一个或多个微指令,而一个微指令(亦 为原生指令)指示在密码编译单元层次可执行的指令。举例来说,精简指 令集运算处理器(reduced instruction set computer microprocessor)都 直接执行微指令。而加强指令集运算微处理器(complex instruction set computer microprocessor)如与x86相容的微处理器,则先将x86指令转 译成相关的微指令,而后再由内部一个或一个以上的单元执行指令。转译 逻辑电路303和微指令队列(队列即伫列,以下皆称为队列)304连接,而 微指令队列304中有多个微指令入口305、306。由微指令队列304所提供 的微指令到含有暂存器档案307的暂存器阶段逻辑,而暂存器档案307具 有多个暂存器308~313,这些暂存器会在进行规定的密码运算之前将数据 输入。暂存器308~312指向内存中对应的位置323~327,包含执行所规定 的密码编译运算的数据。暂存阶段连接在载入逻辑电路314,载入逻辑电路 314则接合到快取记忆数据315,从快取记忆数据315读取规定的密码编译 运算的所需数据,而快取记忆数据315经由内存总线319连接到内存321。 执行逻辑电路328连接到载入逻辑电路314并执行先前阶段传下来的微指 令运算,而执行逻辑电路328的构成可以是一个逻辑、电路、装置、微指 令码(如微指令或原生指令)或是一个逻辑、电路、装置、微指令码、执 行指令所指示运算的相同功效元件的结合。执行执行逻辑电路328内运算 的元件能与执行在微处理器301内其他功能的其他电路、微指令码等结合。 执行逻辑电路328包含一个密码编译单元316,而此密码编译单元316从 载入逻辑电路314接收密码编译运算所需的数据。微指令命令密码编译 单元316对多个输入文字片段326进行密码编译,并输出对应的复数输出文 字片段327。密码编译单元316的构成可以是一个逻辑、电路、装置、微指 令码(如微指令或原生指令)或是一个逻辑、电路、装置、微指令码、执行密 码运算的相同功效元件的结合。而在密码编译单元316内执行密码运算的 元件可以和执行微处理器301内其他功能的其他电路、微指令码等共用。 在一较佳实施例中,密码编译单元316与执行逻辑电路328内如整数单元、 浮点单元等其他执行单元(未图示)平行执行。一“单元”的较佳实施例的 构成是一个逻辑、电路、装置、微指令码(如微指令或原生指令)或是一 个逻辑、电路、装置、微指令码、执行特定功能或特定运算的相同功效元 件的结合。执行特殊单元内的特定功能或特定运算的元件能与执行微处理 器301内其他功能或运算的其他电路、微程序码等共用。举例来说,在一 较佳实施例,一整数单元的构成是一个逻辑、电路、装置、微指令码(如微 指令或原生指令)或是一个逻辑、电路、装置、微指令码、执行整数指令的 相同功效元件的结合。一浮点单元的构成是一个逻辑、电路、装置、微指 令码(如微指令或原生指令)或是一个逻辑、电路、装置、微指令码、执 行浮点指令的相同功效元件的结合。执行在整数单元内的元件与执行在浮 点单元内的浮点指令的其他电路、微指令码等共用。在一个与x86架构相 容的较佳实施例中,密码编译单元316与一x86整数单元、一x86浮点单 元、一x86单元以及一x86单元平行运作。依据本发明应用范围, 一相容于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, 这样运算可以如同生产线作业般同时执行多个运算。\n系统内存321内,一应用程序若需要执行密码编译运算,可命令微处 理器301执行经由单一密码编译指令322的运算,以下称为XCRYPT指令 322。在加强指令集运算实施例中,XCRYPT指令322包含一个指示密码编译 运算的指令。在精简指令集运算实施例中,XCRYPT指令322包含一个指示 密码编译运算的微指令。在一较佳实施例中,XCRYPT指令322用现有指令集 架构内的一个多余或未使用的指令运算码。在一个与x86相容的较佳实施 例中,XCRYPT指令322是一个4位元指令,其包含x86前置(如0xF3),执行 密码编译运算期间接着在未使用过的2位元运算码(0x0FA7),然后再接着 一1位元特定区块解密模式。在一较佳实施例中,XCRYPT指令322依照应 用软件能执行系统的层次,并直接将XCRYPT指令322写入指令程序流程,而 多个指令直接由应用程序或操作系统320提供到微处理器301。因为只需一 个指令322命令微处理器301,以执行密码编译运算,所以密码编译的作业 细节对操作系统320都是完全透明的。\n电脑系统的运作模式,是由操作系统320呼叫执行各个应用程序,以执 行在微处理器301。应用软件下令执行XCRYPT指令322,依据电脑系统中 的一般指令流程,会从内存321传指令到暂存器302。在执行XCRYPT指令 322之前,程序流程内的指令会下令微处理器301启动暂存器的内容,以至 于指令指向内存321内的位置323~327,这些位置包含密码编译控制字元 323、初始化密码编译控制金钥324、金钥程序表324、初始化向量325(若 需要的话)、等着被处理的输入文字326以及输出文字327。在执行XCRYPT 指令322之前需启动暂存器308~312,因为执行XCRYPT指令322会用到暂 存器308~312中所有的数据。另外还有一个暂存器,其负责记录输入文字 区326内有多少片段需要加密或解密。因此,转译逻辑电路303由快取逻 辑电路302接收XCRYPT指令,转译指令成微指令对应序列,并下令微处理 器301执行密码编译运作。微指令对应序列内的第一多个微指令305~306 下令密码编译单元316,将载入逻辑电路314的数据载入并开始执行指定次 数的密码编译回合,以产生输出数据的对应区块且将输出数据的对应区块 送到储存逻辑电路317,而储存逻辑电路317是经由快取记忆数据315用来 储存内存321中的输出文字区327。在微指令的对应序列内第二多个微指 令(未图示)下令微处理器301内的其他执行单元(未图示),执行其他运 作以完成密码编译运作,如非架构暂存器(未图示)通常包含临时结果和计 数器,更新输入和输出指标暂存器311~312,若需要在输入文字326区块 的加密/解密、中断程序等之后更新初始化向量指标暂存器310。在一较佳 实施例中,暂存器308~313为架构暂存器,而架构暂存器308~313为定 义特殊微处理器的指令集架构(ISA)内的暂存器。在一较佳实施例中,密码 编译单元316被分为多个阶段,因此允许连续输入的文字片段326管线化。\n图3是本发明必要元件的方框图,许多现今微处理器301内部的逻辑 电路没有在图300内显示。熟悉该技艺者会发现,为了能清楚说明本发明, 许多微处理器301内包含逻辑电路在图300都被简化了,这是为了方便叙 述。如载入逻辑电路可以包含一个地址产生步骤,接着一个快取记忆介面 阶段,然后再接着一个快取记忆对齐阶段。但是有一点很重要,本发明对 多个输入文字片段进行密码编译326,操作系统只要通过单一指令便能完 成。本发明密码编译工作的细节动作完全透明化,而且和微处理器301内 其他执行单元同时进行运算。密码编译单元316和相关的XCRYPT指令322 运作完全和现今legacy操作系统320运算相容。\n现请参阅图4所示,其是依据本发明的密码编译指令400的方框图。密 码编译指令400包含一个选择性的前置栏位401,接着一个重复前置栏位 402,再接着运算码栏位403,然后再接着区块加密模式栏位404。在一较佳 实施例中,栏位401~404的内容与x86指令集结构相容。\n运算时,许多指令集结构中执行选择性的前置栏位401,可开启或关闭 指示处理器的某些程序功能,例如直接作16位元或32位元的运算、直接 处理或存取特定片段等。重复前置栏位402指示加密指令所作的密码运算,完 成于输入数据的多个区块(如明文或密文)。重复前置栏位402又命令相称 的处理器来执行多个架构暂存器的内容,作为指示器到内存中的位置,此位置 包含密码编译的数据和需完成特定密码编译运算的参数。如先前所提及,在 一与x86相容的较佳实施例中,重复前置栏位402的数值为0xF3。依据x86 结构规定,密码编译指令十分近似于形成x86重复带指令(repeat string instruction)如REP.MOVS。举例来说,当执行本发明与x86相容的微处理 器的较佳实施例,重复前置栏位说明储存于结构性暂存器ECX中的计数器, 一资源位址指示器(指到密码编译运算的输入数据)储存于暂存器ESI,以 及对比位址指示器(指到内存的输出数据)储存于暂存器EDI。在一与x86 相容的较佳实施例中,本发明更扩展传统重复带指令的概念到储存于暂存 器EDX的控制字元指示器、储存于暂存器EBX的密码编译金钥指示器、储 存于暂存器EAX的初始化向量(若需要加密模式)的指示器。\n运算码栏位403规定微处理器执行控制字元指示的密码编译运算,这个 控制字元实际上经由控制字元指示器被储存于内存内。本发明选择运算码 值403作为现有指令集结构其中的一个多余或未使用运算码值,以便保留 与legacy操作系统和应用软件相符的微处理器内的相容性。举例来说,与 x86相容的实施例中的运算码栏位403执行0x0FA7,来下令执行特定密码 编译运算。区块加密模式栏位404规定,在特定密码编译运算期间执行特 殊的区块加密模式。\n请参阅图5所示,是依据图4密码编译指令的一个区块加密模式栏位 的对照表500。若区块加密模式栏位为0xC8时,微处理器就会以电子书码 (ECB)模式来完成密码编译动作。若区块加密模式栏位为0xD0时,微处理器 就会以编译方块连锁(CBC)模式来完成密码编译动作。若区块加密模式栏位 为0xE0时,微处理器就会以编码反馈(CFB)模式来完成密码编译动作。且若 区块加密模式栏位为0xE8时,微处理器就会以输出反馈(反馈即为回授,以 下皆称为反馈)(CFB)模式来完成密码编译动作。以上所述各模式在FIPS 文献中均有详细的说明。\n现请参阅图6所示,其是一个与x86相容的微处理器600中的密码编 译单元617的方框图。微处理器600包含一个快取逻辑电路601,而快取逻 辑电路601是由内存(未图示)快取指令并连接转译逻辑电路602。转译逻辑 电路602的构成是一个逻辑、电路、装置、微指令码(如微指令或原生指 令)或是一个逻辑、电路、装置、微指令码、将指令转译成微指令的连结 序列的相同功效元件的结合。而在转译逻辑电路602执行转译工作的元件 会与在微处理器600内执行其他功能的其他电路、微指令码等共用。转译 逻辑电路602包含与微指令码只读内存604连接的转译器603,以及与转译 器603和微指令码只读内存604连接的演算逻辑电路640。而中断逻辑电路 626通过总线628连接到转译逻辑电路602,软/硬件所发出的中断信号627 都由中断逻辑电路626处理,而中断逻辑电路626传达指令让转译逻辑电 路602中断。转译逻辑电路602连接到微处理器600的连续阶段,包含一个 暂存器阶段605、一个位址阶段606、一个载入阶段607、一个执行阶段608、 一个储存阶段618和一个写回阶段619。图6是执行阶段608内的执行逻辑 632包含多个平行执行单元610、612、614、616、617。一个整数单元610 负责由微指令队列609接收整数微指令。一个浮点单元612负责由微指令 队列611接收浮点微指令。一个MMX单元614负责由微指令队列613接收 MMX微指令。一个SSE单元616负责由微指令队列615接收SSE微指令。在 一与x86相容的实施例中,经由一载入总线620、一闲置信号621和一储存 总线622将密码编译单元617连接到SSE单元616。密码编译单元617和 SSE单元共用同一个指令队列615。另一个实施例是将密码编译单元617设 定为如单元610、612和614相同且完全独立的单元。一整数单元610与一 x86EFLAGS暂存器624连接。而EFLAGS暂存器包含一个x位元625,此x 位元的状态用来指示密码编译运算是否在运作,且在此较佳实施例中x位 元625是为x86 EFLAGS暂存器624的第30个位元。此外,整数单元610读 取特定机器暂存器628来估算E位元629的状态。此E位元629的状态指 出密码编译单元617是否存在于微处理器300内。此整数单元610也会读取 在特征控制630内的D位元,来开启和关闭密码编译单元617。如第三图微处 理器实施例301,为了能清楚表达发明特征,图6的微处理器600只显示出 一些构造,其他部分则被汇集在一起或被省略。熟知此项技艺者通晓需要 其他元件完成介面,例如负责快取记忆数据(未图示)、总线介面单元、时脉 产生器和分散逻辑电路(未图示)等。\n运算过程中,快取逻辑电路601将指令由内存(未图示)快取,并在 配合时脉信号(未图示)时将指令送到转译逻辑电路602。转译逻辑电路 602将每一个指令转译成微指令的对应序列,然后配合时脉信号送到微处理 器600的后续阶段605~608、618、619。在一连串的微指令内的每一微指 令下令执行子运算,这个子运算需要完成对应的指令指示的所有运算。例 如由位址阶段606执行的位址产生指令,在整数单元内相加两个运算码, 可由暂存器阶段605内的暂存器接收两个运算码的相加值,其中的一执行 单元610、612、614、616、617所产生的结果都由储存逻辑电路618存入 内存中。依据已转译的指令,转译逻辑电路602执行转译器603直接产生 微指令的序列,或由微指令码只读内存快取序列,或执行转译器603直接 产生一部分的序列且剩下的序列由微指令码只读内存604快取。微指令依 照时脉信号在微处理器600中执行后续阶段605~608、618、619。当微指 令送达到执行阶段608,藉由放置微指令到对应的微指令队列609、611、613、 615,执行逻辑电路632将微指令发送到指定的执行单元610、612、614、 616、617。执行单元610、612、614、616、617执行微指令,并将执行的 结果送到储存阶段618。在一较佳实施例中,微指令包含指示是否能同时执 行其他的运算的栏位。\n如上所述快取XCRYPT指令,转译逻辑电路602产生相关微指令,命令 微处理器600的后续阶段605~608、618、619内的逻辑,执行密码编译运算。 相关微指令的特定概念部分藉由控制字元323内的演算栏位数值决定,将 于下述中详细说明。举例来说,若演算栏位的数值指出使用AES演算法, 然后演算逻辑电路640将建构微指令的相关序列来下令微处理器600,执行 依据AES演算法的密码编译运算。若演算栏位的数值指出使用DES演算法, 然后演算逻辑电路640将建构微指令的相关序列来下令微处理器600,执行 依据DES演算法的密码编译运算。依据其他密码编译演算法,演算逻辑电 路640用大致相同的模式来执行密码编译运算的微指令序列。\n因此,将第一相关多个微指令直接送到密码编译单元617,并下令单元 617将载入总线620所提供的数据载入。也有可能将输入数据的片段载入, 并开始进行指定数量的密码编译回合,以产生输出数据片段。亦有可能储 存逻辑电路618通过储存总线将输出数据的已知片段送到内存中。将第二 多个相关微指令发送到其他执行单元610、612、614、616,以执行其他子 运算。而子运算需完成密码编译运算,如测试E位元、执行D位元631、将 X位元625设定成指示密码编译正在执行、更新暂存器阶段605内的暂存器 (如计数暂存器、输入文字指示暂存器、输出文字指示暂存器)、处理由中 断逻辑电路626所指示的中断627等。为了实现最有效率的密码编译相关指令, 微指令的顺序会被特别排列成将整数单元微指令穿插于密码编译微指令中, 已达到整数运算与密码编译同时执行。微指令包含从暂停中断中恢复所需 的相关微指令。因为提供所有由密码编译参数和数据的指示器于x86结构 暂存器中,当收到中断时会储存这些状态,之后再恢复中断前的状态。当 中断中回复时,微指令测试X位元625的状态,以决定是否有密码编译运 算正在执行。若是有的话,当中断发生时,运算会重复执行于正在进行的 输入数据的特殊片段。微指令的排列顺序会允许在处理中断627前,将指 示暂存器和正在进行密码编译的结果先更新到暂存器内,而后再进行中断。\n现请参阅图7所示,其是为一个微指令结构的范例。此微指令700是 用来指示如图6所见的微处理器执行密码编译运算的指令。微指令700包 含一微运算码栏位701、一数据暂存器栏位702、和一暂存器栏位703。微 运算码栏位701指定执行特定的子运算,并指示微处理器600的一个或多 个阶段内的逻辑电路来执行子运算。依据本发明,微运算码栏位701的指 定值是用密码编译单元下令执行微指令。在一较佳的实施例中,有一对或 多对微运算码栏位701的指定值。用第一对数值命令依据AES演算法的密 码编译子运算,而用第二对数值命令依据DES演算法的密码编译子运算等。 每一对中的第一数值(XLOAD)指示从内存位置所接收的数据,由数据暂存 器栏位702的结构暂存器的内容指向内存的位址。将数据载入至密码编译 单元内的暂存器,密码编译单元是由暂存器栏位703的内容指定。接收的 数据(如密码编译金钥数据、控制字元、输入文字数据、初始化向量)用 于密码编译单元。每一对微运算码栏位数值中的第二数值(XSTOR)指示将 密码编译单元所产生的数据储存于内存位置,由数据暂存器栏位702的结 构暂存器的内容指向内存的位址。在密码编译的多阶段实施例中,暂存器栏 位703的内容规定存入内存内多个输出数据区块的其中之一。输出数据的 片段被放在数据栏位704,供给储存逻辑电路读取。接下来,请参阅图8和图 9所示,将更进一步探讨XLOAD与XSTOR微指令在密码编译单元的执行流程。\n现请参阅图8,其依据图7的编排700绘示用于XLOAD微指令的暂存器 栏位703数值。如先前所述,一连串的微指令会发生在转译XCRPYT指令。此 微指令包含第一多个微指令由密码编译单元执行,和第二多个微指令则由 一个或多个其他单元平行执行。第二多个微指令下令执行子运算,例如更新 计数器、临时的暂存器、于特定机器暂存器中测试和设定位元状态等。而 第一多个指令则提供金钥数据、密码编译参数、和密码编译单元的输入数 据,并下令密码编译单元产生金钥程序表(或载入由内存接收的金钥程序 表),以载入和开启(或关闭)输入文字数据,并储存输出文字数据。一个 XLOAD微指令用于载入控制字元数据的密码编译单元、载入密码编译金钥或 金钥程序表、载入初始化向量数据、载入输出文字数据。载入输出文字数 据,并下令密码编译单元来开启密码编译运作。XLOAD微指令的暂存器栏位 703内的数值0b010下令密码编译单元,以载入控制字元到内部控制字元暂 存器。随着微指令在管线内进行,将结构性控制字元指示暂存器存取在暂 存器阶段内,以获得控制字元所存取的内存中的位址。位址逻辑将位址转 译成内存存取的物性位址。载入逻辑从快取内存中提出控制字元,放置控 制字元到数据栏位704,然后密码编译单元会放入数据栏位704。相同的, 暂存器栏位数值0b100下令密码编译单元载入数据栏位704中的输入文字 数据。等到载入之后,开启密码编译运作。如同控制字元,输入数据是通过 结构暂存器内的指示器来存取。数值0b101下令数据栏位704内的输入数 据载入成内部暂存器1 IN-1。载入到暂存器1 IN-1的数据可为输入文字数 据(管线化时),或为初始化向量。数值0b110和0b111各别下令密码编译 单元,载入使用者产生的金钥程序表中的密码编译金钥或金钥的上、下位元 的其中之一。依据本发明得知,使用者是定义为执行特定功能或特定运作。 而使用者可包含一应用程序、一操作系统、一机器或一个人。因此,在一较佳 实施例中一应用程序能制成一使用者产生的金钥程序表。在另一较佳实施 例中,可由一个人制成使用者产生的金钥程序表。\n在一较佳实施例中,暂存器栏位数值0b100和0b101可视为具有两个 阶段的密码编译单元,而连续输入文字数据的片段可被管线化。因此,为了 管线化连续输入文字数据的两个片段,第一XLOAD微指令将第一段输入文 字数据放入IN-1,第二XLOAD微指令将第二段输入文字数据放入IN-0。第 二XLOAD微指令也会启动密码编译单元执行密码编译运算。\n如果执行密码编译运算是用使用者产生的金钥程序表,而后XLOAD微 指令的数量会与使用者产生的金钥程序表内的金钥数量相对应。使用者产 生的金钥程序表会发送到密码编译单元,而密码编译单元会下令单元,从金 钥程序表内载入每一回合所使用的金钥。\nXLOAD微指令内暂存器栏位703的其他值为保留值。\n请参阅图9所示,是依据图7XLOAD微指令内暂存器栏位703的数值的 对照表900。将XLOAD微指令发送到密码编译单元,下令提供加密或解密输 出文字片段,存到位置栏位702所指示内存内的位址。因此,依据本发明,转 译逻辑电路先发送一特殊输出文字片段的XLOAD微指令,之后在发送对应 的输入文字片段的XLOAD微指令。暂存器栏位703的数值0B100下令密码 编译单元,以将输出0暂存器OUT-0的输出文字片段送到储存逻辑电路。 输入文字片段的OUT-0内容会送到IN-0。相同地,由暂存器栏位数值0b101 指向,输入文字片段的内部输出1暂存器的内容,会送到IN-1。因此,载入 金钥和控制字元数据之后,发送密码编译微指令,多个输入文字片段经由 密码编译单元被管线化到顺序为XLOAD.IN-1、XLOAD.IN-0(XLOAD.IN-0 下令密码编译以启动密码编译运算)、XSTOR.OUT-1、XSTOR.OUT-0、XLOAD. IN-1、XLOAD.IN-0(启动下两个输入文字片段的运作)等等。\n现请参阅图10所示,其是控制字元格式1000的例子。使用者将控制 字元程序化到内存中。在执行密码编译运算之前,会提供指示器到符合微 处理器内的结构暂存器。因此,XCRYPT指令对应的部分微指令中,一XLOAD 微指令下令微处理器,以读取含有指示器的结构暂存器,或是将指示器转 换到物性内存位址,或是由内存(快取记忆数据)接收控制字元1000、或 是将控制字元1000载入到密码编译单元的内部控制字元暂存器。控制字元 1000包含一反向RSVD栏位1001、金钥大小KSIDE栏位1002、加密/解密 E/D栏位1003、一中间结果IRSLT栏位1004、一金钥产生KGEN栏位1005、一 演算ALG栏位1006、和一回合计数RCNT栏位1007。\n反向栏位1001的所有值会被保留。金钥大小栏位1002的内容规定执 行密码编译的大小以完成加密或解密。在一较佳实施例中,金钥大小栏位 1002可为任一128位元、192位元、256位元。加密/解密栏位1003指定密 码编译运算是否为加密运算或解密运算。金钥产生栏位1005指定是否提供 于内存中的是使用者产生的金钥程序表或单一密码运算金钥。若为单一密 码运算金钥,微指令会发送到密码编译金钥的密码编译单元,再依据演算 栏位1006内容所指定的密码编译演算,下令单元扩展金钥到金钥程序表。在 一较佳实施例中,演算栏位1006的指定值指定之前所讨论的DES演算法、三 元DES演算法、或AES演算法。其他实施例则应用不同的密码编译演算法,如 Rijndael Ciper、Twofish Ciper等等。回合计数栏位1007的内容规定,依据 指定的演算法,完成密码编译回合的数量于每一个输入文字输入文字的片 段片段。虽然以上所述的密码编译演算法的规范指定,对不同的输入文字片 段进行固定次数回合的密码编译,回合计数栏位1007规定可从指定的标准 改变回合的数量。最后,中间结果栏位1004的内容指定,依据演算栏位1006 所指定的密码编译演算标准,或回合计数栏位1007所指定的数量回合,是 否执行输入文字片段的加密/解密。而在回合计数栏位1007内所执行的最 后回合代表一中间结果,而不是演算栏位所指定演算法的最后结果。熟知 此记忆者通晓,除了最后一回合不同之外,许多密码编译的演算法在每一 回合重复执行相同的子运算。因此,程序化一中间结果栏位1004提供一中 间结果而非一最后结果,会让一程序师确认执行演算法的中间步骤。举例 来说,获得演算法的额外中间结果,可对文字片段进行第一回合加密,然后 再对相同的文字片段进行第二回合加密,而后进行第三回合加密等。提供 可程序化回合中间结果的能力能让使用者确认密码编译能力,和研究各种 金钥结构及回合计数器的实用性。\n现请参阅图11所示,其是密码编译单元1100实施例的方框图。密码 编译单元1100包含一微运算码暂存器1103,此微运算码暂存器1103经由 微指令总线1114接收密码编译微指令(如XLOAD和XSTOR微指令)。密码 编译单元1100也具有控制字元暂存器1104、输入0暂存器1105、输入1 暂存器1106、金钥0暂存器1107和金钥1暂存器1108。随着微指令暂存 器1103的XLOAD微指令的内容规定,数据会经由一载入总线1111送到暂 存器1104~1108。密码编译单元1100又包含区块加密逻辑电路1101,其 与所有暂存器1103~1108连接,亦与密码编译金钥RAM 1102连接。在一 较佳实施例中,区块加密逻辑电路1101包含AES演算逻辑电路1115、DES演算 逻辑电路1116、和三元DES演算逻辑电路1117。在其他较佳实施例中,区 块加密逻辑电路1101说明额外逻辑元件(未图示)的规定,依据一个或多 个上述讨论控制字元1000内演算栏位1006数值的密码编译演算法,执行 密码编译运算。举例来说,区块加密逻辑电路1101提供AES演算逻辑电路 1115,依据AES演算逻辑电路1115来执行密码编译运算。任何可替代的实 施例包含逻辑、电路、装置、微指令码(如微指令或原生指令)或是一个 逻辑、电路、装置、微指令码、依据对应的密码编译演算法来执行密码编 译运算的相同功效元件的结合。依据对应的密码编译演算法执行密码编译 运作可与其他电路、微指令码等共用。而依据区块加密逻辑电路1101内其 他对应的密码编译演算法,其他电路、微指令码等执行其他密码编译运算。\n区块加密逻辑电路1101又提供一中断信号(stall signal)1113,并提 供区块结果到输出0暂存器1109和输出1暂存器1110。输出暂存器1109~ 1110将结果通过储存总线223发送到微处理器中的连续阶段。在一较佳实 施例中,微指令暂存器1103的大小为32位元,剩下的每一个暂存器1104~ 1110的大小则为128位元。\n在运算中,将密码编译微指令连续送到微指令暂存器1103,控制字元 暂存器1104、或其中的一输入暂存器1105~1106、或其中的一金钥暂存器 1107~1108的指定数据亦会送到微指令暂存器1103中。一配合第八图和第 九图所讨论的较佳实施例中,经由XLOAD微指令将控制字元载入到控制字 元暂存器1104。之后密码编译金钥或金钥程序表会经由连续的XLOAD微指 令被载入。若载入128位元密码编译金钥,之后会将XLOAD微指令送到指 定暂存器KEY-0 1107。若载入高于128位元密码编译金钥,之后会将XLOAD 微指令送到指定暂存器KEY-0 1107和KEY-1 1108。若载入使用者产生的金 钥程序表,之后会将连续的XLOAD微指令送到指定暂存器KEY-0 1107。金 钥程序表所载入的每一个金钥会依序安排到金钥RAM 1102,以供给对应的 密码编译回合中使用。接下来,将输入文字数据(若不需要初始化向量) 送到IN-1暂存器1106。若需要初始化向量时,之后会经由XLOAD微指令将 初始化向量送到IN-1暂存器1106。IN-0暂存器1105的XLOAD微指令下令 密码编译,将输入文字数据载入到IN-0暂存器1105,再启动暂存器IN-0 1105内执行输入文字数据的密码编译回合。依据经由控制字元暂存器1104 的内容所提供的参数,暂存器IN-0 1105使用初始化向量于IN-1或输入暂 存器1105~1106(若输入值被管线化)。当接收指定暂存器IN-0 1105的微 指令,密码编译运算由控制字元的内容来规定。若需要展开单一密码编译 金钥,区块加密逻辑电路1101在金钥程序表中产生每一个金钥,之后再将 金钥储存于密码编译金钥RAM 1102。无论区块加密逻辑电路1101产生金钥 程序表或由内存载入金钥程序表,第一回合的金钥被快取记忆数据到区块 加密逻辑电路1101,以致于不需存取密码编译金钥RAM 1102就能进行第一 区块密码编译回合。一旦启动,区块加密逻辑电路会于一个或多个输入文 字的片段持续执行密码编译运算,直到完成运算。当需要执行密码编译演 算,由密码编译金钥RAM 1102连续地快取回合金钥。密码编译单元1100 在输入文字的特定片段执行一特定区块密码编译运算。执行连续对应的 XLOAD和XSTOR微指令,将输入文字的连续片段加密或解密。执行XSTOR微 指令时,若尚未产生输出数据(如OUT-0或OUT-1),之后区块加密逻辑电 路会执行中断信号(stall signal)1113。一旦输出值已产生并放置在对应 的输出暂存器1109~1110中,之后将暂存器1109~1110的内容转移到储存 总线1112。将微指令700的特定数值微运算码栏位提供到微指令暂存器 1103,已决定哪一个特定的演算逻辑电路1115~1117可执行密码运算。\n现请参阅图12所示,是一个用高阶AES演算法执行密码编译运算的区 块加密逻辑电路1200的方框图。区块加密逻辑电路1200方框图包含一个 回合计算引擎(round engine)1220,此回合计算引擎会经由总线1211~ 1214和总线1216~1218与回合计算引擎控制器1210连接。回合计算引擎 控制器1210可存取控制字元暂存器1202、金钥0暂存器1203、金钥1暂 存器1204来读取金钥数据、微指令、密码编译运算的参数。输入暂存器 1205~1206的内容会送到回合计算引擎1220,之后再由回合计算引擎1220 将对应的输出文字送到输出暂存器1207~1208。而输出暂存器1207~1208 又经由总线1216~1217与回合计算引擎控制器1210连接,让回合计算引 擎控制器1210能读取每一个密码编译回合的结果,再经由总线NEXTIN 1218 送到回合计算引擎1220来进行下一个密码编译回合。密码编译金钥通过总 线1215从金钥RAM(未图示)提出。单一ENC/DEC 1211下令回合计算引擎, 以执行加密(如S-Box)或解密(如反向S-Box)的子运算。总线RNDCON 1212 的内容下令回合计算引擎1220,以执行第一回合的AES演算法、中间回合 的AES演算法、或最后回合的AES演算法。单一GENKEY 1214下令回合计算引 擎1220,依据经由总线1213所提供的金钥来产生金钥程序表。\n当进行对应的回合时,金钥总线1213会将每一个回合金钥送到回合计 算引擎1220。\n回合计算引擎1220包含第一金钥XOR逻辑电路1221,此第一金钥XOR 逻辑电路1221会与第一暂存器REG-0 1222连接。第一暂存器1222会连接 到S-Box逻辑电路1223,此S-Box逻辑电路又与移列逻辑电路(shift row logic)1224连接,而移列逻辑电路(shift row logic)1224又与第二暂存 器REG-1 1225连接。第二暂存器REG-1 1225连接到混栏逻辑电路(Mix Column logic)1226,混栏逻辑电路(Mix Column logic)1226又与第三暂 存器REG-2 1227连接。如上述所讨论的AES FIPS标准,第一金钥XOR逻 辑电路1221、S-Box逻辑电路1223、移列逻辑电路(shift row logic)1224、 混栏逻辑电路(Mix Column logic)1226在输入文字数据上进行名称相似的 子运算。如需进行经由金钥总线1213所提供的回合金钥的中间回合,混栏 逻辑电路1226进行输入数据上AES XOR功能。第一金钥XOR逻辑电路1221、 S-Box逻辑电路1223、移列逻辑电路(shift row logic)1224、混栏逻辑 电路(Mix Column logic)1226在进行经由ENC/DEC 1211状态所指向的解 密动作时,亦能执行对应的反向AES子运算。熟知此技艺者可了解进行中 间回合时,依据控制字元暂存器1202所指示的特殊区块解密模式,将数据 反馈到回合计算引擎1220。初始化向量的数据(若需要)亦会通过NEXTIN 总线1218送到回合计算引擎1220。\n图12所示为一较佳实施例。回合计算引擎1220可分成两个阶段:REG-0 1222和REG-1 1225间的第一阶段以及REG-1 1225和REG-2 1227间的第二 阶段。配合同步时脉(未图示),于阶段间管线化中间回合的数据。当完成 密码编译运算于一块输入数据时,相关的输出数据会放至于对应的输出暂 存器1207~1208。执行XSTOR微指令会使指定输出暂存器1207~1208将内 容送到储存总线(未图示)。\n现请参阅图13所示,其是中断事件发生时保留密码编译参数状态的方 法流程图。当微处理器开始执行指令,方块1302开始进行这个流程。但不 需要含有XCRYPT指令的指令流程,因此接下来必须进行方块1304的决定。\n在决定方块1304时,必须评估一下中断事件的发生(如屏蔽中断 (maskable interrupt)、非屏蔽中断(non-maskable interrupt)、页数错 误(page fault)、作业转换(task switch)等等)是不是需要改变指令 流程到中断处理器,以进行中断事件。如果是的话,接着会进行方块1306 的流程。如果不是的话,接着流程会回到方块1304的决定,而指令会持续 执行直到中断事件发生。\n在方块1306,因为中断事件已经发生,在程序控制转移到对应的中断 处理器前,中断逻辑电路会下令清除标志(标志即为旗标,以下皆称为标志) 暂存器内的X位元。回到中断处理器,清除X位元若发生在进行区块密码 编译运算时,会有一个或更多中断事件发生。且在一段输入数据持续进行 区块密码编译运算前,控制字元数据和金钥数据必须重新载入。接下来进 行方块1308。\n在方块1308,所有架构暂存器具有指示器和计数器,执行区块密码编 译运算,会储存于内存中。熟悉此技艺者了解,控制转移到中断处理器前,储 存架构暂存器一般会完成于目前数据中。接着,本发明开发目前数据的架 构以用于执行中断事件。在储存暂存器之后,接着进行方块1310。\n在方块1310,转移程序流程到中断处理器。接着进行方块1312。\n在方块1312,方法完成。熟悉此技艺者了解,回到中断处理器时图13 的方法才会重回到方块1302。\n现请参阅图14所示,其是发生一个或多个中断事件时执行密码编译运 算的方法流程图。更明确地说,依据电子书区块加密模式(electronic codebook block cipher mode)所讨论的流程,其用来执行特定密码编译运 算。亦能使用其他区块加密模式(如输出反馈模式、加密反馈模式)。此外,更 确切地说,虽然本发明讨论图10的一个或多个密码编译演算法的流程,不 过还是在此说明AES、DES和三元DES演算法的流程。\n方块1402开始进行这个流程,XCRPYT指令下令密码编译运算,让电子 书区块加密模式开始执行。XCRPYT指令可为第一个执行指令,或执行于第 一个执行指令之后。由于中断事件所作的中断功能,以至于在中断处理器 执行之后,转移程序控制回到XCRPYT指令。接下来进行方块1404。\n在方块1404,指向内存中的片段数据到由内存所载入的输入指示暂存 器的内容,且开始执行密码编译运算。在一较佳实施例中,依据AES演算 法开始执行密码编译运算。虽然之前有讨论电子书区块加密模式,本发明者 声明由哪一种特殊密码编译运算(如加密或解密)以及哪一种区块加密模式 (如ECB、CBC、CFB或OFB)来执行特定输入指示暂存器。例如,若使用OFB 模式指定加密运算,接下来执行输入指示暂存器和初始化向量暂存器,以载 入数据。对于OFB加密模式运算,输入指示暂存器指向下一个明文方块来 进行加密动作。对于OFB加密和解密模式运算,初始化向量暂存器指向内 存中初始化向量位置。在第一个方块中,内存中初始化向量位置的内容为 初始化向量。在接下来的方块中,初始化向量位置为符合前一个方块的输 出加密区块,可用来作为目前方块的初始化向量相等物(equivalent)。若使 用ECB模式指定解密运算,接下来负责执行载入数据的输入指示暂存器可 指向内存中下一个密文方块。接下来进行方块1406。\n在决定方块1406时,必须评估一下是否设定标志暂存器内的X位元。若 已设定X位元,控制字元和金钥程序表载入至密码编译单元内为有效的。若 清除X位元,控制字元和金钥程序表载入至密码编译单元内为无效的。如先 前所提及的图13,中断事件发生时,会清除X位元。此外,如先前所提及,当 需要载入一个新的控制字元或金钥程序表、或将两者同时载入时,在发送指 令之前需执行指令来清除X位元。在一与x86相容的较佳实施例中,执行x86 标志暂存器内的第30个位元。藉由执行POPFD指令之后的PUSHFD指令可 将X位元清除。一熟知此技艺者了解,亦可用其他实施例中的其他指令来清 除X位元。若已设定X位元,流程将进行至方块1420。若清除X位元,流程 将进行至方块1408。\n在方块1408,因为由已清除的X位元可知中断事件已经发生,或将一个 新的控制字元和/或金钥数据载入,而从内存载入控制字元。在一较佳实施 例中,载入控制字元会将从方块1404密码编译运算所执行的密码编译单元 停止。在方块1404内启动密码编译运算,藉由假定执行目前所载入的控制 字元和金钥数据,和ECB模式为最佳的区块加密模式,允许用最佳化的多 区块密码编译运算来执行ECB模式。因此,将目前的输入数据方块载入,并 在确认X位元的状态决定是否重设区块1406之前,开启密码编译运算。接 下来进行方块1410的决定。\n在决定方块1410,评估方块1408所接收的控制字元的演算栏位,来决 定需用哪一个密码编译演算法来执行密码编译运算。若演算栏位指定AES 演算法,之后会进行方块1414。若演算栏位指定三元DES演算法,之后会 进行方块1416。\n在方块1412,选择电脑装置中的区块加密逻辑电路内的AES演算法。接 下来进行方块1418。\n在方块1414,选择电脑装置中的区块加密逻辑电路内的DES演算法。接 下来进行方块1418。\n在方块1416,选择电脑装置中的区块加密逻辑电路内的三元DES演算 法。接下来进行方块1418。\n在方块1418,金钥数据(如密码编译金钥或全部金钥程序表)从内存载 入。此外,将方块1404所指出的输入片段和初始化向量(或初始化向量的 同等物)再次载入。依据新载入的控制字元、已选择的演算逻辑电路和金 钥程序表来启动密码编译运算。接下来进行方块1420。\n在方块1420,产生符合已载入的输入区块的输出区块。进行加密时,输 入区块为明文区块,而输出区块为对应的密文区块。进行解密时,输入区 块为密文区块,而输出区块为对应的明文区块。接下来进行方块1422。\n在方块1422,储存已产生的输出区块到内存中,接下来进行方块1424。在 方块1424,修改输入区块指示暂存器和输出区块指示暂存器的内容,以指 向下一个输入和输出数据区块。此外,修改输入计数暂存器的内容,以于 目前输入数据区块上指示密码编译运算的完成。在图14所讨论的较佳实施 例中,熟知此技艺者了解,亦可用其他实施例来运作,并测试区块计数暂 存器的内容来将输入文字区块作管线化的执行。接下来进行方块1426。\n在方块1426,评估输入数据区块是否运作。在此较佳实施例中,评估 区块计数器是否为零。若输入数据区块运作,接着会进行方块1428。\n在方块1428,如输入指示暂存器内容所指向,将下一个输入数据方块载 入。\n在方块1430,此方法完成。\n虽然本发明的较佳实施例已揭露如上,例如本发明目前所实施例皆以 x86架构作为基准,因为x86架构为一个众人所皆知的架构,特以x86架构 说明较为方便。本发明亦可应用于其他架构上,如、和其他 指令集架构完全不同的系统上。\n本发明更可应用于执行微处理器以外的电脑系统元件内密码编译运 算。本发明所使用的密码编译指令能轻易地执行其他微处理器以外的电脑 系统元件内密码编译运算。本发明的一些较佳实施例为微处理器的周边晶 片组(如北桥、南桥)或执行密码编译运算的微处理器。而将密码编译指 令从主机微处理器(host microprocessor)hand off到处理器。本发明亦 可应用到执行嵌入式控制器、工业用控制器、信号处理器、阵列处理器以 及任何相似的元件来处理数据。本发明亦包含可执行上述密码编译运算功 能的元件。执行码编译运算功能的元件应为成本低、耗电量少以作为通讯 系统内的加密/解密的处理器。\n此外,虽然本发明所探讨的是128位元片段,改变暂存器的大小可执 行各种不同大小片段,而暂存器可执行输入数据、输出数据、控制字元。\n因此,虽然DES、三元DES和AES已应用于本发明,本发明者声明上述 发明有较不为人知的区块密码编译演算法,例如MARS cupher、Rijndael cipher、Twofish cipher、Blowfish Cipher、Serpent Cipher和RC6 cipher。本 发明提供指定的区块密码编译装置和微处理器内支撑方法,其区块密码编 译运算能经由单一指令来执行。\n虽然目前讨论范围都以区块密码编译运算法及其他运算法的相关技术 来表现本发明的密码编译功能。在此需声明本发明可完全应用于其他密码 编译运算法,只要能执行一密码编译运算如加密或解密。且微处理器包含 一收到密码编译指令后进行密码编译功能。\n另外,针对上述所讨论的回合计算引擎,提供两阶段装置来管线化两 片段的输入数据。发明者声明该回合计算引擎中管线化输入数据不限于两 阶段,决定多少阶段要视微处理器内所分割的阶段而定。\n最后,虽然目前针对本发明的讨论仅限于单一密码编译单元处理多个 区块密码编译演算法。在此需声明本发明包含多个平行密码编译单元,与一 微处理器中其他执行单元连接。其中多个密码编译单元可分别处理不同区 块演算法,例如第一单元负责处理高阶加密标准AES演算法,第二位负责 处理数据加密标准DES演算法等等以此类推。\n以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式 上的限制,虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发 明,任何熟悉本专业的技术人员,在不脱离本发明技术方案范围内,当可利 用上述揭示的方法及技术内容作出些许的更动或修饰为等同变化的等效实 施例,但是凡是未脱离本发明技术方案的内容,依据本发明的技术实质对 以上实施例所作的任何简单修改、等同变化与修饰,均仍属于本发明技术 方案的范围内。
法律信息
- 2009-02-18
- 2005-06-22
- 2005-04-20
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2001-08-22
|
2001-02-14
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |