数据编码系统及方法

文档序号:7598772阅读:314来源:国知局
专利名称:数据编码系统及方法
技术领域
本发明是有关于一种数据保护机制,且特别有关于一种可以随机产生钥匙以进行编码的数据编码系统及方法。
背景技术
随着数字化时代的来临,藉由计算机与网络进行的相关应用亦已逐渐被使用者接受。举例来说,使用者可以透过计算机对于远程的数字数据进行认证与授权使用、以及进行网络交易等。伴随着网络的便利性,相关数据,如认证数据的保密机制等问题也成为重要且必须优先解决的课题之一。
对于现有技术而言,认证数据可以透过硬件或软件方式利用固定钥匙或非固定钥匙加密来进行保护。举例来说,在认证资料传送给服务提供者之前,认证资料可以依据公开金钥密码技术(Public Key Cryptography)进行编码,而当服务提供者接收到编码后的认证数据时,再依据公开金钥密码技术将认证数据译码,并进行识别,以进行使用者的身份认证。
对于现有技术而言,若采用硬件方式对于认证数据进行加密,必须增加额外的装置成本。另外,由于认证数据通常是存放于可携式装置中,受限于可携式装置的体积,亦增加装置设计难度。另一方面,若以固定钥匙来加密认证数据,加密相同的认证数据容易产生相同的密文,亦容易被利用简单的测录、重送的模拟机制来伪装成储存认证数据的储存装置。此外,若以非固定钥匙加密认证数据,必须使用搜寻钥匙数据库(Key Data Base)档案的方式产生非固定钥匙,则将面临数据库所在的档案有被窃取的可能。另外,以非固定钥匙加密认证数据,需要利用钥匙发送(Key Distribution)使联机两端为相同的钥匙,亦会面临钥匙发送时会遭测录的问题。

发明内容
有鉴于此,本发明的主要目的为提供一种可以随机产生钥匙以进行编码的数据编码系统及方法。
为了达成上述目的,本发明提供一种数据编码系统及方法。本发明实施例的数据编码系统,包括具有一数据D与一加/解密模块的储存装置。加/解密模块依据储存装置上相应一特定操作的发生时间或于两次发生的间隔时间随机产生一装置端钥匙种子Sd,并将装置端钥匙种子Sd与一主机端产生的种子应用于数据D的编码上。
数据编码系统更包括一主机端,用以接收由储存装置传送的装置端钥匙种子Sd。主机端更产生一主机端钥匙种子Sh,并依据装置端钥匙种子Sd产生一第一钥匙Kn,且依据第一钥匙Kn对于主机端钥匙种子Sh进行编码,并将编码后的主机端钥匙种子Kn(Sh)传送至储存装置。储存装置更依据装置端钥匙种子Sd产生第一钥匙Kn,并依据第一钥匙Kn译码编码后的主机端钥匙种子Kn(Sh),从而得到主机端钥匙种子Sh。储存装置更依据主机端钥匙种子Sh与装置端钥匙种子Sd产生一第二钥匙Kn+1,且依据第二钥匙Kn+1对于数据D进行编码。
主机端更接收由储存装置传送的数据Kn+1(D),且依据主机端钥匙种子Sh与装置端钥匙种子Sd产生第二钥匙Kn+1,并依据第二钥匙Kn+1对于编码过的数据Kn+1(D)进行译码,从而得到数据D。
其中,特定操作是于储存装置上所接收,且相应通用序列总线定义的控制型传输,或一般数据传输。控制型传输包括获取状态、清除特征、设定特征、设定地址、获取描述元、设定描述元、获取组态、设定组态、获取接口、设定接口、或同步讯框。
其中,主机端钥匙种子需为一可随机产生且不易被预测及修改的种子,并不限定其产生方法,系统可根据主机端的运算能力采用运算需求高的复杂算法,或运算需求低的只依据一应用软件开始执行至接收到装置端钥匙种子Sd的时间来产生主机端钥匙种子Sh。
本发明实施例的数据编码方法,首先,依据一储存装置上相应一特定操作的发生时间或于两次发生的间隔时间随机产生一装置端钥匙种子Sd。之后,依据装置端钥匙种子Sd对于储存装置上的一数据D进行编码。
本发明方法更包括于储存装置将装置端钥匙种子Sd传送至一主机端。之后,于主机端产生一主机端钥匙种子Sh,依据装置端钥匙种子Sd产生一第一钥匙Kn,且依据第一钥匙Kn对于主机端钥匙种子Sh进行编码,并将编码后的主机端钥匙种子Kn(Sh)传送至储存装置。当储存装置接收到编码后的主机端钥匙种子Kn(Sh)时,依据装置端钥匙种子Sd产生第一钥匙Kn,并依据第一钥匙Kn译码编码后的主机端钥匙种子Kn(Sh),从而得到主机端钥匙种子Sh。之后,依据主机端钥匙种子Sh与装置端钥匙种子Sd产生一第二钥匙Kn+1,且依据第二钥匙Kn+1对于数据D进行编码。
本发明方法更包括于储存装置将编码过的数据Kn+1(D)传送至主机端。主机端依据主机端钥匙种子Sh与装置端钥匙种子Sd产生第二钥匙Kn+1,且依据第二钥匙Kn+1对于编码过的数据Kn+1(D)进行译码,从而得到数据D。
其中,特定操作是于储存装置上所接收,且相应通用序列总线定义的控制型传输,或一般数据传输。控制型传输包括获取状态、清除特征、设定特征、设定地址、获取描述元、设定描述元、获取组态、设定组态、获取接口、设定接口、或同步讯框。
其中,主机端是钥匙种子需为一可随机产生且不易被预测及修改的种子,并不限定其产生方法,系统可根据主机端的运算能力采用运算需求高的复杂算法或运算需求低至只依据一应用软件开始执行至接收到装置端钥匙种子Sd的时间产生主机端钥匙种子Sh。
本发明上述方法可以透过程序代码方式收录于实体媒体中。当程序代码被机器加载且执行时,机器变成用以实行本发明的装置。


