CN1684408B - 提供可建构式加密区块加密效果的微处理装置及方法 - Google Patents

提供可建构式加密区块加密效果的微处理装置及方法 Download PDF

Info

Publication number
CN1684408B
CN1684408B CN2005100511807A CN200510051180A CN1684408B CN 1684408 B CN1684408 B CN 1684408B CN 2005100511807 A CN2005100511807 A CN 2005100511807A CN 200510051180 A CN200510051180 A CN 200510051180A CN 1684408 B CN1684408 B CN 1684408B
Authority
CN
China
Prior art keywords
password
buffer
block
execution logic
logic circuit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN2005100511807A
Other languages
English (en)
Other versions
CN1684408A (zh
Inventor
G·葛伦亨利
汤姆士A·克理斯宾
泰利派克
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Via Technologies Inc
Original Assignee
Via Technologies Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US10/826,435 external-priority patent/US7502943B2/en
Application filed by Via Technologies Inc filed Critical Via Technologies Inc
Publication of CN1684408A publication Critical patent/CN1684408A/zh
Application granted granted Critical
Publication of CN1684408B publication Critical patent/CN1684408B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Abstract

本发明是有关于一种提供可建构式加密区块加密效果的微处理装置及方法,即,在处理器内的多数个输入数据方块上执行密码操作的装置及方法。在一个实施例中,提供一种执行密码操作的装置,该装置包括一撷取执行逻辑电路,位于一微处理器中,用以接收为在该微处理器上所执行的指令流程的一部份的密码指令,其中该密码指令指定多个密码操作之一,并指定一种中间结果被产生;转译执行逻辑电路,耦合于该撷取执行逻辑电路,用于将该密码指令转译成一序列的微指令;以及执行逻辑电路,有效连接至该转译执行逻辑电路,用以执行被指定的该密码操作,并且产生被指定的该中间结果,该执行逻辑电路包括:一密码单元,用以执行多个密码回合。

Description

提供可建构式加密区块加密效果的微处理装置及方法
技术领域
本发明涉及一种微电子领域的提供可建构式加密区块加密效果的微处理装置及方法,即为一种在电脑装置上执行具有中间结果的产生的密码操作的装置及方法。
背景技术
早期电脑系统,是与其他电脑系统独立运作,因此一在早期电脑系统中执行的应用程式,所请求的全部输入资料,可能位于该电脑系统,或由一应用程式设计者于执行时提供。该应用程式由输出资料产生,且为执行后的结果,而该输出资料通常是以书面输出,或为档案形式,写在一磁带机、磁碟或其他位于该电脑系统内的大量储存装置中。该输出档案接着可以做为执行在同一电脑系统中,一系列应用程式的输入档案,或者该输出资料先前就已经以一档案形式储存到一可移除或可运输的大量储存装置,则它可接着被提供到一不同、甚至不相容的电脑系统,供应用程式使用。在这些早期的电脑系统中,已确认保护敏感资料的需求,而在其他资讯保全措施中,密码程序程式是发展及利用来保护未授权揭露的敏感资料。一般来说,这些密码程式将储存在大量储存装置的输出资料的加密及解密。
几年前,使用者发现连接网路电脑,以提供存取已共享的资料。连带地,网路结构、作业系统及资料传输协定,同样地将存取已分享资料的能力,发展到不仅仅是支援,甚至扮演起突起性重要的角色。例如,在今日:一电脑工作站的使用者,能够读取不同工作站或网路档案伺服器的档案、使用网际网路取得新闻及其他资讯、在数百部电脑间传送及接收电子讯息(亦即电子邮件)、连接到供应商的电脑系统,提供信用卡或银行功能资讯,以进行与供应商之间的买卖、或在餐厅、机场或其他公共场所利用无线网路进行前述活动,都是相当平常的事情。因此,保护未授权揭露的敏感资料本身及传输需求剧烈的成长。一使用者在一给定电脑多层协定期间,义务保护敏感资料的案例越来越多。目前新闻头条是规律性地加重电脑资讯安全议题的力道,例如垃圾邮件、骇客攻击、个人资料外流、还原工程、网路诈骗以及信用卡诈欺等公众议题的最前线。而因为这些预谋的网路恐怖主义,以不正的手段入侵个人隐私范围的影响,有关机关已经拟定出相对应的新法、严格的执行及公众教育的程式。然而,没有任何一种反应在电脑讯息妥协处理上表现出作用。原本只有政府关心的事情,金融制度,军事及间谍问题,现在变成一般市民从其家用电脑读取电子邮件或执行活储户头存取时一种显著的主题。在讯息安全范畴方面,已逐渐发展出一些技术与装置可以让讯息只会被特定的对象所接收了解,即所谓的密码学(cryptography)。当特别应用于保护资讯时,其为在电脑间储存或传送时,加密使用于传送敏感的讯息(已知如“明文”(cleartext)或“本文”(plaintext)至不能了解的形式(如“密文”(ciphertext))。明文转换至密文的传送过程称“加密(encryption)”、“译成密码(enciphering)”、或“密码化(ciphering)”,且密文转换至明文的传送过程称“解密(decryption)”、“解除密码(deciphering)”、或“转换密码(inyerseciphering)”。
在密码范畴中,已经发展出数个步骤及规则,可用以允许使用者不需使用多少知识或努力便可以完成密码操作,且使这些使用者能够传送或以其他方式如加密形式提供其讯息给其他使用者。顺着加密讯息,传送者一般提供接受者一个不能使接受者解除加密讯息的“加密密码”,因此接受者不能够移除或以其他方式增加未加密原始讯息的存取。已有一些技术,可以将这些步骤或规则采取密码保护,数学运算及特别设计的应用程式形式,而将高敏感度讯息加密或解密。
一些运算类别使用于将数据加密或解密。在此提及的第一类运算类别(如公共金钥密码运算:RSA运算)利用两种密码(一种公共金钥及一种私人金钥)来将数据加密或解密。提及公共金钥运算,一种公共金钥利用来传送给接受者的数据加密。在使用者公共及私人金钥兼有一个数学演算关系,接受者必须利用其私人金钥将传送资料解密以恢复数据。虽然此类密码运算在今日广泛被使用,但加密及解密操作速度仍然过慢,即使只加密与解密少量数据。第二类运算,如对称金钥运算(symmetric key algorithms),提供数据安全相当程度,且速度更快。这些运算称为对称金钥运算,因为其使用密码金钥于加密及解密讯息。有三种公共习知的主要加密金钥运算:数据加密标准规则(data encryption standard、DES),三重数据加密标准规则(Triple DES),及进阶加密标准规则(advanced encryption standard、AES)。因为这些演算法强度包括高敏感度数据,其现在由美国政府及其代理机构使用。但可以预期,这些技术的至少一个技术,将在未来成为商业或私人传送标准。根据这些对称金钥运算,明文及密文是分别被区隔于一个特殊的大小来加密或解密。举例,在128位大小区间的进阶加密标准规则完整加密操作,且使用128、192及256位的加密金钥。其他对称金钥运算允许192及256位数据组的高级加密标准。提及分组密码操作,一种1024位明文讯息有如八个128位组加密
全部的对称金钥运算利用相同形式的次操作,将一明文区块加密。尚有一般更常使用的对称金钥运算,如一种初始化密码金钥扩展多种金钥(如一种“金钥目录”),每一个如符合次操作密码“回合”(round)在明文区块中完成。举例,金钥目录的第一金钥使用来完成在明文区块上次操作的第一密码回合,其中第二回合利用金钥目录的第二金钥来产生第二结果。一种特定数量的次单元回合被完成来产生一个密文本身的最终回结果。进阶加密标准规则运算的每一回合中的次操作,尚有次位。(或S-box)、移列转换(ShiftRows)、混栏(MixColum)、加入回合键(AddRoundKey)等术语。每一回合期间,一种密文区块解密完成,除了完成密文输入转换密码以及转换次操作(混栏栏位,移列转换)外,每一回合的最终结果皆为明文区块。
数据加密标准规则及三重数据加密标准规则利用不同特性次操作,但次操作相似于与这些进阶加密标准规则,因其利用类似的方式转换一明文区块成一密文区块。
在多重连续测试组上完成密码操作,全部对称金钥运算利用相同的模式。这些模式包括电子密码书(electronic code book、ECB)模式、密码组串(cipher block chaining、CBC)模式、密码回馈(cipher feedback、CFB)模式、及输出回馈(output feedback、OFB)模式。在次操作完成期间,一些模式利用一种附加初始化向量,且一些使用完成于第一明文区块加密第一位置的密文输出,如一种附加输入至完成于第二明文区块的加密第二位置。更多的相关技术细节,可以参见FIPS-46-3,1999年10月25日,其详细讨论了数据加密标准规则、三重数据加密标准规则;以及参见FIPS-197,2001年11月26日,其对进阶加密标准作了详细解释。前述标准规则是由美国国家标准科技研究所(National Institute of Standardsand Technology、NIST)颁布及主张。此外,个别的指令、白皮书、套装工具及对策可参考美国国家标准科技研究所的电脑安全应变中心(CSRC),网址为http://csrc.nist.gov/。
习知技术者将察觉多数应用程式可以有效的在电脑上执行以完成密码操作(如加密及去密)。事实上,一些操作系统(如Microsoft、WindowsXP
Figure 051511807_1
、Linux)在原始密码形式、密码应用程式界面及相似物时,直接提供加密/解密服务。无论如何,今日电脑密码技术仍存在一些缺失。请直接参阅图1所示,藉以在下面突显及讨论这些缺失。
图1为一种今日电脑密码应用的架构图100,描述一个与区域网路105连接的第一电脑工作站101、一个第二电脑工作站102、一个网路档案储存装置106、一个第一路由器107、或其他与广域网路(WAN)110如网际网路、及一个无线网路路由器108如IEEE标准802.11形成的接口(接口即为介面,以下均称为接口)亦与区域网路105连接。一个笔记本电脑104利用无线网路109连接至无线路由器108。广域网路110另一个重点,一个第二路由器111提供一个第三电脑工作站103接口。
如上提及,今日使用者在工作期间多次面临电脑资讯安全性的议题。举例,在今日多重工作操作系统控制下,一个工作站101使用者可同步完成数个工作,每一个皆需要密码操作。工作站101使用者需要进行加密/解密操作112(如部分操作系统提供或由操作系统行驶)已在网路档案储存装置106上储存区域档案。在档案储存的同时,使用者可传送加密讯息至位于第二电脑工作站102的第二使用者,其亦需要执行加密/解密操作112。加密讯息可为即时(如一种立即讯息)或非即时(如电子邮件)。另外,使用者还可从第三电脑工作站103经由广域网路110存取或提供他/她最终数据(如信用卡号码,金融转帐等)或其他形式的敏感数据。当走出公司进入任何一个在区域网路105上的分享资源101,102,106,107,108,109工作站101,使用者使用第三电脑工作站103可代表家用电脑或远距电脑103。每一个前述动作需要一个符合执行加密/解密操作112的例子。此外,无线网路109现在常态性的提供于咖啡店,机场,学校,及其他公共场所,因此笔记本电脑104使用者一个加密/解密无论是他/她的讯息传送/接收其他使用者立即的需要,且经由无线网路109至无线路由器108加密或解密所有讯息。
习知技术者可以了解,每一个上述活动都需要在工作站101至104上做密码操作,也就相应有执行一个立即的加密/解密操作112的需求。因此,电脑101至104进一步可能同时完成数百个密码操作。
无论如何,存在一些在电脑系统101至104上执行一个或多个立即的加密/解密操作112,而完成密码操作方法的限制。举例,经由一个软体程式完成一个前述功能,相对于经由硬体完成相同功能所需的执行速度慢。每一个加密/解密操作112都需要一段时间,并且正在电脑101至104上执行的现行程式可能在这段时间内必须暂停执行,且加密操作(如明文,密文,模式,金钥等)参数必须通过操作系统至加密/解密操作112,执行加密操作。且因为加密运算必须包括特殊组别数据几回次操作,加密/解密操作112执行包括执行多个电脑延伸指令,因此全部系统操作速度有不利的影响。如一般习知技术者所能查觉,在Microsoft
Figure 051511807_2
Outlook传送一个小的加密电子邮件会较传送一个未加密电子邮件慢5倍。
另外,因为与操作系统的互动往往会产生延迟,现行技术会被限制。许多应用程式并不能提供完整的金钥产生或加密/解密要件,而必须利用操作系统零件或外挂程式应用来完成这些工作。操作系统也可能是因为被请求中断以及其他现行执行的应用程式的要求转移,而被延迟。
除此之外,在今日电脑系统101至104上密码操作完成,与在微处理器中先前出现使用于浮点单元的浮点数学运算相似。早期浮点运算经由软体完成,执行相当慢。像浮点操作,密码操作经由软体完成相当慢。当浮点技术逐渐成熟,浮点指令提供在浮点共同讯息处理机执行。这些浮点共同讯息处理机执行浮点操作较软体完成速度快,但仍其会增加系统成本。同样的,存在于今日形成附加告示板或外部装置的密码共同讯息处理机,是经由平行口或其他接合总线(如通用序列总线)接合至主要讯息处理机。这些共同讯息处理机执行完成密码操作的速度能够较软体执行快。但密码共同讯息处理机会增加系统结构,额外能量需求量且降低系统全部的可信赖度。完成密码共同讯息处理机还有一大弱点,便是其数据通道往往不是与主要微处理机位于相同的芯片上。
因此,有需要改善现有的处理器的密码功能,例如提供一个可以直接在微处理器上做密码操作以经由单一微密码指令便完成密码操作,并进而限制操作系统介入及处理的需求。亦其可以令人满意的密码指令能够使用于应用程式特殊层级,且提供今日微处理器主要结构的密码硬体。其亦需要提供密码硬体且结合密码指令于一种后续操作系统及应用支撑兼容性方法中。其更需要提供一种阻止未经许可所完成的密码操作的装置及方法,其可以支撑且编序多重密码运算,其支持确认且测试具体实施的特殊密码运算,允许使用者提供的金钥如自行产生支持多个数据组大小及金钥大小的金钥一样,且其提供可编码组别加密/解密模式如电子密码书,密码组串模式,密码回馈模式及输出回馈模式。
由此可见,上述现有的处理器的密码功能在结构、方法与使用上,显然仍存在有不便与缺陷,而亟待加以进一步改进。为了解决处理器的密码功能存在的问题,相关厂商莫不费尽心思来谋求解决之道,但长久以来一直未见适用的设计被发展完成,而一般产品又没有适切的结构能够解决上述问题,此显然是相关业者急欲解决的问题。
有鉴于上述现有的处理器的密码功能存在的缺陷,本发明人基于从事此类产品设计制造多年丰富的实务经验及专业知识,并配合学理的运用,积极加以研究创新,以期创设一种新的提供可建构式加密区块加密效果的微处理装置及方法,能够改进一般现有的处理器的密码功能,使其更具有实用性。经过不断的研究、设计,并经反复试作样品及改进后,终于创设出确具实用价值的本发明。
发明内容
本发明的目的在于,克服现有的处理器的密码功能存在的缺陷,而提供一种新的提供可建构式加密区块加密效果的微处理装置及方法,所要解决的技术问题是使其提供一个可以直接在微处理器上做密码操作以经由单一微密码指令便完成密码操作,并进而限制操作系统介入及处理的需求,从而更加适于实用。
本发明的另一目的在于,提供一种新的提供可建构式加密区块加密效果的微处理装置及方法,所要解决的技术问题是使其可以令人满意的密码指令能够使用于应用程式特殊层级,且提供今日微处理器主要结构的密码硬体,从而更加适于实用。
本发明的再一目的在于,提供一种提供可建构式加密区块加密效果的微处理装置及方法,所要解决的技术问题是使其提供密码硬体且结合密码指令于一种后续操作系统及应用支撑兼容性方法中,从而更加适于实用。
本发明的还一目的在于,提供一种提供可建构式加密区块加密效果的微处理装置及方法,所要解决的技术问题是使其提供一种阻止未经许可所完成的密码操作的装置及方法,其可以支撑且编序多重密码运算,其支持确认且测试具体实施的特殊密码运算,允许使用者提供的金钥如自行产生支持多个数据组大小及金钥大小的金钥一样,且其提供可编码组别加密/解密模式如电子密码书,密码组串模式,密码回馈模式及输出回馈模式,从而更加适于实用,且具有产业上的利用价值。
本发明的目的及解决其技术问题是采用以下技术方案来实现的。依据本发明提出的一种执行密码操作的装置,其特征在于其包括:一撷取执行逻辑电路,位于一微处理器中,用以接收一密码指令,该密码指令是为在该微处理器上所执行的指令流程的一部份,其中该密码指令指定复数个密码操作之一,并指定一种中间结果被产生;一转译执行逻辑电路,耦合于该撷取执行逻辑电路,用于将该密码指令转译成一序列的微指令,该一序列的微指令指示该微处理器执行该密码操作;以及一执行逻辑电路,有效连接至该转译执行逻辑电路,用以执行被指定的该密码操作,并且产生被指定的该中间结果,该执行逻辑电路包括:一密码单元,用以在至少一个输入文字区块的每一个,执行复数个密码回合,藉以产生相对应的至少一个输出文字区块,其中该些密码回合是由该密码单元所提供的一控制字符的一回合计数栏位所指定。
本发明的目的及解决其技术问题还可采用以下技术措施进一步实现。
前述的装置,其中被指定的该密码操作更进一步包括:一加密操作,该加密操作包括至少加密至少一个明文区块,藉以产生至少一个相对应密文区块;以及一解密操作,该解密操作包括解密至少一个密文区块,藉以产生至少一个相对应明文区块。
前述的装置,其中所述的执行逻辑电路用以解译在由该密码指令提及的一控制字符内的一中间结果栏位。
前述的装置,其中所述的中间结果栏位指示该执行逻辑电路以产生一正常结果或产生一中间结果。
前述的装置,其中所述的执行逻辑电路用以解译在由该密码指令提及的一控制字符内的一回合计数栏位。
前述的装置,其中所述的回合计数栏位的数值指定复数个密码回合,在此该些密码回合是在执行被指定的该密码操作时,在一输入区块中被执行。
前述的装置,其中所述的密码指令参照该微处理器内至少一个以上的暂存器。
前述的装置,其中所述的至少一个以上的暂存器包括:一第一暂存器,其中该第一暂存器的内容包括对应于一第一记忆地址的一第一指标,该第一记忆地址详细指明记忆体(记忆体即为存储介质,存储器,内存,以下均称为记忆体)中的一第一位置,被指定的该密码操作是通过对应于该第一位置的至少一个输入文字区块的存取而完成。
前述的装置,其中所述的至少一个以上的暂存器更进一步包括:一第二暂存器,其中该第二暂存器的内容包括对应于一第二记忆地址的一第二指标,该第二记忆地址详细指明该记忆体中的一第二位置,来储存至少一个以上相对应的输出文字区块,该输出文字区块产生是依据至少一个以上的输入文字区块完成被指定的该密码指令;一第三暂存器,其中该第三暂存器的内容指出在至少一个以上的输入文字区块中的复数个文字区块;一第四暂存器,其中该第四暂存器包括对应于一第三记忆地址的一第三指标,该第三记忆地址详细指明记忆体中的一第三位置,来存取密码金钥数据,以使用来完成被指定的该密码操作;一第五暂存器,其中该第五暂存器包括对应于一第四记忆地址的一第四指标,该第四记忆地址详细指明记忆体中的一第四位置,该第四位置包括一最初向量位置,该最初向量位置对应的内容包括一最初向量或一最初向量等同物,用来完成被指定的该密码操作;以及一第六暂存器,其中该第六暂存器包括对应于一第五记忆地址的一第五指标,该第五记忆地址指明记忆体中一第五位置,来存取一控制字符,以使用来完成被指定的该密码操作,其中该控制字符指定被指定的该密码操作的复数个密码参数,并包括:一种中间结果栏位,用以指出一个正常结果或该中间结果是否为在被指定的该密码操作执行期间产生。
本发明的目的及解决其技术问题还采用以下的技术方案来实现。依据本发明提出的一种执行密码操作的装置,其特征在于其包括:一种控制字符产生器,用以产生一控制字符,该控制字符是用以在执行至少一该密码操作期间内,指定一中间结果的产生;以及一密码单元,其在一微处理器的执行逻辑单元中,用以在接收到一指令流内的一密码指令的时候执行被指定的一该密码操作,该指令流是为用来指定被指定的该密码操作的指令流程的一部份,并且该密码指令亦参照该控制字符,其中,该密码指令由该微处理器中的一撷取执行逻辑电路接收并由一转译执行逻辑电路转译成一序列的微指令,该一序列的微指令指示该微处理器执行该密码操作。
本发明的目的及解决其技术问题还可采用以下技术措施进一步实现。
前述的装置,其中所述的控制字符储存于记忆体中,且该控制字符的一记忆位置是由被指定的该密码指令所参照的一暂存器的内容所指定。
前述的装置,其中所述的密码单元解译一种在该控制字符内的一中间结果栏位,以决定是否产生一正常结果或该中间结果。
前述的装置,其中所述的密码单元解译一种在该控制字符内的回合计数栏位,以决定在执行被指定的该密码操作期间,多少密码回合区块必需在一输入文字区块被执行。
本发明的目的及解决其技术问题还采用以下的技术方案来实现。依据本发明提出的一种在微处理器中执行密码操作的方法,其特征在于该方法包括以下步骤:由一记忆体中撷取一密码指令,指定在执行被指定的密码操作期间,产生一中间结果;以及接收该密码指令并将该密码指令转译成一序列的微指令,该一序列的微指令指示该微处理器执行该密码操作,且由位于该微处理器的执行逻辑单元中的密码单元在执行被指定的该密码操作时产生该中间结果。
本发明的目的及解决其技术问题还可采用以下技术措施进一步实现。
前述的方法,其中所述的指定步骤包括:经由该密码指令所参照的一控制字符内的第一栏位,具体指出是否产生一个正常结果或者产生该中间结果。
前述的方法,其中所述的指定步骤包括:经由在该密码指令所参照的一控制字符内的一第二栏位,指出在输入文字的一区块中执行被指定的密码操作期间,有多少个密码回合被执行。
本发明与现有技术相比具有明显的优点和有益效果。由以上技术方案可知,本发明的主要技术内容如下:
为了达到上述目的,本发明提供了一种执行密码操作的装置。该装置包括一个密码指令电路及执行逻辑电路。密码指令电路所处理的密码指令是由电脑装置接收,来作为整个电脑装置中所执行的指令流程的一环。一种密码指令电路指定一种密码操作,且亦指定产生的中间结果。执行逻辑电路与密码指令电路是有效耦接。执行逻辑电路执行一种密码操作且产生一个中间结果。
又,为了达到上述目的,本发明还提供了一种执行密码操作的装置。该装置有一个控制字符单元及密码单元。控制字符单元所处理的控制字符是用来指示在一种密码操作执行期间所产生的一中间结果。密码单元于装置中,并是用以根据一指令流程内是否有接收到用以指示一密码运作的一密码指令电路,执行一种密码操作,其中密码指令亦参照控制字符。
再者,为了达到上述目的,本发明还提供了一种在装置中完成密码操作的方法。该方法至少包括下列步骤:经由一个密码指令来指示一中间结果是在一种密码操作执行期间所产生的;接收密码指令;以及当执行一个密码操作时产生此中间结果。
经由上述可知,本发明是有关于一种提供可建构式加密区块加密效果的微处理装置及方法,即,在处理器内的多数个输入数据方块上执行密码操作的装置及方法。在一个实施例中,提供一种执行密码操作的装置,该装置包括一个密码指令电路及执行逻辑电路,而密码指令电路所提供的密码指令是由一电脑装置接收,如同在电脑装置上执行的部分指令流程。密码指令指定一种密码操作,且亦指定产生一种中间结果。执行逻辑电路耦接到密码指令电路,且执行一种密码操作及产生中间结果。
综上所述,本发明特殊的提供可建构式加密区块加密效果的微处理装置及方法,直接解决前案的问题及缺点。本发明提供一个更优越的技术来完成在微处理器中密码操作。本发明特殊的提供可建构式加密区块加密效果的微处理装置及方法,提供一个可以直接在微处理器上做密码操作以经由单一微密码指令便完成密码操作,并进而限制操作系统介入及处理的需求。本发明特殊的提供可建构式加密区块加密效果的微处理装置及方法,亦可以令人满意的密码指令能够使用于应用程式特殊层级,且提供今日微处理器主要结构的密码硬体。本发明特殊的提供可建构式加密区块加密效果的微处理装置及方法,提供密码硬体且结合密码指令于一种后续操作系统及应用支撑兼容性方法中。本发明特殊的提供可建构式加密区块加密效果的微处理装置及方法,提供一种阻止未经许可所完成的密码操作的装置及方法,其可以支撑且编序多重密码运算,其支持确认且测试具体实施的特殊密码运算,允许使用者提供的金钥如自行产生支持多个数据组大小及金钥大小的金钥一样,且其提供可编码组别加密/解密模式如电子密码书,密码组串模式,密码回馈模式及输出回馈模式。其具有上述诸多的优点及实用价值,并在同类产品及方法中未见有类似的结构设计及方法公开发表或使用而确属创新,其不论在产品结构、方法或功能上皆有较大的改进,在技术上有较大的进步,并产生了好用及实用的效果,且较现有的处理器的密码功能具有增进的多项功效,从而更加适于实用,而具有产业的广泛利用价值,诚为一新颖、进步、实用的新设计。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其他目的、特征和优点能够更明显易懂,以下特举较佳实施例,并配合附图,详细说明如下。
附图说明
图1为说明今日密码应用的方块图;
图2为描述执行密码操作的技术的方块图;
图3为揭示根据本发明的执行密码操作的微处理装置的方块图;
图4为揭示本发明一实施例的微密码指令的方块图;
图5为图4提及的微密码指令的示范方块密码模式范围的数据表示图;
图6为本发明的一个x86-相容性微处理器内密码单元的详细内容方块图;
图7为图6的微处理器内直接密码次操作的一种示范性微指令范畴图;
图8为根据图7的格式的载入微指令的装置记录范畴的表示图;
图9为显示图7形式提及的储存微装置记录范畴的表示图;
图10为强调本发明提及加密操作指定密码参数示范性控制文字的图;
图11为说明图10提及控制文字中间结果范畴的表示图;
图12为本发明提及示范性密码单元详细图;
图13为说明本发明提及的密码逻辑组具体实施例以在进阶加密标准下执行加密操作图;
图14为说明本发明提及一种在中断情况下保留密码参数状态的流程图;
图15说明一个本发明提及当在目前一个或多个阻碍情况下,一个或多个输入数据执行密码操作时指定或产生中间结果的方法的流程图。
100方块图                101第一电脑工作站
102第二电脑工作站        103第三电脑工作站
104笔记本电脑            105区域网路
106网路档案储存装置      107第一路由器
108无线路由器            109无线网路
110广域网路              111第二路由器
112加密/解密操作         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操作码栏位
404区块加密模式栏位        500区块加密模式数值表
600微处理器                601撷取执行逻辑电路
602转译执行逻辑电路        603转译器
604微程式码只读记忆体      605暂存器阶层
606地址阶层                607载入阶层
608执行阶层                609、611、613、615微指令伫列
610整数单元                612浮点数单元
614多媒体延伸集单元
616串流延伸集单元          617密码单元
618储存阶层                619写回阶层
620载入总线                621延迟信号
622储存总线                624旗标暂存器
625X位                     626中断执行逻辑电路
627中断                    628机器特定暂存器
629E位                     630特征控制暂存器
631D位                     632执行逻辑电路
700微指令                  701微程式码栏位
702资料暂存器栏位          703暂存器栏位
704资料栏位
800载入微指令数值表        900储存微指令数值表
1000控制字符               1001保留栏位
1002金钥尺寸栏位           1003加密/解密栏位
1004中间结果栏位           1005金钥产生栏位
1006演算法栏位             1007回合计数栏位
1100中间结果栏位数值表     1200回单元
1201区块加密执行逻辑电路   1202回金钥随机存取记忆体
1203微程式码暂存器         1204控制字符暂存器
1205、1206输入暂存器       1207、1208金钥暂存器
1209输出资料暂存器         1210输出资料暂存器
1211载入总线               1212储存总线
1213延迟讯号               1214微指令总线
1300区块加密执行逻辑电路    1301微指令暂存器
1302控制字符暂存器          1303第一金钥暂存器
1304第二金钥暂存器          1305第一输入暂存器
1306第二输入暂存器          1307第一输出暂存器
1308第二输出暂存器          1310合引擎控制器
1311 加密/解密讯号          1312合计数总线
1313金钥总线                1314金钥产生总线
1315、1316、1317、1318总线  1320合引擎
1321第一金钥互斥执行逻辑电路
1322第一暂存器              1323S-BOX逻辑
1324移列执行逻辑电路        1325第二暂存器
132 6混栏执行逻辑电路       1327第三暂存器
1330中间模式执行逻辑电路    1400流程图
1402开始                    1404中断判定
1406清除X位                 1408储存结构式暂存器
1410中断处理                1412完成
1500流程图                  1502开始
1504载入输入区块并开始操作  1506X位的判断
1508载入控制字符并重新启动
1510载入金钥资料,载入输入区块,并重新开始操作
1512判断是否为一正常结果
1514产生指定回合总数的中间输出区块
1516产生指定回合总数的正常输出区块
1518储存输出区块至记忆体中
1520更新区块计数器及指标
1522判断区块计数器值是否为零
1524载入输入区块并开始操作
1526完成
具体实施方式
为更进一步阐述本发明为达成预定发明目的所采取的技术手段及功效,以下结合附图及较佳实施例,对依据本发明提出的提供可建构式加密区块加密效果的微处理装置及方法其具体实施方式、结构、方法、步骤、特征及其功效,详细说明如后。实施例中所提及的各种修改是用于彰显与习知技术的不同处,此一般原则可应用于其他实施例中。因此,本发明并非限定于特定实施例。
有鉴于上述关于密码程序的技术背景及当今电脑系统所使用将资料加密及解密的相关技术,我们将参阅图2继续探讨这些技术及其限制。接着,将参阅图3至图15所示,继续讨论本发明。
现在请参阅图2所示,一方块图200是描述上述现今电脑系统执行密码运算的技术。方块图200包括一微处理器201,其可撷取指令电路,并存取资料,而所存取的资料是与一称为应用记忆体203的系统记忆体区域内的应用程式相关。在应用记忆体203内的程式控制和资料存取,通常由作业系统202管理,作业系统202位于系统记忆体上一受保护的区域。如上讨论,如果一正在执行的应用程式(例如:一电子邮件或一档案储存程式)要求须执行一密码运算,此正在执行的应用程式必须命令微处理器201完成密码运算,以执行特定的指令电路。这些指令电路可能为次程式,或可能为正在执行的应用程式本身的一部分,也可能为一插入式的应用程式,其连接到正在执行的应用程式,或可为由作业系统202所提供的服务程式。先不论及这些指令电路的关联性,任何熟习此技艺的人士将会了解,这些指令电路将会驻留在记忆体内某些指定或分配的区域。为了达到上述讨论的目的,这些记忆体的区域将显示在应用记忆体203内,且包括一密码金钥产生程序204,一般会产生或接受一密码金钥,及扩展此密码金钥至一金钥排程205,以便在密码回合运算中使用。对一多重区块加密运算而言,会引动一区块加密程序206。加密程序206执行多个指令,其可存取明文210、金钥排程205、密码参数209的区块,而密码参数209进一步指定特殊的区块加密操作(例如模式)、金钥排程的位置等等。若需要一特定模式,加密程序206也会存取一初始向量208。加密程序206于此执行指令,以产生多个对应密文211的区块。类似地,引动一解密程序207,以执行区块解密操作。解密程序207亦会执行多个指令,包括存取密文211、金钥排程205、密码参数209的区块,而密码参数209可进一步指定特殊的区块解密操作,且如果模式需要,也会存取一初始向量208。解密程序207于此执行这些指令以产生多个对应明文区块210的区块。
为产生密码金钥及将内文加密或解密,而执行大量的指令,是非常不值得的。前述的FIPS规格包括许多虚拟编码的例子,以预估所需求指令的大约数目,因此,一熟习此技艺的人士将会理解,完成一简单的区块加密操作,会需要上百个指令。且其中每一指令都必须由该微处理器201执行,以完成所要求的密码操作。更者,该指令的执行以完成一密码操作,通常被视为一执行中应用程式主要目的(例如档案管理、即时讯息、电子邮件、远端档案存取、信用卡交易)。因此,执行中应用程式的使用者会感觉到执行中应用程式的执行不具效率。在一独立运作或插入式的加密程序206和解密程序207,引动和管理这些程序206及207必须依据作业系统202的其他需求,例如中断、除错、及一些会使问题恶化的事件。再者,对于在一电脑系统上需求的每一并行的密码操作,一程序204、206、207的例子就是须分开配置于记忆体203中。及如上所述,可以预期的是,要求由一微处理器201并行的密码运算数目,将会随着时间持续增加。
本发明的发明者已经注意到这些目前电脑系统密码技术的问题和限制,更确认了提供在一不会对使用者出现程式延迟的微处理器中,执行密码操作的装置和方法的需求。据此,本发明于此提供一微处理器,经由专属的密码单元,执行密码操作的装置及相关的方法。当启动密码单元时,以经由一单一密码指令的程式化,执行密码操作。现在将参阅图3至图12所示,讨论本发明。
请参阅图3所示,一方块图300显示一根据本发明用以执行密码操作的微处理装置。该方块图300描述一藉由记忆体总线319连接至系统记忆体321的微处理器301。该微处理器301包括一从指令暂存器302接收指令的转译执行逻辑电路303。转译执行逻辑电路303包括执行逻辑电路、装置或微程式码(例如微指令或本机指令),或是执行逻辑电路、装置或微程式码的结合,或者是可将指令转译成对应的微指令序列的等效的元件。用来在转译执行逻辑电路303中执行转译电路工作的元件,可以被微处理器301中其他不同功用的电路、微程式码等共用。根据本应用范围,微程式码是表示至少一个微指令的术语。微指令(亦称作本机指令)是控制一元件或装置执行动作的阶级的指令。举例来说,微指令是藉由一精简指令集(reduced instruction set computer,RISC)微处理器直接执行。对于一复杂指令集(complex instruction set computer,CISC)微处理器,例如一x86相容的微处理器,x86指令是转译成对应的微指令,且对应的微指令是由复杂指令集微处理器中的元件或装置来直接执行。转译逻辑303是连接至一微指令伫列304。微指令伫列304具有复数个微指令项目305、306。微指令是由微指令伫列304提供至包括暂存器档案307的暂存器阶层执行逻辑电路。暂存器档案307具有复数个暂存器308-313,其中暂存器的内容是先设定好以执行一指定的密码操作。暂存器308至313指向记忆体321上的对应地址323至327,其中记忆体包括用来执行指定的密码操作所需的资料。暂存器阶层是连接至载入执行逻辑电路314,其中载入执行逻辑电路是作为一资料快取记忆体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多媒体延伸集(Multi-media extension,MMX)单元及一x86串流延伸集(Streaming SIMD extension,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执行该动作,例如通过一密码(XCRYPT)指令电路来命令微处理器301。在一复杂指令集的实施例中,密码指令322包括一指定密码操作的指令。在一精简指令集的实施例中,密码指令322包括一指定密码操作的微指令。在一实施例中,密码指令322是使用一已存在的指令集架构中剩余或其他未用的指令操作码。在一x86相容的实施例中,密码指令322是一四位组的指令,其包括一x86重复前置(REP prefix)栏位(例如0xF3),接下来未用的x86二位组操作码栏位(例如0x0FA7),接下来的一位组详述一在执行特定的密码操作过程中,所使用的特定的区块加密模式。在一实施例中,根据本发明密码指令322(或说相对应的密码指令电路)可执行在一提供应用程式的系统隐私的阶级,因此可以被设计成提供给微处理器301,且由一应用程式提供或作业系统320控制的指令程式流程。因为只需要一个密码指令322来控制微处理器执行指定的密码操作,对于应用系统320来说,此项操作已有完整、明了的方法。
在操作上,作业系统320需要一应用程式用以执行于微处理器301上。如同应用程式执行过程中部分的指令流程,由记忆体321提供一密码指令322至撷取执行逻辑电路302。然而在执行密码指令322之前,指令流程中指定的微处理器301会先将暂存器308至312中的内容初始化,使其指向记忆体321中的地址323至327,其中记忆体321包括一密码控制字符323,一初始密码金钥或一金钥目录324,一初始化向量325(如有需要的话),一输入文件326,及一输出文件327。在执行密码指令322之前,需先将暂存器308至312初始化,因为密码指令322会参照暂存器308至312与一包括区块总数的附加的暂存器313,区块总数是输入文件326区域中欲加密或解密的区块个数。因此,转译执行逻辑电路303自撷取执行逻辑电路302中撷取密码指令且转译成一对应的微指令序列,以控制微处理器301执行指定的密码操作。在对应的微指令序列中,第一复数个微指令305、306特别控制密码单元316载入载入执行逻辑电路314提供的资料,并且开始执行已指定数目的密码回合,产生一对应的输出资料区块,且将对应的输出资料区块提供至储存执行逻辑电路317,以通过资料快取记忆体315储存至记忆体321中的输出文字区块327。在对应的微指令序列中,第二复数个微指令(图中未示)控制微处理器中301其他的执行单元(图中未示),执行其他必须的动作以完成指定的密码操作,例如非结构式暂存器(图中未示)的管理,其中非结构式暂存器包括,暂存结果及计数器,输入及输出指向暂存器311、312的更新,在一输入文字区块326加密/解密之后,初始化向量指向暂存器310(如有需要的话)的更新,中断判定的处理等等。在一实施例中,暂存器308至313是结构式暂存器。一结构式暂存器308至313是一定义于指令集架构(ISA)中的暂存器,用于特定的微处理器中。
在一实施例中,密码单元316是分成复数个阶层,以适用于连续的输入文字区块326的管线操作。
图3中的方块图300说明本发明的必要元件,因此大部分现今微处理器301中的执行逻辑电路已被省略,以突显本发明的目的。然而,任何熟习此技艺者可以了解一现今的微处理器301中,依照特定的使用范围,包括有许多个阶层及逻辑元件,其中一些收集于此以说明本发明的目的。举例来说,载入执行逻辑电路314包括接在一快取记忆体接口阶层之后的地址生成阶层,且接着的是一快取记忆体接口阶层。然而要注意的是,根据本发明是由一单一密码指令322来控制对复数个输入文字区块326做一完整的密码操作,其中该单一密码指令322的操作是以不同的方式来思考及了解作业系统320,藉由一专用的密码单元316来执行单一密码指令322,且密码单元是与微处理器中301其他的执行单元平行且同步运作。本发明考虑到实施例结构中密码单元316可替代的实施例,类似于最近几年微处理器中的专用浮点数单元硬体。密码单元及相关的密码指令322的操作,如上所述可完全的与目前的旧式作业系统320及应用程式相容,以下将会有更详细的说明。
现在请参阅图4所示,根据本发明一方块图揭示一微密码指令400的实施例。密码指令400包括一选择性前置栏位(optional prefix field)401,之后接着一重复前置栏位(repeat prefix field)402,接下来是一操作码栏位(opcode field)403,接下来是一区块加密模式栏位(blockcipher mode field)404,在一实施例中,栏位401至404的内容与x86指令集架构一致。可替代的实施例则考虑到了其他的指令集架构。
在操作上,选择性前置栏位401使用在许多的指令集架构中,用以设定一主机微处理器中的某项执行特征致能或不致能,例如控制16位或32位的动作,控制执行或存取特定的记忆体段落等等。重复前置栏位402用来表示由密码指令400指定的密码操作,是要对至少一个输入资料(例如无加密文件或已加密文件)区块来执行。重复前置栏位也隐约控制一相称的微处理器,使用其中复数个结构式暂存器的内容作为指向系统记忆体中的地址的指标,其中记忆体包括有已加密资料及参数,以完成指定的密码操作。如上所提,在一x86相容的实施例中,重复前置栏位的数值为0xF3。而且根据x86架构协定,密码指令是与一x86架构中重复字串指令(例如REP.MOVS.)的形式非常类似。举例来说,当本发明中一x86相容微处理器的实施例执行重复前置时,重复前置会参考一存于结构式暂存器ECX中代表区块计数变数,一存于暂存器ESI中的来源地址指标(指向密码操作的输入资料),及一存于暂存器EDI中的目的地址指标(指向记忆体中输出资料的区域)。在一x86相容的实施例中,本发明更进一步扩充一习知的重复字串指令的概念,进一步参考一存于暂存器EDX的控制字符指标,一存于暂存器EBX中的密码金钥指标,及一存于暂存器EAX中指向初始化向量的指标(如果指定的密码模式需要的话)。
操作码栏位403指定微处理器的密码操作,且更于一储存于记忆体中的控制字符中说明,其通过控制字符指标以做数值参考之用。本发明考虑到操作码栏位403较佳的选择,以作为已存在的指令集架构中备用或未用的操作码数值,同时确保可相容于一包括旧式作业系统及应用软体的微处理器。举例来说,如上所提一x86相容的操作码栏位403实施例中使用数值0x0FA7,以控制特定的密码操作的执行。区块加密模式栏位404指定在特定的密码操作过程中,使用特定的区块加密模式,接下来请参阅图5所示,以继续讨论。
图5是显示一根据图4微密码指令的区块加密模式数值表500的数值实例。数值0xC8是指定密码操作使用电子密码本(ECB)模式。数值0xD0是指定密码操作使用加密区块连锁(CBC)模式。数值0xE0指定密码操作是使用密码回授(CFB)模式。以及数值0xE8指定密码操作是使用输出回授(0FB)模式。所有其他区块加密模式栏位404的数值都被保留起来。这些模式都在上述的FIPS的档案里有说明。
现在请参阅图6所示,根据本发明一方块图详细说明一x86相容的微处理器600中的密码单元617。微处理器600包括撷取执行逻辑电路601,撷取执行逻辑电路601从记忆体(图中未示)中撷取要执行的指令。记忆体是连接至转译执行逻辑电路602。转译执行逻辑电路602包括执行逻辑电路、装置或微程式码(例如微指令或本机指令),或是执行逻辑电路、装置或微程式码的结合,或者是可将指令转译成对应的微指令序列的等效的元件。该用来在转译执行逻辑电路602中执行转译工作的元件,可以被微处理器600中其他不同功用的电路、微程式码等共用。转译执行逻辑电路6 02包括微程式码只读记忆体604、连接至微程式码只读记忆体604的转译器603、及通过一总线连接中断执行逻辑电路626的转译执行逻辑电路602。复数个软体及硬体中断627的讯号是由中断执行逻辑电路626来处理,其中中断执行逻辑电路626是用来判定转译执行逻辑电路602的中断。转译执行逻辑电路602连接至微处理器600中连续的阶层,包括暂存器阶层605,地址阶层606,载入阶层607,执行阶层608,储存阶层618,及写回阶层619。连续的每一个阶层中都包括有执行特殊功能的执行逻辑电路,其中这些功能是依照撷取执行逻辑电路601的指令来执行。撷取执行逻辑电路601已在之前图3的微处理器中讨论过了。图6描绘的x86相容的微处理器600实施例,其中,执行阶层608中的执行逻辑电路632,其中执行阶层608包括平行的执行单元610、612、614、616、617。一整数单元610从微指令伫列609接收整数微指令电路以执行。一浮点数单元612从微指令伫列611接收浮点数微指令以执行。一多媒体延伸集单元614从微指令伫列613接收多媒体延伸集微指令以执行。一串流延伸集单元616从微指令伫列615接收串流延伸集微指令以执行。在所示的x86相容的实施例中,一密码单元617是藉由一载入总线620,一延迟信号621,及一储存总线622连接至串流延伸集单元616。密码单元617共用串流延伸集单元616的微指令伫列615。一可替代的实施例考虑了密码单元617的平行独立作业,类似于单元610、612及614的方式。整数单元610是连接至一x86旗标(EFLAGS)暂存器624。旗标暂存器624包括一X位625,设定X位625的状态以表示密码操作是否有在进行中。在一实施例中,X位625是一x86旗标暂存器624中的第30个位。除此之外,整数单元610存取一机器特定暂存器628以判断一E位629的状态。E位629的状态是表示密码单元617是否有出现于微处理器600中。整数单元610亦存取一特征控制暂存器630中的D位631,以使密码单元617致能或不致能。如图3中一微处理器301的实施例,图6中的微处理器600的特征在于必要元件,于一x86相容的实施例说明本发明,且为了清楚起见,收集了微处理器600中必要元件而省略掉其他不必要元件。任何熟习此技艺者可以了解其他的元件是用来完成其接口,例如一资料快取记忆体(图中未示),总线接口单元(图中未示),时脉产生器,及分布执行逻辑电路(图中未示)等等。
在操作上,指令是随着时脉讯号(图中未示)同步地藉由撷取执行逻辑电路601,从记忆体中撷取至转译执行逻辑电路602。转译执行逻辑电路602将每个指令转译成一对应的微指令序列,序列是随着时脉讯号同步、连续地提供至微处理器中的子序列阶层605至608、618、619。一微指令序列中每一个微指令,是控制一完成整个指令对应的操作所必须的子动作的执行,例如由地址阶层606产生一地址,整数单元610中二个运算元的相加(已撷取自暂存器阶层605中指定的暂存器(图中未示)),藉由储存执行逻辑电路618,将由执行单元610、612、614、616、617其中的一产生的结果储存至记忆体中等等。依照进行转译的指令,转译执行逻辑电路602会使用转译器603来直接产生微指令序列,或者会从微程式码只读记忆体604中撷取序列,或者会使用转译器603来直接产生一部分的微指令序列,且从微程式码只读记忆体604中撷取序列其他的部分。微指令通过微处理器中连续的阶层605至608、618、619,随着时脉讯号同步连续地进行。当微指令到达执行阶层608,他们将执行逻辑电路632以及它们的运算元(撷取自暂存器阶层605中的暂存器,或由地址阶层606中的执行逻辑电路632产生,或者是藉由载入执行逻辑电路632撷取自一资料快取记忆体)以置放微指令于对应的微指令伫列609、611、613、615的方式,沿路送至标定的执行单元610、612、614、616、617。执行单元610、612、614、616、617执行微指令且将结果提供至储存阶层618。在一实施例中,微指令包括一些可以或不能与其他动作平行执行的区域。
对于如上所述撷取一密码指令的反应,转译执行逻辑电路602产生对应的微指令,微指令控制微处理器中子序列阶层605至608、618、619中的执行逻辑电路,以执行指定的密码操作。于是第一复数个对应的微指令是直接沿路送至密码单元617,并控制密码单元617载入由载入总线620上所提供的资料,或载入一输入资料区块,并开始执行指定的加密回合数,以产生一输出资料区块,或于储存总线622上提供一已生成的输出资料区块,以通过储存执行逻辑电路632将之储存于记忆体中。第二复数个对应的微指令是沿路送至其他的执行单元610、612、614、616中,以执行其他完成指定的密码操作所必须的子动作,例如E位629的测试,致能D位631,设定X位625以表示有一密码操作正在进行中,更新暂存器阶层605中的暂存器(例如计数暂存器,输入文件指标暂存器,输出文件指标暂存器),处理由中断执行逻辑电路626所提出之中断627。藉由对密码单元微指令序列中的一些整数单元微指令的设计安排,对应的微指令被指示来对复数个输入资料区块提供一具有最佳效果的指定的密码操作,因此整数操作可与密码单元的操作平行地执行。微指令是包括于对应的微指令中以接受中断627,或从中断627的状态恢复。因为所有指向密码参数的指标与资料都在x86结构式暂存器中,所以当执行中断服务程式时,他们的状态会被储存下来,且从中断跳回时会读回该状态。对于从中断跳回时,微指令会测试X位625的状态以判断是否有一密码操作正在进行中。如果是的话,中断发生时正在执行中的特定输入资料区块将会重复执行该项密码操作。在执行中断627之前,对应的微指令被控制来更新指标暂存器与对输入文件区块执行密码操作的序列的中间结果。
现在请参阅图7所示,一揭示图6的微处理器600中控制密码子动作的微指令700实例中的栏位。微指令700包括一微程式码栏位701,一资料暂存器栏位702,及一暂存器栏位703。微程式码栏位701具体说明一特定的子动作的操作,且指派微处理器600中至少一个阶层中标定的执行逻辑电路来执行该子动作。微程式码栏位701中特定的值是表示藉由一根据本发明的密码单元来执行微程式码。在一实施例中,总共有二个特定的值。第一个值“载入(XLOAD)”,表示资料是从结构式暂存器的内容所指定的一记忆体地址中撷取,其中结构式暂存器是由资料暂存器栏位702的内容指定。资料是要被载入到一密码单元的暂存器中,其中暂存器是由暂存器栏位703指定。撷取的资料(例如密码金钥资料,控制字符,输入文件资料,初始化向量)是送至密码单元。微程式码栏位701的第二个值“储存(XSTOR)”表示,由密码单元产生的资料是要被储存于由结构式暂存器的内容所指定的一记忆体地址中,其中结构式暂存器是由资料暂存器(XSTOR)栏位702的内容指定。在密码单元的一多阶层实施例中,暂存器(XSTOR)栏位703的内容是分配复数个输出资料区块以储存于记忆体中。密码单元于资料(XSTOR)栏位704中产生输出资料区块以供储存执行逻辑电路的存取。现在请参阅图8及图9所示,继续探讨更多根据本发明,关于由一密码单元执行的载入和储存微指令更多具体的细节。
请参阅图8所示,载入微指令数值表800是描述暂存器栏位703中用于一根据本发明载入微指令电路的数值。如之前所讨论的,一微指令序列可以是经由一密码指令电路的转译运作所产生的。微指令序列包括由密码单元来执行的第一复数个微指令电路,及由微处理器中密码单元之外,至少一个平行操作的单元来执行的第二复数个微指令电路。第二复数个微指令控制像是更新计数器、临时暂存器、结构式暂存器,机器特定暂存器中状态位的判断与设定等等的子动作。第一复数个微指令将金钥资料、密码参数、及输入资料送至密码单元,且控制密码单元产生金钥目录(或载入已由记忆体中撷取的金钥目录)载入输入文件资料或将输入文件资料加密(或解密),并且储存输出文件资料。一密码单元中的载入微指令是用来载入控制字符资料,载入一密码金钥或金钥目录,载入初始化向量资料,载入输入文件资料,并控制密码单元以开始执行一指定的密码操作。一载入微指令中暂存器栏位703中的数值0b010控制密码单元,将一控制字符载入密码单元内部的控制字符暂存器。当微指令沿管线操作执行下来时,会存取一暂存器阶层中的结构式控制字符指标暂存器,以得到记忆体中储存控制字符的地址。转译执行逻辑电路将地址转译成一供记忆体存取的实体地址。载入执行逻辑电路从快取记忆体中撷取控制字符并且将控制字符放置于资料栏位704,且接下来将控制字符传送至密码单元中。同样的,暂存器栏位数值0b100是控制密码单元载入来自资料栏位704的输入文件资料,接着开始执行指定的密码操作。如同控制字符,输入资料是通过一储存于结构式暂存器中的指标来存取。数值0b101控制资料栏位704提供的输入资料,载入到第一内部暂存器IN-1中。载入到第一内部暂存器中的资料可以是输入文件资料(当执行管线操作时)或是一初始化向量。数值0b110与0b111控制密码单元分别载入一密码金钥的较低或较高的位或由使用者产生的金钥目录中的一金钥。根据本实例,使用者是定义为执行一特定功能或特定操作者。使用者可以是一应用程式,一作业系统,一机器,或是一个人。因此在一实施例中,使用者产生的金钥目录是由一应用程式产生。在一可替代的实施例中,使用者产生的金钥目录是由一个人操作产生。
在一实施例中暂存器栏位数值为0b100与0b101,考虑到一具有二个阶层的密码单元,其中连续的输入文件资料区块可以是用管线作业的方式来操作。因此,为了以管线作业的方式操作二个连续的输入资料区块,执行第一个载入微指令电路,以将第一输入文件资料区块送到暂存器输入-1中,且接下来执行第二个载入微指令电路以将第二输入文件资料区块送到暂存器输入-0中,并且控制密码单元执行指定的密码操作。
如果采用一使用者产生的金钥目录来执行密码操作,一些对应于使用者产生的金钥目录中各金钥的载入指令会被沿路送至密码单元中,其中密码单元是载入金钥目录中每一个回合金钥。
对于一载入微指令,所有暂存器栏位703中其他的数值都会被保留。
请参阅图9所示,储存微指令数值表900显示暂存器栏位703中用于一根据图7中格式的储存微指令700的数值。一储存微指令700是被送至密码单元中以提供一生成的(如已加密的或已解密的)输出文件区块至储存执行逻辑电路中,以存放于记忆体中由资料暂存器栏位702所提供的地址。因此,在为一输入文件区块产生一载入微指令之后,根据本发明的转译执行逻辑电路为对应的输出文件区块产生一储存微指令。暂存器栏位703数值0b100是控制密码单元将对应于其第一内部输出暂存器输出-0的输出文件区块,提供至储存执行逻辑电路中存放。输出-0的内容是对应于提供至输入-0的输入文件区块。同样的,参照暂存器栏位703数值0b101,第二内部输出暂存器输出-1的内容是对应于提供至输入-1的输入文件区块。因此,在金钥与控制字符资料的载入后,复数个输入文件区块可以利用密码单元,藉由产生如载入.输入-1,储存.输入-0(载入.输入-0同样地控制密码单元开始执行机密操作),储存.输出-0,储存.输出-1,载入.输入-1,载入.输入-0(开始对之后二个输入文件区块执行密码操作)等等顺序的微密码指令来完成管线操作。
现在请参阅图10所示,图10强调一用来指定根据本发明的密码操作中密码参数的控制字符格式1000实例。该控制字符格式1000是由一使用者设计于记忆体中,在执行密码操作之前,且格式的指标是提供给相称的微处理器中的一结构式暂存器。如同对应于一密码指令的部分的微指令序列,一载入微指令是用来控制微处理器读取包括指标的结构式暂存器,将该指标转换成一实体记忆体地址,从记忆体(快取记忆体)中撷取控制字符1000,并且将控制字符1000载入到密码单元中的内部控制字符暂存器。控制字符1000包括一保留(RSVD)栏位1001,一金钥尺寸(KSIZE)栏位1002,一加密/解密(E/D)栏位1003,一中间结果(IRSLT)栏位1004,一金钥产生(KGEN)栏位1005,一演算法(ALG)栏位1006,及一回合计数(RCN)栏位1007。
保留栏位1001中的所有数值均被保留。金钥尺寸栏位1002的内容指定一用来执行一加密或解密操作的密码金钥的大小。在一实施例中,金钥尺寸栏位1002指定一128位大小的金钥,一192位大小的金钥,或一256位大小的金钥。加密/解密栏位1003指定密码操作为一加密动作或是一解密动作。金钥产生栏位1005表示提供于记忆体中为一使用者产生的金钥目录,或者是一单一的密码金钥。若提供于记忆体中者为一单一的密码金钥,接下来微指令会随着密码金钥被传送到密码单元中,根据由演算法栏位1006的内容所指定的密码演算法,微指令会控制密码单元将金钥增加至一金钥目录上。在一实施例中,演算法栏位1006中特定的数值是指定资料加密标准演算法,三重资料加密标准演算法,或进阶加密标准演算法。可替代的实施例考虑了其他的加密演算法,像是Rijndael加密演算法,双鱼(Twofish)加密演算法等等。回合计数栏位1007的内容指定根据指定的演算法,用来执行于每个资料输入区块的密码回合的次数。虽然上述演算法的标准,指定了对每个输入文件区块执行固定的密码回合次数,回合计数栏位1007的提供也允许使用者可以改变标准指定的密码回合次数。在一实施例中,使用者可以指定每个区块执行0~15次的密码回合。最后,中间结果栏位1004的内容指定一输入文件区块的加密/解密是否要执行指定于回合计数栏位1007(根据演算法栏位1006中指定的密码演算法标准)中的密码回合次数,或者是要执行指定于回合计数栏位1007的回合次数,其中执行的最终回合代表一中间结果而非最终结果(根据演算法栏位1006中指定的演算法)。任何熟习此技艺者可以了解,许多的密码演算法在每个密码回合中可以执行同样的子动作,除了执行于最终回合的以外。因此,设计中间结果栏位1004来产生中间结果而非最终结果,这允许一程式设计者可以改变该执行的演算法中间的步骤。举例来说,用来改变演算法操作的增佳的中间结果,可由执行一密码回合于一文件区块,然后执行二个密码回合于同一文件区块,然后执行三个密码回合等等的方式来得到。提供可程式的回合与中间结果的方式,让使用者可以改变密码执行的效果,排除困难,且达成改变金钥结构与回合总数的功用。
现在请参阅图11所示,中间结果栏位数值表1100显示要给图10中控制字符1000的中间结果栏位1004的数值实例。中间结果栏位1004的“0”值控制,是根据本发明的运算元件来产生一特定密码操作(根据如上述讨论关于图10的特定的密码参数)的正常结果。中间结果栏位1004的“1”值控制,是根据本发明的运算元件来产生一特定密码操作(根据如上述讨论关于图10的特定的密码参数)的中间结果。
现在请参阅图12所示,一方块图是用来说明根据本发明一密码单元实例1200中各细节部分。密码单元1200包括一微程式码暂存器1203,微程式码暂存器1203通过一微指令总线1214来接收微密码指令(例如载入与储存微指令)。密码单元1200亦包括一控制字符暂存器1204,一第一输入暂存器(输入-0)1205,一第二输入暂存器(输入-1)1206,一第一金钥暂存器(金钥-0)1207,及一第二金钥暂存器(金钥-1)1208。当微指令暂存器1203中一载入微指令有所指定时,资料是通过一载入总线1211来提供至暂存器1204至1208中。密码单元1200亦包括区块加密执行逻辑电路1201,区块加密执行逻辑电路1201是连接至每个暂存器1203至1208,并且也连接至密码金钥随机存取记忆体1202。区块加密执行逻辑电路1201也会提供一延迟讯号1213,并且提供区块结果给第一输出暂存器1209及第二输出暂存器1210。这些输出暂存器通过一储存总线1212将其内容沿路送至一相容的微处理器中的连续阶层。在一实施例中,微指令暂存器1203的大小为32位,且其他每一个暂存器的大小为128位。
在操作上,微密码指令随着控制字符暂存器1204、一输入暂存器1205至1206、或是金钥暂存器1207至1208之一的资料,连续地提供至微指令暂存器1203中。在图8或图9所讨论的实施例中,一控制字符是通过一载入微指令载入至控制字符暂存器1204。接着密码金钥或金钥目录将通过连续的载入微指令来载入。如果是载入一128位的密码金钥,接下来会提供一载入微指令以指定暂存器金钥-01207。如果是载入一大于128位的密码金钥,接下来会提供一指定暂存器金钥-01207的载入微指令以及一指定暂存器金钥一11208的载入微指令。如果是载入一使用者产生的金钥目录,则接下来会提供连续的、用来指定暂存器金钥-01207的载入微指令。金钥目录中每一个被载入的金钥是依序地于其对应的密码回合中,被存放于金钥随机存取记忆体1202以供使用。接下来输入文件资料(如果不需要用到初始化向量)是被载入至暂存器输入11200中。如果需要用到一初始化向量,则接下该初始化向量是通过一载入微指令被载入至暂存器输入-11206中。一关于暂存器输入-01205的载入微指令控制密码单元,将输入文件资料载入至暂存器输入-01205中,并使用暂存器输入-11206中的初始化向量(或使用二个数入暂存器中的初始化向量,若输入资料是以管线作业的方式来操作),根据由控制字符内容提供的参数,开始在暂存器输入-01205中对输入文件资料执行密码回合的操作。在接收到一指定暂存器输入-01205的载入微指令后,区块加密执行逻辑电路1201开始执行由控制字符内容所指定的密码操作。如果需要增加一单一的密码金钥,接下来区块加密执行逻辑电路1201会产生金钥目录中的每一个金钥并且存于金钥随机存取记忆体1202中。不论区块加密执行逻辑电路1201是产生一金钥目录或者是从记忆体中载入该金钥目录,第一回合的金钥是快取至区块加密执行逻辑电路1201中,因此第一区块加密回合可不需存取金钥随机存取记忆体1202就能执行。一旦初始化后,区块加密执行逻辑电路1201会对至少一个输入文字区块持续执行指定的密码操作,并连续地从金钥随机存取记忆体1202中撷取密码演算法中必须用到的回合金钥,直到操作完成为止。密码单元1200对指定的密码文件区块执行一特定的区块密码操作。连续的输入文件区块是通过对应的连续载入及储存微指令的执行来加密或解密。当执行一储存微指令电路时,若指定的输出资料(例如输出-0或输出-1)还未产生完成,接下来区块加密执行逻辑电路1201会提出一延迟讯号1213。一旦输出资料产生且存放于对应的输出资料暂存器1209至1210之后,输出资料暂存区1209至1210的内容会被传送到储存总线1212上。
现在请参阅图13所示,方块图显示一根据本发明,依照进阶加密标准演算法来执行密码操作的区块加密执行逻辑电路1300的实施例。区块加密执行逻辑电路1300包括一通过总线1311至1314与总线1316至1318,连接至回合引擎控制器1310的回合引擎1320。回合引擎控制器1310包括中间模式执行逻辑电路1330并且存取一微指令暂存器1301,一控制字符暂存器1302,第一金钥(金钥-0)暂存器1303,与第二金钥(金钥-1)暂存器1304,以存取金钥资料、微指令以及指定的密码操作的参数。输入暂存器1305至1306的内容是提供至回合引擎1320中,且回合引擎1320产生对应的输出文件至输出暂存器1307至1308。输出暂存器1307至1308亦通过总线1316至1317连接至回合引擎控制器1310,使回合引擎控制器1310可以存取每个连续密码回合的结果,其中结果是通过总线NEXTIN 1318提供至回合引擎1320以给下一个密码回合使用。密码金钥是通过总线1315从金钥随机存取记忆体中撷取出来。加密/解密讯号1311控制回合引擎利用子动作来执行加密(如S-BOX)或解密(如逆向S-BOX)。对应于控制字符中一中间结果栏位的内容,中间模式执行逻辑电路1330设定好回合计数总线1312的状态,以控制回合引擎1320执行第一个进阶加密标准回合,一中间的进阶加密标准回合,或是一最终进阶加密标准回合。金钥总线1313亦用于执行每个对应的加密回合时,将每个回合金钥提供至回合引擎1320中。
回合引擎1320包括连接至第一暂存器暂存-01322的第一金钥互斥(XOR)执行逻辑电路1321。第一暂存器1322是连接至S-BOX执行逻辑电路1323,其中S-BOX执行逻辑电路1323是连接至移列执行逻辑电路(Shift Rowlogic)1324。移列执行逻辑电路1324是连接至第二暂存器暂存-11325。第二暂存器1325连接至混栏(MIX Column)执行逻辑电路1326,其中混栏执行逻辑电路1326是连接至第三暂存器REG-21327。第一金钥执行逻辑电路1321、S-BOX执行逻辑电路1323、移列执行逻辑电路1324以及混栏执行逻辑电路1326是建构来对输入文件资料执行同名的子动作,如之前讨论的FIPS的进阶加密标准指定的操作。混栏执行逻辑电路1326额外地用于间回合过程中,利用金钥总线1313提供的回合金钥来对输入资料执行进阶加密标准互斥(AES XOR)功能。在加密/解密阶层1311的解密步骤中,第一金钥互斥执行逻辑电路1321、S-BOX执行逻辑电路1323、移列执行逻辑电路1324以及混栏执行逻辑电路1326亦建构来执行其对应的逆向进阶加密标准子动作。任何熟习此技艺者可以了解中间回合的资料是回传至回合引擎1320中,根据此方式,特定的区块密码模式是由控制字符暂存器1302来指定。初始化向量资料(如有需要)是通过总线NEXTIN 1318传送至回合引擎1320中。
任何熟习此技艺者亦可了解,虽然中间模式执行逻辑电路1330根据进阶加密标准,以明确的架构来执行密码操作,而具体显示于区块加密执行逻辑电路1300中,但是,根据上述讨论的其他区块加密演算法,关于本发明大致相似的实施例,同样的可以完成中间结果的生成。
在图13所显示的实施例中,回合引擎1320是分成二个阶层:第一阶层是介于暂存-0 1322与暂存-1 1325之间;第二阶层是介于暂存-1 1325与暂存-2 1327之间。中间回合的资料是随着一时脉讯号(未示于图中),于二个阶层之间以管线作业的方式来同步操作。当一输入资料区块上的密码操作完成时,对应的输出资料会被存放于一对应的输出暂存器1307至1308中。一储存微指令的执行会使一指定的输出暂存器1307至1308的内容传送到一储存总线上(图中未示)。
现在请参阅图14所示,一流程图显示一根据本发明,于一中断事件的期间保存密码参数的状态的方法。当一指令的流程由根据本发明的微处理器来执行时,流程自区块1402开始。指令流程可以不必包括一密码指令。接下来流程进行到判定区块1404。
在判定区块1404中,具有一判断是否有一中断事件(例如可遮罩式的中断,非可遮罩式的中断,页面错误,工作切换等等)正在发生的评估,其中中断事件会切换原指令流程至另一指令流程(中断处理程式)以执行该中断事件。如果有一中断发生的话,接下来流程会进行到区块1406。如果没有中断发生的话,接下来流程会形成回圈持续在判定区块1404中进行,执行该指令电路直到有一中断事件发生为止。
在区块1406中,因为一中断事件的发生,在将程式控制转换成一对应的中断处理之前,根据本发明的中断执行逻辑电路,会清除一旗标暂存器中的X位。清除X位用来确保从中断处理跳回时,如果原本有一区块加密操作正在进行,就会指定一或多个中断事件已结束,且在继续对由输入指标暂存器内容所指示的输入资料区块,执行该区块加密操作之前,控制字符与金钥资料必须被重新载入。接下来流程进行到区块1408。
在区块1408中,关于一根据本发明的区块加密操作的执行,所有包括指标与计数器的结构式暂存器都储存于记忆体中。任何熟习此技艺者可以了解,结构式暂存器的储存一般是在将控制转换至中断处理之前,于现今的资料运算元件中完成。因此,本发明利用目前资料结构的这个概念,使整个中断事件的执行变得明朗化。在储存该暂存器之后,接下来流程进行到区块1410。
在区块1410中,程式流程是转换到中断处理上。接下来流程进行到区块1412。
在区块1412中,该方法已完成。任何熟习此技艺者可以了解图14中的方法,当由中断处理中跳回时该方法会在区块1402中再次的开始操作。
现在请参阅图15所示,一流程图是描绘一根据本发明,在出现至少一个中断事件的情况下,对至少一个输入资料区块执行一密码操作时,用于指定且产生一中间结果的方法。为了清楚起见,用来控制根据区块加密模式指定的密码操作的流程已省略,其中区块加密模式需要更新且储存区块之间等同初始化向量的参数(例如输出回授模式,加密回授模式);虽然那些其他的区块加密模式是通过该根据本发明的方法来了解。流程从区块1502开始,在区块1502中一根据本发明用来控制一密码操作的密码指令开始执行。密码指令的执行可以是第一个执行的动作,或者也可因为一中断事件的中断执行而接在一第一个执行动作之后,因此中断处理执行完后程式控制权又传回该加密指令上。接下来流程进行到区块1504。
在区块1504中,由一根据本发明的输入指标暂存器所指的记忆体中的资料区块,是由该记忆体中载入,且开始执行一指定的密码操作。在一实施例中,该指定的密码操作是根据进阶加密标准演算法来开始执行。接下来流程进行到判定区块1506。
在判定区块1506中,具有一判断旗标暂存器中的X位的值是否为“设定”的评估。如果该X位的值为“设定”,代表根据本发明载入至加密单元中的控制字符与金钥目录是有效的。如果X位的值为“清除”,则代表载入至加密单元中的控制字符与金钥目录是无效的。如上面依照图14所提及的,当一中断事件发生时,X位的值为“清除”。此外,如同上面所提到的,当需要载入一新的控制字符或金钥目录,或需要同时载入二者时,在传送密码指令之前,必须要有指令执行X位的清除。
如果有一中断发生的话,接下来流程会进行到区块1406。如果没有中断发生的话,接下来流程会形成回圈持续在判定区块1404中进行,执行该指令直到有一中断事件发生为止。在一使用x86旗标暂存器中第31个位(bit30)的x86相容的实施例中,可藉由执行POPFD指令,接着执行PUSHFD指令来清除X位。然而任何熟习此技艺者可以了解,在可替代的实施例中必须使用其他的指令来清除X位。如果X位的值为“设定”,接下来流程进行到判定区块1512。如果X位的值为“清除”,则接下来流程进行到判定区块1508。
在区块1508中,因为一清除的X位已指明有一中断事件发生或是要载入一新的控制字符及/或金钥资料,一控制字符是从记忆体中载入,且原本在区块1504中开始执行的密码操作会重新启动。在一实施例中,载入控制字符会停止密码单元执行如上所述(参考区块1504)指定的密码操作。在本实施例中,于区块1504中开始一密码操作,考虑到复数个区块加密操作的最佳化,可假设一正载入的控制字符与金钥资料是要被使用的,且电子密码本模式是最普遍使用于区块加密模式的,因此使用电子密码本模式来操作。接下来流程进行到区块1510。
在区块1510中,如区块1504中的输入文件是连同加密金钥资料一起再次被载入,且密码操作根据新载入的控制字符与金钥资料来开始执行。接下来流程进行到判定区块1512。
在判定区块1512中,侦测控制字符中的一中间结果栏位来判断对于该载入的输入区块是要产生一正常的结果或是要产生一中间结果。若是要产生一正常的结果,接下来流程进行到区块1516。若是要产生一中间结果,接下来流程进行到区块1514。
在区块1516中,会产生一对应该输入区块的输出区块。对于加密来说,该输入区块是一无加密文件区块且输出区块是对应的已加密文字区块。对于解密来说,该输入区块是一已加密文字区块且输出区块是对应的无加密文字区块。根据控制字符中一回合计数栏位的内容,一指定次数的加密回合是执行于输入区块上。然而取代一正常结果,一中间结果的产生已于之前讨论过了。接下来流程进行到区块1518。
在区块1514中,产生一对应于载入的输入区块的输出区块。根据控制字符中一回合计数栏位的内容,一指定次数的密码回合是执行于输入区块上。根据指定的密码演算法及区块加密模式,产生一正常的结果。接下来流程进行到区块1518。
在区块1518中,产生的输出区块是储存于记忆体中。接下来流程进行到区块1520。
在区块1520中,输入与输出区块指标暂存器的内容被改为指向下一个输入及输出区块。此外,区块计数暂存器的内容改为指示执行于目前的输入资料区块的密码操作已完成。在图15所讨论的实施例中,减少区块计数暂存器的值。然而任何熟习此技艺者可以了解,可替代的实施例考虑了区块计数暂存器内容的操作与测试,以容许同样的管线作业的方式来执行输入文件区块的密码操作。接下来流程进行到判定区块1522。
在判定区块1522中,具有一判断是否仍有输入资料区块要执行加密操作的评估。在此显示的实施例中,为突显目的,区块计数器被侦测其值是否为零。如果已经没有区块要执行密码操作,接下来流程进行到区块1526。如果仍有区块要执行密码操作,接下来流程进行到区块1524。
在区块1524中,如输入指标暂存器的内容所指,下一个输入资料区块会被载入。接下来流程进行到区块1512。
在区块1526中,该方法已完成。
虽然本发明及其目的、特征与优点已详细地描述,但其他的实施例可以同样地依据本发明来完成。举例来说,本发明已讨论根据x86相容的实施例。然而会以这样的方式来讨论是因为x86结构是普遍地被熟知,所以藉由此具体地说明本发明。然而本发明包括适用于其他指令集结构,如PowerPC、MIPS以及其他全新的指令集结构的实施例。
此外本发明包括在一运算系统的元件(而不在微处理器本身)中加密码操作的执行。举例来说,根据本发明的密码指令可以容易的应用于一加密单元实施例中,其中密码单元并非是操作部分电脑系统的集成电路(如一微处理器)的一部份。本发明这种的实施例预期为整合入微处理器周边的芯片组(例如南桥、北桥)中,或是当作执行密码操作的专用处理器,其中密码指令是从一微处理器指体传递下来到该专用处理器中。也考虑到了本发明适是用于嵌入式控制器、工业用控制器、讯号处理器、阵列处理器,及任何类似的用来处理资料的元件上。本发明亦包括一实施例,该实施例只有包括那些执行此处所述的密码操作的必要的元件。这样的元件实施例确实会提供一低成本、低功率消耗的选择来专门只执行密码操作,作为一通讯系统中的加密/解密处理器。为了清楚起见,本发明者将如上数的处理器般来讨论这些替代的处理元件。
此外,虽然本发明对128位的区块有加以描述过,另外也考虑到也可使用不同大小的区块,只要改变储存输入资料、输出资料、金钥及控制字符等的暂存器的大小即可。
再者,虽然本发明说明书中有特别突显资料加密标准演算法,三重资料加密标准演算法,及进阶加密标准演算法。本发明者指出本发明同样地亦包括较不广为人知的区块加密演算法的情况,例如MARS加密演算法(MARScipher)、Rijndael加密演算法(Rijndael cipher)、双鱼加密演算法(Twofish cipher)、Blowfish加密演算法(Blowfish cipher)、Serpent加密演算法(Serpent cipher),以及RC6加密演算法(RC6 cipher)。可以充分了解本发明是提供专用的区块加密装置及关于微处理器的理论,其中微区块加密动作可以由单一指令的执行来触发。
并且,虽然本发明对区块加密演算法及执行区块加密功能的技术有加以描述过,要注意的是本发明亦可以完全地涵盖区块加密以外的加密方式。可以观察到单一指令的提供,其中使用者可控制一相容的微处理器来执行加密或解密等密码操作,并且该微处理器包括一专用的密码单元,用以执行该单一指令电路所指示的密码功能。
另外,关于讨论的一提供二个阶层的装置的回合引擎,其中该装置可对二个输入资料区块进行管线作业的操作,本发明者指出其他增加的实施例考虑到了多于二个阶层的情况。有预期到将阶层分割以支援更多输入资料区块的管线作业,这样的方式可以同样的延伸到一相容的微处理机中其他的阶层上。
最后,虽然本发明以单一个支援复数个区块加密演算法的密码单元来具体讨论,然而本发明亦涵盖了于一相容的微处理器中提供复数个与其他执行单元平行连接的密码单元,其中每个密码单元是建构来执行特定的区块加密演算法。举例来说,第一个单元是建构来执行进阶加密标准演算法,第二个单元是建构来执行资料加密标准演算法,等等。
以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制,虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明,任何熟悉本专业的技术人员,在不脱离本发明技术方案范围内,当可利用上述揭示的方法及技术内容作出些许的更动或修饰为等同变化的等效实施例,但是凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与修饰,均仍属于本发明技术方案的范围内。

Claims (16)

1.一种执行密码操作的装置,其特征在于其包括:
一撷取执行逻辑电路,位于一微处理器中,用以接收一密码指令,该密码指令是为在该微处理器上所执行的指令流程的一部份,其中该密码指令指定复数个密码操作之一,并指定一种中间结果被产生;
一转译执行逻辑电路,耦合于该撷取执行逻辑电路,用于将该密码指令转译成一序列的微指令,该一序列的微指令指示该微处理器执行该密码操作;以及
一执行逻辑电路,有效连接至该转译执行逻辑电路,用以执行被指定的该密码操作,并且产生被指定的该中间结果,该执行逻辑电路包括:
一密码单元,用以在至少一个输入文字区块的每一个,执行复数个密码回合,藉以产生相对应的至少一个输出文字区块,其中该些密码回合是由该密码单元所提供的一控制字符的一回合计数栏位所指定。
2.根据权利要求1所述的装置,其特征在于其中被指定的该密码操作更进一步包括:
一加密操作,该加密操作包括至少加密至少一个明文区块,藉以产生至少一个相对应密文区块;以及
一解密操作,该解密操作包括解密至少一个密文区块,藉以产生至少一个相对应明文区块。
3.根据权利要求1所述的装置,其特征在于其中所述的用于产生中间结果的执行逻辑电路用以解译在由该密码指令提及的一控制字符内的一中间结果栏位。
4.根据权利要求3所述的装置,其特征在于其中所述的中间结果栏位指示所述的用于产生中间结果的执行逻辑电路以产生一正常结果或产生一中间结果。
5.根据权利要求1所述的装置,其特征在于其中所述的用于产生中间结果的执行逻辑电路用以解译在由该密码指令提及的一控制字符内的一回合计数栏位。
6.根据权利要求5所述的装置,其特征在于其中所述的回合计数栏位的数值指定复数个密码回合,在此该些密码回合是在执行被指定的该密码操作时,在一输入区块中被执行。
7.根据权利要求1所述的装置,其特征在于其中所述的密码指令参照该微处理器内至少一个以上的暂存器。
8.根据权利要求7所述的装置,其特征在于其中所述的至少一个以上的暂存器包括:
一第一暂存器,其中该第一暂存器的内容包括对应于一第一记忆地址的一第一指标,该第一记忆地址详细指明记忆体中的一第一位置,被指定的该密码操作是通过对应于该第一位置的至少一个输入文字区块的存取而完成。
9.根据权利要求7所述的装置,其特征在于其中所述的至少一个以上的暂存器更进一步包括:
一第二暂存器,其中该第二暂存器的内容包括对应于一第二记忆地址的一第二指标,该第二记忆地址详细指明该记忆体中的一第二位置,来储存至少一个以上相对应的输出文字区块,该输出文字区块产生是依据至少一个以上的输入文字区块完成被指定的该密码指令;
一第三暂存器,其中该第三暂存器的内容指出在至少一个以上的输入文字区块中的复数个文字区块;
一第四暂存器,其中该第四暂存器包括对应于一第三记忆地址的一第三指标,该第三记忆地址详细指明记忆体中的一第三位置,来存取密码金钥数据,以使用来完成被指定的该密码操作;
一第五暂存器,其中该第五暂存器包括对应于一第四记忆地址的一第四指标,该第四记忆地址详细指明记忆体中的一第四位置,该第四位置包括一最初向量位置,该最初向量位置对应的内容包括一最初向量或一最初向量等同物,用来完成被指定的该密码操作;以及
一第六暂存器,其中该第六暂存器包括对应于一第五记忆地址的一第五指标,该第五记忆地址指明记忆体中一第五位置,来存取一控制字符,以使用来完成被指定的该密码操作,其中该控制字符指定被指定的该密码操作的复数个密码参数,并包括:
一种中间结果栏位,用以指出一个正常结果或该中间结果是否为在被指定的该密码操作执行期间产生。
10.一种执行密码操作的装置,其特征在于其包括:
一种控制字符产生器,用以产生一控制字符,该控制字符是用以在执行至少一该密码操作期间内,指定一中间结果的产生;以及
一密码单元,其在一微处理器的执行逻辑单元中,用以在接收到一指令流内的一密码指令的时候执行被指定的一该密码操作,该指令流是为用来指定被指定的该密码操作的指令流程的一部份,并且该密码指令亦参照该控制字符,其中,该密码指令由该微处理器中的一撷取执行逻辑电路接收并由一转译执行逻辑电路转译成一序列的微指令,该一序列的微指令指示该微处理器执行该密码操作。
11.根据权利要求10所述的装置,其特征在于其中所述的控制字符储存于记忆体中,且该控制字符的一记忆位置是由被指定的该密码指令所参照的一暂存器的内容所指定。
12.根据权利要求10所述的装置,其特征在于其中所述的密码单元解译一种在该控制字符内的一中间结果栏位,以决定是否产生一正常结果或该中间结果。
13.根据权利要求10所述的装置,其特征在于其中所述的密码单元解译一种在该控制字符内的回合计数栏位,以决定在执行被指定的该密码操作期间,多少密码回合区块必需在一输入文字区块被执行。
14.一种在微处理器中执行密码操作的方法,其特征在于该方法包括以下步骤:
由一记忆体中撷取一密码指令,指定在执行被指定的密码操作期间,产生一中间结果;以及
接收该密码指令并将该密码指令转译成一序列的微指令,该一序列的微指令指示该微处理器执行该密码操作,且由位于该微处理器的执行逻辑单元中的密码单元在执行被指定的该密码操作时产生该中间结果。
15.根据权利要求14所述的方法,其特征在于其中所述的指定步骤包括:
经由该密码指令所参照的一控制字符内的第一栏位,具体指出是否产生一个正常结果或者产生该中间结果。
16.根据权利要求14所述的方法,其特征在于其中所述的指定步骤包括:
经由在该密码指令所参照的一控制字符内的一第二栏位,指出在输入文字的一区块中执行被指定的密码操作期间,有多少个密码回合被执行。
CN2005100511807A 2004-04-16 2005-03-02 提供可建构式加密区块加密效果的微处理装置及方法 Active CN1684408B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/826,435 US7502943B2 (en) 2003-04-18 2004-04-16 Microprocessor apparatus and method for providing configurable cryptographic block cipher round results
US10/826,435 2004-04-16

Publications (2)

Publication Number Publication Date
CN1684408A CN1684408A (zh) 2005-10-19
CN1684408B true CN1684408B (zh) 2010-06-23

Family

ID=35263552

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2005100511807A Active CN1684408B (zh) 2004-04-16 2005-03-02 提供可建构式加密区块加密效果的微处理装置及方法

Country Status (2)

Country Link
CN (1) CN1684408B (zh)
TW (1) TWI258289B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109583238B (zh) * 2018-11-29 2023-03-28 中国电子科技集团公司第四十七研究所 流水线指令流加解密方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
曹华平,罗守山,温巧燕,杨义先.AES算法轮密钥与种子密钥之间的关系研究.北京邮电大学学报25 4.2002,25(4),47-50.
曹华平,罗守山,温巧燕,杨义先.AES算法轮密钥与种子密钥之间的关系研究.北京邮电大学学报25 4.2002,25(4),47-50. *

Also Published As

Publication number Publication date
CN1684408A (zh) 2005-10-19
TW200536334A (en) 2005-11-01
TWI258289B (en) 2006-07-11

Similar Documents

Publication Publication Date Title
CN1655496B (zh) 产生密码钥匙排程的装置及方法
JP4684550B2 (ja) 多数の動作モードを支援する暗号化装置
US7321910B2 (en) Microprocessor apparatus and method for performing block cipher cryptographic functions
US7532722B2 (en) Apparatus and method for performing transparent block cipher cryptographic functions
US7844053B2 (en) Microprocessor apparatus and method for performing block cipher cryptographic functions
US8060755B2 (en) Apparatus and method for providing user-generated key schedule in a microprocessor cryptographic engine
US7502943B2 (en) Microprocessor apparatus and method for providing configurable cryptographic block cipher round results
US7536560B2 (en) Microprocessor apparatus and method for providing configurable cryptographic key size
US7529368B2 (en) Apparatus and method for performing transparent output feedback mode cryptographic functions
CN100391145C (zh) 重组透明化区块密码编译方法及装置
US7900055B2 (en) Microprocessor apparatus and method for employing configurable block cipher cryptographic algorithms
CN1661958B (zh) 区块密码功能的微处理器及方法
US7542566B2 (en) Apparatus and method for performing transparent cipher block chaining mode cryptographic functions
CN1684408B (zh) 提供可建构式加密区块加密效果的微处理装置及方法
US7519833B2 (en) Microprocessor apparatus and method for enabling configurable data block size in a cryptographic engine
CN1658548B (zh) 配置密码引擎资料区块的微处理器及方法
CN100539495C (zh) 可设定密码金钥大小的微处理器装置及方法
CN1332526C (zh) 微处理器区块密码编译方法与装置
CN1652163B (zh) 执行通透性输出反馈模式密码功能的方法及装置
US7529367B2 (en) Apparatus and method for performing transparent cipher feedback mode cryptographic functions
CN100527664C (zh) 具最佳化区块密码功能的微处理器及方法
CN1649296A (zh) 执行透明化密码区块串行模式密码运算的装置及方法
CN101872297B (zh) 微处理器及限制存取的方法
Anitha Kumari et al. Implementation of Present Cipher on FPGA for IoT Applications
TW200536335A (en) Apparatus and method for performing transparent cipher feedback mode cryptographic functions

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant