密码编译码装置的制作方法

文档序号:7660062阅读:199来源:国知局
专利名称:密码编译码装置的制作方法
技术领域
此发明关联于密码系统(cryptosystems),特别是一种应用以多字节为基础的密码系统的编译码装置。
背景技术
于密码学中,RC4(或可称为ARC4)是一种广泛使用的软件串流密码,并且应用于常见的通讯协议中,例如SSL(SecureSockets Layer)与WEP等,用以确保因特网传输或无线网络传输的安全性。然而,已知的RC4技术一次只能处理一个字节的数据,降低了加解密过程的效率。

发明内容
有鉴于此,需要一种应用以多字节为基础的密码系统的编译码装置,用以提升加解密过程的效率。
本发明提供一种密码编译码装置,包括钥匙暂存器;偶字节存储器;奇字节存储器;数据读取单元;运算单元;交换位置决定单元;以及数据交换单元。数据读取单元耦接于钥匙暂存器、偶字节存储器与奇字节存储器,从钥匙暂存器读取第一与第二钥匙数据,同时从偶字节存储器读取第一地址的数据值,以及从奇字节存储器读取第二地址的数据值。运算单元耦接于数据读取单元,使用第一与第二钥匙数据,以及第一与第二地址的数据值来计算出第一、第二与第三中间运算值。交换位置决定单元通过使用第一与第二地址,以及第一与第二中间运算值间是否符合多个比较规则的比较结果,由多个交换模式中决定出一个交换模式,交换模式是用以指示第一、第二地址与第一、第二、第三中间运算值所代表地址中的数据值间的替换关系。数据交换单元,耦接于交换位置决定单元,依据决定的交换模式选择性地交换第一与第二地址的数据值以及第一、第二与第三中间运算值所代表的地址中的数据值。
本发明所述的密码编译码装置,可提升加解密过程的效率。