图1为一示意图是显示依据本发明实施例的数据编码系统的系统架构。
图2为一流程图是显示依据本发明实施例的数据编码方法的操作流程。
符号说明100~数据编码系统;110~主机端;111~加/解密模块;120~储存装置;121~加/解密模块;122~数据;130~信道;S201、S202、…、S214~操作步骤。
具体实施例方式
为使本发明的上述目的、特征和优点能更明显易懂,下文特举实施例,并配合所附图示,详细说明如下。
图1为一示意图是显示依据本发明实施例的数据编码系统的系统架构。
依据本发明实施例的数据编码系统100包括一主机端110与一储存装置120。储存装置120可以透过一信道130,如通用序列总线(Universal SerialBus,USB)传输管线与主机端110进行耦接。主机端110可以是个人计算机、电子书包、行动装置,如个人数字助理(PDA)、或是其它以处理器为基础的装置。主机端110包括一加/解密模块111,用以产生相关主机端钥匙种子、钥匙、以及对于数据进行相关加解密作业。储存装置120可以是行动装置,如行动电话、通用序列总线随身碟、或语言学习机等。储存装置120至少包括一加/解密模块121与一在传输过程中需要进行保护的数据122,如用以进行数字版权控制的认证数据。加/解密模块121以软件型态实作或是以硬件方式进行实作。值得注意的是,在一强调降低成本的前提下,以软件实作加/解密模块121将可达到最佳的成效。类似地,加/解密模块121可以产生相关装置端钥匙种子、钥匙、以及对于数据122进行相关加解密作业,其细节将于后说明。
图2为一流程图是显示依据本发明实施例的数据编码方法的操作流程。
当主机端110上的一应用软件(图1中未显示)执行且欲由储存装置120读取数据122时,首先,如步骤S201,主机端110发出一读取数据要求至储存装置120。当储存装置120接收到读取数据要求时,如步骤S202,随即依据相应一特定操作的发生时间或于两次发生的间隔时间随机产生一装置端钥匙种子Sd,并如步骤S203,将装置端钥匙种子Sd传送至主机端110。注意的是,当依据两次特定操作发生的间隔时间来产生装置端钥匙种子Sd时,此两次的特定操作可以分别定义为不同的操作。
其中,间隔时间可以是以储存装置120内微控制单元(Micro ControlUnit,MCU)内时脉的Tick数为单位。特定操作可以是于储存装置120上由主机端110所接收,且相应通用序列总线定义的控制型传输。控制型传输包括获取状态(Get Status)、清除特征(Clear Feature)、设定特征(Set Feature)、设定地址(Set Address)、获取描述元(Get Descriptor)、设定描述元(SetDescriptor)、获取组态(Get Configuration)、设定组态(SetConfiguration)、获取接口(Get Interface)、设定接口(Set Interface)、或同步讯框(Synch Frame)。其中,描述元可以包括装置、组态、接口、端点与字符串描述元等。此外,特定操作亦可以是于储存装置120上由主机端110所接收,且相应通用序列总线定义的一般数据传输。举例来说,若主机端110的FIF0为64字节,且每送64字节会触发一个通用序列总线数据型传输。以主机端110传送198字节为例,储存装置120共会收到3笔64字节与1笔6字节的通用序列总线数据传输,此4笔传输均可视为可选取的特定操作。当这些操作发生时会触发一个中断来告知储存装置120内的微控制单元此特定操作的需求,装置即可得知特定操作发生时的系统时脉。
当主机端110接收到装置端钥匙种子Sd之后,如步骤S204,产生一主机端钥匙种子Sh。值得注意的是,主机端110可以依据应用软件开始执行至接收到装置端钥匙种子Sd的时间,或是利用任何可随机产生且不易被使用者预测的机制产生主机端钥匙种子Sh。接着,如步骤S205,主机端110依据装置端钥匙种子Sd产生一第一钥匙Kn,且如步骤S206,依据第一钥匙Kn对于主机端钥匙种子Sh进行编码,并如步骤S207,将编码后的主机端钥匙种子Kn(Sh)传送至储存装置120。
值得注意的是,产生钥匙的方法可以将获得的种子经过一连串预先定义的运算来产生符合所欲使用软件编码的钥匙。其中,此预先定义的运算必需根据所使用的软件编码而有所不同。举例来说,假设Sh及Sd均为32位的值,且要产生一8m位的钥匙,则可以利用下列公式(以C语言描述)产生钥匙F(Sh,Sd)=(Sh*Sd)&0xff+((Sh<<8)*Sd)&0xff00+((Sh<<16)*Sd)&0xff0000+((Sh<<24)*Sd)&0xff000000+((Sh+Sd)&0xff+((Sd<<8)*Sh)&0xff00+((Sd<<16)*Sh)&0xff0000+(Sd<<24)*Sh)&0xff000000)<<32其中,m可以是1~8,即利用F(Sh,Sd)所得值之末8m位为所采用的钥匙值,另外,若Sh或Sd有一不存在,其值可以预先定义的32位常数C来代替。注意的是,上述公式仅为本实施例的一例子,本发明可以利用任何产生钥匙的方法。
此外,本发明实施例中的编码机制可以是任何对称性的软件编码方法(Symmetric Encryption),且可以根据硬件及保密需求来选择不同运算复杂度及保密层级的软件编码方法。举例来说,若对于保密层级需求不是很高,可采将每64位认证数据均向左旋转(Rotate)r位的方法来进行编码,此时可利用Kn%64(钥匙除以64的余数)来决定r值(Kn为第n次传输时,利用F(Sh,Sd)所产生的钥匙)。若使用保密层级较高的软件编码,如TEA(TinyEncryption Algorithm),需要一32位的钥匙,则可直接利用Kn(F(Sh,Sd)之末32位的值)为TEA所需的软件编/译码钥匙。相同地,上述编码机制仅为本实施例的例子,本发明可以利用任何编码机制。
当储存装置120接收到编码后的主机端钥匙种子Kn(Sh)之后,如步骤S208,依据装置端钥匙种子Sd产生第一钥匙Kn,并如步骤S209,依据第一钥匙Kn译码编码后的主机端钥匙种子Kn(Sh),从而得到主机端钥匙种子Sh。之后,如步骤S210,依据主机端钥匙种子Sh与装置端钥匙种子Sd产生一第二钥匙Kn+1,且如步骤S211,依据第二钥匙Kn+1对于数据D进行编码,并如步骤S212,将编码过的数据Kn+1(D)传送至主机端110。
当主机端110接收到编码后的数据Kn+1(D)之后,如步骤S213,主机端110依据主机端钥匙种子Sh与装置端钥匙种子Sd产生第二钥匙Kn+1,且如步骤S214,依据第二钥匙Kn+1对于编码过的数据Kn+1(D)进行译码,从而得到数据D。得到的数据D可以转送给应用软件进行后续处理,如身分认证等作业。
因此,藉由本发明所提出的数据编码系统及方法,可以利用随机产生的钥匙种子,进而变更每次软件编码所使用的钥匙,使得相同的认证数据,在每次传送时也能以不同的密文包装送出,可避免使用者能轻易的从测录数据封包,而获取、破解认证数据或利用重送机制来伪装成具有版权的储存装置。
本发明的方法,或特定型态或其部分,可以以程序代码的型态包含于实体媒体,如软盘、光盘片、硬盘、或是任何其它机器可读取(如计算机可读取)储存媒体,其中,当程序代码被机器,如计算机加载且执行时,此机器变成用以参与本发明的装置。本发明的方法与装置也可以以程序代码型态透过一些传送媒体,如电线或电缆、光纤、或是任何传输型态进行传送,其中,当程序代码被机器,如计算机接收、加载且执行时,此机器变成用以参与本发明的装置。当在一般用途处理器实作时,程序代码结合处理器提供一操作类似于应用特定逻辑电路的独特装置。
虽然本发明已以较佳实施例揭露如上,然其并非用以限定本发明,任何熟习此技艺者,在不脱离本发明的精神和范围内,当可作些许的更动与润饰,因此本发明的保护范围当视所附的权利要求范围所界定者为准。
权利要求
1.一种数据编码系统,包括一储存装置,至少包括一数据D;以及一加/解密模块,用以依据该储存装置上相应一特定操作的发生时间或于两次发生的间隔时间随机产生一装置端钥匙种子Sd,并将装置端钥匙种子Sd应用于数据D的编码。
2.根据权利要求1所述的数据编码系统,更包括一主机端,用以接收由该储存装置传送的该装置端钥匙种子Sd,产生一主机端钥匙种子Sh,依据该装置端钥匙种子Sd产生一第一钥匙Kn,依据该第一钥匙Kn对于该主机端钥匙种子Sh进行编码,并将编码后的该主机端钥匙种子Kn(Sh)传送至该储存装置,其中该储存装置更依据该装置端钥匙种子Sd产生该第一钥匙Kn,并依据该第一钥匙Kn译码该编码后的该主机端钥匙种子Kn(Sh),从而得到该主机端钥匙种子Sh,依据该主机端钥匙种子Sh与该装置端钥匙种子Sd产生一第二钥匙Kn+1,且依据该第二钥匙Kn+1对于该数据D进行编码。
3.根据权利要求2所述的数据编码系统,其中该主机端更接收由该储存装置传送的该数据Kn+1(D),依据该主机端钥匙种子Sh与该装置端钥匙种子Sd产生该第二钥匙Kn+1,且依据该第二钥匙Kn+1对于编码过的该数据Kn+1(D)进行译码,从而得到该数据D。
4.根据权利要求1所述的数据编码系统,其中该特定操作是于该储存装置上所接收,且相应通用序列总线定义的控制型传输。
5.根据权利要求4所述的数据编码系统,其中该控制型传输包括获取状态、清除特征、设定特征、设定地址、获取描述元、设定描述元、获取组态、设定组态、获取接口、设定接口、或同步讯框。
6.根据权利要求1所述的数据编码系统,其中该特定操作是于该储存装置上所接收,且相应通用序列总线定义的一般数据传输。
7.一种数据编码方法,包括下列步骤依据一储存装置上相应一特定操作的发生时间或于两次发生的间隔时间随机产生一装置端钥匙种子Sd;以及将装置端钥匙种子Sd应用于数据D的编码。
8.根据权利要求7所述的数据编码方法,更包括下列步骤于该储存装置将该装置端钥匙种子Sd传送至一主机端;于该主机端产生一主机端钥匙种子Sh;依据该装置端钥匙种子Sd产生一第一钥匙Kn;依据该第一钥匙Kn对于该主机端钥匙种子Sh进行编码;将编码后的该主机端钥匙种子Kn(Sh)传送至该储存装置;于该储存装置依据该装置端钥匙种子Sd产生该第一钥匙Kn,并依据该第一钥匙Kn译码该编码后的该主机端钥匙种子Kn(Sh),从而得到该主机端钥匙种子Sh;于该储存装置依据该主机端钥匙种子Sh与该装置端钥匙种子Sd产生一第二钥匙Kn+1;以及依据该第二钥匙Kn+1对于该数据D进行编码。
9.根据权利要求8所述的数据编码方法,更包括下列步骤于该储存装置将编码过的该数据Kn+1(D)传送至该主机端;于该主机端依据该主机端钥匙种子Sh与该装置端钥匙种子Sd产生该第二钥匙Kn+1;以及于该主机端依据该第二钥匙Kn+1对于编码过的该数据Kn+1(D)进行译码,从而得到该数据D。
10.根据权利要求7所述的数据编码方法,其中该特定操作是于该储存装置上所接收,且相应通用序列总线定义的控制型传输。
11.根据权利要求10所述的数据编码方法,其中该控制型传输包括获取状态、清除特征、设定特征、设定地址、获取描述元、设定描述元、获取组态、设定组态、获取接口、设定接口、或同步讯框。
12.根据权利要求7所述的数据编码方法,其中该特定操作是于该储存装置上所接收,且相应通用序列总线定义的一般数据传输。
全文摘要
一种数据编码系统,包括具有一数据与一加/解密模块的储存装置。加/解密模块依据储存装置上相应一特定操作的发生时间或于两次发生的间隔时间随机产生一装置端钥匙种子,并将装置端钥匙种子应用于数据D的编码。
文档编号H04L9/00GK1764104SQ200410086548
公开日2006年4月26日 申请日期2004年10月21日 优先权日2004年10月21日
发明者魏伯而 申请人:财团法人资讯工业策进会
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1