CN101093627B - 密码编译码装置 - Google Patents

密码编译码装置 Download PDF

Info

Publication number
CN101093627B
CN101093627B CN2007101432727A CN200710143272A CN101093627B CN 101093627 B CN101093627 B CN 101093627B CN 2007101432727 A CN2007101432727 A CN 2007101432727A CN 200710143272 A CN200710143272 A CN 200710143272A CN 101093627 B CN101093627 B CN 101093627B
Authority
CN
China
Prior art keywords
mentioned
address
value
data
data value
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
CN2007101432727A
Other languages
English (en)
Other versions
CN101093627A (zh
Inventor
郭宏益
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
Application filed by Via Technologies Inc filed Critical Via Technologies Inc
Priority to CN2007101432727A priority Critical patent/CN101093627B/zh
Publication of CN101093627A publication Critical patent/CN101093627A/zh
Application granted granted Critical
Publication of CN101093627B publication Critical patent/CN101093627B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Storage Device Security (AREA)

Abstract

一种密码编译码装置,特别涉及以多字节为基础的密码系统的编译码方法,包括:读取第一、二钥匙数据及同时读取第一、二地址的数据值。使用第一、二钥匙数据及第一、二地址的数据值来计算出第一、二、三中间运算值。通过使用第一、二地址及第一、二中间运算值间是否符合多个比较规则的比较结果,由多个交换模式中决定出一个交换模式。交换模式用以指示第一、二地址与第一、二、三中间运算值所代表地址中的数据值间替换关系。依据决定的交换模式选择性地交换第一、二地址的数据值及第一、二、三中间运算值所代表地址中的数据值。依据第一、二地址的数据值及第一、二、三中间运算值决定出第一、二加/解密值。本发明可提升加解密过程的效率。

Description

密码编译码装置
技术领域
此发明关联于密码系统(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[0..255]表示,此数据由使用者或应用软件输入。偶字节存储器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[0..255]的加/解密值。相较于先前的技术,加/解密值产生单元250一次产生Key[0..255]中的两个相邻的加/解密值,详细说明如下。数据读取单元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中的值

Claims (9)

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所述的密码编译码装置,其特征在于,上述双端口存储器能够同时读取两笔数据,写入两笔数据或读取及写入一笔数据。
CN2007101432727A 2007-08-07 2007-08-07 密码编译码装置 Active CN101093627B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2007101432727A CN101093627B (zh) 2007-08-07 2007-08-07 密码编译码装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2007101432727A CN101093627B (zh) 2007-08-07 2007-08-07 密码编译码装置

Publications (2)

Publication Number Publication Date
CN101093627A CN101093627A (zh) 2007-12-26
CN101093627B true CN101093627B (zh) 2010-06-23

Family

ID=38991862

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2007101432727A Active CN101093627B (zh) 2007-08-07 2007-08-07 密码编译码装置

Country Status (1)

Country Link
CN (1) CN101093627B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106031079B (zh) * 2013-12-20 2019-10-11 皇家飞利浦有限公司 加密算法中的运算符提升

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1143437A (zh) * 1994-03-14 1997-02-19 威廉·Y·肖 密钥可变的加密系统
CN1299201A (zh) * 2000-12-20 2001-06-13 华中科技大学 一种用于信息安全的加/解密系统
CN1133297C (zh) * 1995-09-26 2003-12-31 林仙坎 一种文件加密处理方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1143437A (zh) * 1994-03-14 1997-02-19 威廉·Y·肖 密钥可变的加密系统
CN1133297C (zh) * 1995-09-26 2003-12-31 林仙坎 一种文件加密处理方法
CN1299201A (zh) * 2000-12-20 2001-06-13 华中科技大学 一种用于信息安全的加/解密系统

Also Published As

Publication number Publication date
CN101093627A (zh) 2007-12-26

Similar Documents

Publication Publication Date Title
CN108073353B (zh) 一种数据处理的方法及装置
CN101753292B (zh) 用于链接式加密模式的方法和设备
JP4486680B2 (ja) Rc4暗号化を実行するための装置および方法
Karthigaikumar et al. Simulation of image encryption using AES algorithm
US20020027988A1 (en) Cryptographic accelerator
JPH1075240A (ja) データ送信を保護する方法およびデータを暗号化または解読化する装置
US20060078108A1 (en) Hardware-based encryption/decryption employing dual ported memory and fast table initialization
CN111866018B (zh) 数据信息加密发送方法、装置、计算机设备及存储介质
CN109981249B (zh) 基于拉链式动态散列和nlfsr的加密解密方法及装置
JP2011512562A (ja) アクセス及び通信に関するデータのランダム暗号化及び復号化方法
CN113660620B (zh) 一种数据防伪加密方法、装置、计算机设备及存储介质
Joshy et al. Text to image encryption technique using RGB substitution and AES
CN1032039C (zh) 用于数字蜂窝式通信的加密系统
RU2459367C2 (ru) Способ формирования переменного ключа для блочного шифрования и передачи шифрованных данных
CN112287333A (zh) 一种轻量级可调分组密码实现方法、系统、电子设备以及可读存储介质
CN101093627B (zh) 密码编译码装置
Misra et al. A New Encryption/Decryption Approach Using AES
CN101882991B (zh) 基于分组密码算法的通讯数据流加密方法
Mohan et al. Revised aes and its modes of operation
CN110071927B (zh) 一种信息加密方法、系统及相关组件
RU2738321C1 (ru) Способ криптографического преобразования и устройство для его осуществления
JP2004004603A (ja) 拡大鍵生成装置、暗号化装置および暗号化システム
CN101534191A (zh) 一文一密的动态加密方法
JP5578422B2 (ja) 暗号化通信システム、送信装置、受信装置、暗号化/復号化方法およびそれらのプログラム
KR100494560B1 (ko) Rijndael암호를 이용한 블록 데이터 실시간암호복호화 장치 및 방법

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