图1是表示依据本发明实施例的应用以多字节为基础的密码系统的网络架构示意图;图2为依据本发明实施例的应用以多字节为基础的密码系统的编码器或译码器的硬件架构示意图;图3A是传统的应用以单字节为基础的密码系统的存储器的初始状态示意图;图3B是依据本发明实施例的应用以多字节为基础的密码系统的偶字节存储器与奇字节存储器的初始状态示意图;图4A与图4B是表示依据本发明实施例的比较条件及交换模式对照图;图5A至图5F表示范例的交换模式示意图;图6是表示依据本发明实施例的一般性存取时序图;图7A是依据本发明实施例的加密示意图;图7B是依据本发明实施例的解密示意图。
具体实施例方式
图1表示依据本发明实施例的应用以多字节为基础的密码系统的网络架构示意图。于较佳的情况下,此网络架构包括编码器110与译码器130。其中,编码器110与译码器130间可以实体连线(wired-connection)、无线或混合实体连线与无线的方式彼此连接。而本领域技术人员皆了解编码器110与译码器130间的连结也许须透过多个中介节点,例如,无线接取点(accesspoint)、基站(base station)、集线器(hub)、桥接器(bridge)、路由器(router)或其他用以处理网络通讯的中介节点。编码器110于将数据串流D传送到网络前,先使用以多字节为基础的密码系统处理数据串流D而成为编码后的数据串流D’,接着将编码后的数据串流D’透过网络传送到译码器130,避免数据于网络中被截听。译码器130于接收到编码后的数据串流D’后,使用以多字节为基础的密码系统进行译码,以取得原始的数据串流D。
图2为依据本发明实施例的应用以多字节为基础的密码系统的编码器110或译码器130的硬件架构示意图。编码器110或译码器130包括钥匙暂存器(key register)210、偶字节存储器(evenbytes memory)231、奇字节存储器(odd bytes memory)233与运算结果暂存器270,用以储存于加/解密过程中产生加/解密值的所需数据。钥匙暂存器210储存256字节(bytes)的数据,以Key
表示,此数据由使用者或应用软件输入。偶字节存储器231与奇字节存储器233分别为一种双端口存储器(dualport memory),拥有两对地址线与数据线,可用以同时写入两笔数据,同时读取两笔数据或同时写入一笔数据以及读取一笔数据。为对照本发明与已知技术间的差别,图3A是传统的存储器300的初始状态示意图,其中,地址0至255分别依序储存0至255的值。图3B是依据本发明实施例的应用以多字节为基础的密码系统的偶字节存储器231与奇字节存储器233的初始状态示意图。其中,偶字节存储器231的地址0至127分别依序储存0至254的偶数值。其中,奇字节存储器231的地址0至127分别依序储存1至255的奇数值。因此,可通过同时传送相同的地址至偶字节存储器231与奇字节存储器233,用以一次取得两笔一字节(亦即是八位)的数据。运算结果暂存器270用以储存产生加/解密值的中间运算值,以b0、b1、b2表示,详细的中间运算值的产生过程可参考后续段落的描述。
编码器110或译码器130另包括产生加/解密值产生单元250与编码单元290。加/解密值产生单元250包括数据读取单元251、运算单元253、交换位置决定单元255与数据交换单元257,用以产生加/解密值。编码单元290则使用产生的加/解密值对输入的数据串流进行加密或解密。加/解密值产生单元250用以依序产生对应于Key
的加/解密值。相较于先前的技术,加/解密值产生单元250一次产生Key
中的两个相邻的加/解密值,详细说明如下。数据读取单元251由钥匙暂存器210中一次读取出两个相邻字节的数据,命名为Key[x]与Key[x+1],并且分别从偶字节存储器231及奇字节存储器233读取地址为x/2的一字节的数据,命名为S[x]与S[x+1],并且将读取结果传送给运算单元253。接着,运算单元253依据由数据读取单元251所传送来的数据,计算出产生加/解密值的中间运算值b0、b1与b2,b0代表欲与偶字节存储器231中的地址INT(x/2)交换的逻辑地址,b1与b2中的一个代表欲与奇字节存储器233中的地址INT((x+1)/2)交换的逻辑地址,其中,INT()代表取整数的函数。产生中间运算值的三个公式如下所示(1)b0=(b+S[x]+Key[x])MOD256;(2)b1=(b+S[x]+Key[x]+S[x+1]+Key[x+1])MOD256;以及(3)b2=(b+S[x]+Key[x]+S[x]+Key[x+1])MOD256,其中b代表前一次所产生的最后一个加/解密值所在的逻辑地址(亦即是前一次的b1或b2当做初始值)。运算单元253将计算出的中间运算值b0、b1与b2储存至运算结果暂存器270中。
交换位置决定单元255由数据读取单元取得x与x+1的值,并且由运算结果暂存器中取得中间运算值b0、b1与b2,并且使用比较电路,依据五个比较条件所产生的比较结果,由十个交换模式中决定出一个交换模式。图4A与图4B是表示依据本发明实施例的比较条件及交换模式对照图,其中每个模式(亦即是每一个横列)包括比较结果P41、交换结果P43与存取时序P45等三部分。五个比较条件如下所示(1)b0==x+1;(2)b0==x;(3)b1==x+1;(4)b1==x;以及(5)b1==b0。
交换位置决定单元255依据x、x+1、b0与b1间的五个比较条件的比较结果,从十个交换模式中决定一个交换模式,如P43所示。
举例来说,图5A至图5F是表示范例的交换模式示意图。当交换位置决定单元255侦测到以上五个条件皆不符合时,决定如图5A的交换模式C41,此模式是将地址S[x]中的值与S[b0]中的值交换,并且将地址S[x+1]中的值与S[b1]中的值交换。接着,将这两组交换的信息输出到编码单元290,以利产生两个相邻字节数据的加/解密值。此外,亦将这两组交换的信息输出到数据交换单元257,使数据交换单元257于偶字节存储器231及奇字节存储器233中进行如图5A所示的数据交换。图6是表示依据本发明实施例的一般性存取时序图,于任意相邻两个字节与其对应的中间运算值所代表地址间的数据交换,使用三个半时钟周期(clock cycles)完成。于时钟周期T0的上升沿(rising edge)读取偶字节存储器231中的地址INT(x/2)与奇字节存储器233中的地址INT((x+1)/2)的值。于时钟周期T1的上升沿读取运算结果暂存器270中的中间运算值b0与b1。并且,使用时钟周期T1、T2与下一个时钟周期T0的下降沿(falling edges)写入数据于偶字节存储器231中的地址INT(x/2)、奇字节存储器233中的地址INT((x+1)/2)、偶字节存储器231与奇字节存储器233中的相应于逻辑地址b0、b1/b2中,用以达成数据交换的目的。于此须注意的是,以逻辑地址b0为例,当写数据至逻辑地址b0中时,需要先判断其为奇数或偶数,当奇数时则写入数据至奇字节存储器233的地址INT(b0/2)中,当偶数时则写入数据至偶字节存储器231的地址INT(b0/2)中。先前的技术于每三个时钟周期中,只能进行一个字节的数据交换。所以,本发明实施例所揭示的技术可有效地缩短加/解密的时间。交换模式C41的存取时序参考列C41中的P43所示。
此外,当交换位置决定单元255侦测到b0与b1相同时,决定如图5B的交换模式C42。接着,将这两组交换的信息输出到编码单元290,以利产生两个相邻字节数据的加/解密值。此外,交换位置决定单元255将地址S[x]中的值替换为地址S[b0]中的值、地址S[b0]中的值替换为地址S[x+1]中的值、以及地址S[x+1]中的值替换为地址S[x]中的值等信息输出到数据交换单元257,使数据交换单元257于偶字节存储器231及奇字节存储器233中进行如图5B所示的数据交换。交换模式C42的存取时序参考列C42中的P43所示。
此外,当交换位置决定单元255侦测到b1与x相同时,决定如图5C的交换模式C43。当交换位置决定单元255侦测到b0与x+1相同时,决定如图5D的交换模式C44。当交换位置决定单元255侦测到b0与x+1且b1与x相同时,决定如图5E的交换模式C45。当交换位置决定单元255侦测到b0与x+1、b1与x+1且b1与b0相同时,决定如图5F的交换模式C46。以上十个模式的最后交换结果以及存取时序的详细内容,可分别参考图4A与图4B中的交换结果部分P44以及存取时序部分P45。
当编码单元290接收到任一组的交换信息时,将欲交换的两地址中的值相加后除以256,并计算出相除之后的余数,接着,把此余数当作地址,取出此地址中的值当作加/解密值,最后,将数据串流中的一字节的数据与加/解密值进行异或(exclusiveOR,XOR)运算,以产生加/解密后的数据。图7A是依据本发明实施例的加密示意图,编码器110中的编码单元290将S[x]与S[b0]相加后除以256,之后,计算出相除之后的余数,接着,把此余数当作地址,取出此地址中的值当作加密值K。最后,将数据串流中的一字节的数据D与加密值K进行异或运算,以产生加密后的数据D’。图7B是依据本发明实施例的解密示意图,当译码器130中的编码单元290使用与图7A中相同S[x]与S[b0]时,即可计算出相同的值K当作解密值。最后,将加密后的数据串流中的一字节的数据D’与解密值K进行异或运算后,便可还原回数据D。
针对特定的系统元件,说明书及权利要求书中会使用特定的术语来为其命名。本领域技术人员皆了解,消费电子设备的制造者也许会使用不同的命名来称呼内容中所对应的系统元件。此文件并不欲以不同的名称来区别元件间的不同,而是使用不同的功能描述来进行区别。
以上所述仅为本发明较佳实施例,然其并非用以限定本发明的范围,任何熟悉本项技术的人员,在不脱离本发明的精神和范围内,可在此基础上做进一步的改进和变化,因此本发明的保护范围当以本申请的权利要求书所界定的范围为准。
附图中符号的简单说明如下110编码器130译码器D数据串流D’编码后的数据串流210钥匙暂存器231偶字节存储器233奇字节存储器250产生加/解密值产生单元251数据读取单元253运算单元255交换位置决定单元257数据交换单元270运算结果暂存器290编码单元300存储器P41比较结果部分P43交换结果部分P45存取时序部分C41、C42、C43、C44、C45、C46交换模式x、x+1地址b0、b1、b2中间运算值(亦代表地址)T0、T1、T2、NextT0时钟周期S[x]地址x中的值S[b0]地址b0中的值
权利要求
1.一种密码编译码装置,其特征在于,包括一钥匙暂存器;一偶字节存储器;一奇字节存储器;一数据读取单元,耦接于上述钥匙暂存器、上述偶字节存储器与上述奇字节存储器,从上述钥匙暂存器读取一第一钥匙数据与一第二钥匙数据,同时从上述偶字节存储器读取一第一地址的数据值,以及从上述奇字节存储器读取一第二地址的数据值;一运算单元,耦接于上述数据读取单元,使用上述第一钥匙数据与上述第二钥匙数据,以及上述第一地址的数据值与上述第二地址的数据值来计算出一第一中间运算值、一第二中间运算值与一第三中间运算值;一交换位置决定单元,通过使用上述第一地址与上述第二地址,以及上述第一中间运算值与上述第二中间运算值间是否符合多个比较规则的比较结果,由多个交换模式中决定出一交换模式,上述交换模式是用以指示上述第一地址、第二地址与上述第一中间运算值、第二中间运算值、第三中间运算值所代表地址中的数据值间的替换关系;以及一数据交换单元,耦接于上述交换位置决定单元,依据上述决定的交换模式选择性地交换上述第一地址的数据值与上述第二地址的数据值以及上述第一中间运算值、上述第二中间运算值与上述第三中间运算值所代表的地址中的数据值。
2.根据权利要求1所述的密码编译码装置,其特征在于,更包括一运算结果暂存器,其中上述运算单元耦接于上述运算结果暂存器,以及储存上述第一中间运算值、第二中间运算值与第三中间运算值于上述运算结果暂存器中。
3.根据权利要求2所述的密码编译码装置,其特征在于,上述交换位置决定单元耦接于上述数据读取单元与上述运算结果暂存器。
4.根据权利要求1所述的密码编译码装置,其特征在于,更包括一编码单元,上述编码单元耦接于上述交换位置决定单元,依据上述第一地址的数据值与上述第二地址的数据值,以及上述第一中间运算值、上述第二中间运算值与上述第三中间运算值,决定出一第一加/解密值与一第二加/解密值,使用上述第一加/解密值与输入的一位串流中的一第一字节数据进行异或运算以产生上述位串流中的一第一加/解密后的数据,使用上述第二加/解密值与输入的一位串流中的一第二字节数据进行异或运算以产生上述位串流中的一第二加/解密后的数据,其中上述位串流中的上述第二字节数据紧接于上述第一字节数据之后。
5.根据权利要求1所述的密码编译码装置,其特征在于,上述第一中间运算值、上述第二中间运算值与上述第三中间运算值的计算使用以下公式计算b0=(b+S[x]+Key[x])MOD256;b1=(b+S[x]+Key[x]+S[x+1]+Key[x+1])MOD256;以及b2=(b+S[x]+Key[x]+S[x]+Key[x+1])MOD256,其中b0代表上述第一中间运算值,b1代表上述第二中间运算值,b2代表上述第三中间运算值,b代表一初始值,s[x]代表上述第一地址的数据值,S[x+1]代表上述第二地址的数据值,Key[x]代表上述第一钥匙数据,Key[x+1]代表上述第二钥匙数据。
6.根据权利要求1所述的密码编译码装置,其特征在于,上述比较规则以下列公式表示b0==x+1;b0==x;b1==x+1;b1==x;以及b1==b0,其中b0代表上述第一中间运算值,b1代表上述第二中间运算值,x代表上述第一地址,x+1代表上述第二地址。
7.根据权利要求6所述的密码编译码装置,其特征在于,决定交换模式的条件以下列规则表示当完全不满足上述比较规则时,上述第一地址的数据值与上述第一中间运算值所代表地址的数据值交换,以及上述第二地址的数据值与上述第二中间运算值所代表地址的数据值交换;当满足b1==b0时,上述第一地址的数据值替换成上述第一中间运算值所代表地址的数据值,上述第一中间运算值所代表地址的数据值替换成上述第二地址的数据值,以及上述第二地址的数据值替换成上述第一地址的数据值;当满足b1==x时,上述第一地址的数据值替换成上述第二地址的数据值,上述第一中间运算值所代表地址的数据值替换成上述第一地址的数据值,以及上述第二地址的数据值替换成上述第一中间运算值所代表地址的数据值;当满足b1==x+1时,上述第一地址的数据值替换成上述第一中间运算值所代表地址的数据值,以及上述第一中间运算值所代表地址的数据值替换成上述第一地址的数据值;当满足b0==x时,上述第二地址的数据值替换成上述第二中间运算值所代表地址的数据值,以及上述第二中间运算值所代表地址的数据值替换成上述第二地址的数据值;当同时满足b0==x,b1==x与b1==b0时,上述第一地址的数据值替换成上述第二地址的数据值,以及上述第二地址的数据值替换成上述第一地址的数据值;当同时满足b0==x与b1==x+1时,不进行交换;当满足b0==x+1时,上述第一地址的数据值替换成上述第二地址的数据值,上述第二地址的数据值替换成上述第三中间运算值所代表地址的数据值,以及上述第三中间运算值所代表地址的数据值替换成上述第一地址的数据值;当同时满足b0==x+1与b1==x时,不进行交换;以及当同时满足b0==x+1,b1==x+1与b1==b0时,上述第一地址的数据值替换成上述第二地址的数据值,以及上述第二地址的数据值替换成上述第一地址的数据值。
8.根据权利要求1所述的密码编译码装置,其特征在于,上述偶字节存储器与上述奇字节存储器分别是一双端口存储器。
9.根据权利要求8所述的密码编译码装置,其特征在于,上述双端口存储器可同时读取两笔数据,写入两笔数据或读取及写入一笔数据。
全文摘要
本发明提供一种密码编译码装置,特别涉及一种应用以多字节为基础的密码系统的编译码方法,由电子装置来执行,包括下列步骤。读取第一与第二钥匙数据,及同时读取第一与第二地址的数据值。使用第一与第二钥匙数据,及第一与第二地址的数据值来计算出第一、第二与第三中间运算值。通过使用第一与第二地址及第一与第二中间运算值间是否符合多个比较规则的比较结果,由多个交换模式中决定出一个交换模式。交换模式用以指示第一、第二地址与第一、第二、第三中间运算值所代表地址中的数据值间替换关系。依据决定的交换模式选择性地交换第一与第二地址的数据值及第一、第二与第三中间运算值所代表地址中的数据值。本发明可提升加解密过程的效率。
文档编号H04L9/06GK101093627SQ20071014327
公开日2007年12月26日 申请日期2007年8月7日 优先权日2007年8月7日
发明者郭宏益 申请人:威盛电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1