固件加密和解密方法以及使用该方法的装置的制作方法

文档序号:6536093阅读:440来源:国知局
专利名称:固件加密和解密方法以及使用该方法的装置的制作方法
技术领域
本发明涉及一种加密和/或解密信息的方法以及使用该方法的装置,尤其是涉及一种加密和/或解密电子设备中使用的固件的方法以及使用该方法的装置。
背景技术
安装在电子设备硬件中的固件是一种存储电子设备操作必要的信息和/或存储执行基本操作所需的信息而需要的软件(程序或数据)。通常,在采用C语言或汇编语言创建了源代码且由编译器编译了源代码之后,就将二进制编码固件存入或写入存储器中(例如,一种记录介质,如闪速存储器或ROM)。
参考图1,使用ROM记录器120将已编程固件110写入闪速ROM 130。或者,参考图2,使用微处理器220将已编程固件从计算机210下载到闪速ROM230。
常规地,由于是将未加密固件写入和/或下载到存储器,因此非法复制存储在存储器中的固件相对容易。此外,可通过非法地改动固件而使用一部分固件。

发明内容
本发明的一方面提供了一种固件加密和/或解密方法,以便将加密固件存储到存储器中以及在使用固件时对加密固件进行解密,并且进一步提供一种使用该方法的装置。
根据本发明的一个方面,提供一种固件加密方法。所述方法包括接收预定的专用密钥数据;使用一个预定的随机数、从所述预定的专用密钥数据产生加密密钥数据;基于所述加密密钥数据、产生与要存储在存储器中的固件地址信息相对应的加密数据;以及通过对加密数据和固件数据执行异或(XOR)操作来产生加密固件数据,以便根据所述固件地址来存储加密固件数据。
本发明的其它方面和/或优点将部分地在随后的说明书中得以阐述,并且部分地将从说明书中显然可以得出的,或者可通过本发明的实施而获知。
根据本发明的另一个方面,提供一种固件解密方法。所述方法包括当确定满足了操作固件的条件时,读取存储在存储器中的预定专用密钥数据;基于所述预定的专用密钥数据产生加密密钥数据;产生与固件地址信息相对应的加密数据以便从存储器中读取固件数据;以及通过对加密数据和从固件地址中读取的固件数据执行异或操作而产生解密固件数据。
根据本发明的另一个方面,提供一种固件加密装置。所述装置包括加密密钥产生器,使用一个预定的随机数从预定的输入专用密钥数据产生加密密钥数据;和固件加密处理单元,基于加密密钥数据而产生与固件地址信息相对应的加密数据,以及通过对加密数据和固件数据执行异或操作而产生加密固件数据以将其存储到所述固件地址。
根据本发明的另一个方面,提供一种固件解密装置。所述装置包括存储器,存储加密固件和在加密操作中使用的预定专用密钥数据;微处理器,当确定满足了操作固件的条件时,从存储器中读取所述预定专用密钥数据,产生固件地址信息以从存储器中读取加密固件并且产生读取控制信号,以及执行包含在加密固件中的程序;加密密钥产生器,使用一个预定的随机数而从所述预定的专用密钥数据产生加密密钥数据;和固件解密处理单元,使用加密密钥数据而产生与固件地址信息相对应的加密数据,并通过对所述加密数据和从固件地址中读取的加密固件数据执行异或操作而产生解密固件数据。


从下面结合附图对示范性实施例的说明中,本发明的上述和/或其它特征及优点将变得明显且更易于理解,其中附图中图1和图2是示例说明在ROM中存储固件的常规操作的方框图;图3是根据本发明一个实施例的固件加密装置的方框图;图4是根据本发明一个实施例的固件解密装置的方框图;图5是根据本发明一个实施例的固件加密方法的流程图;以及图6是根据本发明一个实施例的固件解密方法的流程图。
具体实施例方式
现在将详细参考本发明的实施例,其示例在附图中进行说明,其中相同的参考标记自始至终指相同的元件。下面通过参考附图,描述所述实施例以说明本发明。
图3是根据本发明一个实施例的固件加密装置的方框图。参考图3,固件加密装置300包括加密处理单元310、ROM记录器320、以及存储器330。
加密处理单元310包括加密密钥产生器310-1和固件加密处理单元310-2。
加密密钥产生器310-1从外部设备接收256比特专用密钥数据SK[255:0],并且使用预定的随机数而产生32比特加密密钥数据EK[31:0]。所述加密密钥数据EK[31:0]具有32比特,其是四字节的固件。根据本实施例,所述专用密钥数据是256比特单元,然而专用密钥数据的比特数可以改变。
固件加密处理单元310-2接收由加密密钥产生器310-1产生的加密密钥数据EK[31:0]、8比特固件数据D[7:0]以及16比特固件地址信息A[15:0]。固件地址信息A[15:0]是要存储在存储器330中的位置信息。
固件加密处理单元310-2使用固件地址信息A[15:0]而从加密密钥数据EK[31:0]产生8比特加密数据TD[7:0]。例如,固件加密处理单元310-2根据固件地址信息A[15:0]的最低的2比特A[1:0]的值而产生加密数据TD[7:0]。也就是说,当A[1:0]等于″00″、″01″、″10″、或″11″时,加密数据TD[7:0]分别等于EK[31:24]、EK[23:16]、EK[15:8]、或EK[7:0]。相应地,根据固件地址信息A[15:0],加密数据TD[7:0]可以取4个不同的值。
通过对加密数据TD[7:0]和要存储在固件地址中的固件数据D[7:0]执行异或操作,固件加密处理单元310-2产生加密固件数据ED[7:0],其中,加密数据TD[7:0]从所述固件地址产生。
加密固件数据ED[7:0]由ROM记录器320写入到存储器3 30中。
图4是根据本发明一个实施例的固件解密装置的方框图。
参考图4,根据本发明的实施例,固件解密装置400包括输入设备410、微处理器420、存储器430、以及解密处理单元440。
解密处理单元440包括加密密钥产生器440-1和固件解密处理单元440-2。
根据本发明的实施例,计算机450借助于微处理器420将数据下载到存储器430或从存储器430中上传数据。
输入设备410输入密钥命令以控制电子设备,并且微处理器420响应于从输入设备410输入的密钥命令、使用存储在存储器430中的固件来控制所述电子设备。
由图3中显示的固件加密装置300加密的固件和在加密处理中使用的专用密钥数据SK[255:0]被存储在存储器430中。根据本发明的实施例,存储器430是闪速ROM,一种非易失性存储器设备。
微处理器420使用从存储器430中读取和解密的固件而控制电子设备,以及当确定从输入设备410和/或计算机450输入的信息满足了执行固件的条件时,微处理器420产生地址信息和读取控制信号,以便从存储器430中读取专用密钥数据SK[255:0]。微处理器420产生地址信息和读取控制信号以读取所述加密固件。
加密密钥产生器440-1接收从存储器430中读取的256比特专用密钥数据SK[255:0],并使用一个随机数产生32比特加密密钥数据EK[31:0]。所述加密密钥数据EK具有32比特,其是四字节的固件。
固件解密处理单元440-2接收由加密密钥产生器440-1产生的加密密钥数据EK[31:0]、从存储器430中读取的8比特加密固件数据ED[7:0]和16比特固件地址信息A[15:0]。所述固件地址信息A[15:0]是要从存储器330中读取加密固件的地址信息。
固件解密处理单元440-2采用与用于加密的相似的方法,使用所述固件地址信息A[15:0]从加密密钥数据EK[31:0]产生8比特加密数据TD[7:0]。也就是说,当为固件地址信息A[15:0]的最低2比特的A[1:0]的值是″00″、″01″、″10″、或″11″时,加密数据TD[7:0]分别等于EK[31:24]、EK[23:16]、EK[15:8]、或EK[7:0]。相应地,根据固件地址信息A[15:0],加密数据TD[7:0]可以取4个不同的值。
固件解密处理单元440-2通过对加密数据TD[7:0]和从固件地址中读取的已加密固件数据ED[7:0]执行异或操作而产生解密固件数据D[7:0],所述加密数据TD[7:0]从所述固件地址中产生。
借助数据总线将解密固件数据D[7:0]输入到微处理器420。相应地,微处理器420产生与解密固件相对应的控制信号并控制所述电子设备。
现在将参考图5和6中显示的流程图来描述根据本发明实施例的固件加密方法和固件解密方法。
首先,参考图5,将描述根据本发明实施例的固件加密方法。
在操作S501,接收用以产生加密密钥数据的专用密钥数据SK。例如,可产生一个具有256比特值的专用密钥数据SK。
当收到专用密钥数据SK[255:0]时,在操作S502,使用一个预定的随机数产生32比特加密密钥数据EK[31:0]。所述加密密钥数据EK例如是一个32比特数据,其是四字节的固件。
当产生加密密钥数据EK[31:0]时,在操作S503,接收8比特固件数据D[7:0]和16比特固件地址信息A[15:0]。
在操作S504,基于所述固件地址信息A[15:0],从加密密钥数据EK[31:0]中产生8比特加密数据TD[7:0]。
例如,根据A[1:0]的值产生加密数据TD[7:0],所述A[1:0]是固件地址信息A[15:0]的最低2比特。也就是说,当A[1:0]是″00″、″01″、″10″、或″11″时,分别产生包含EK[31:24]、EK[23:16]、EK[15:8]或EK[7:0]的加密数据TD[7:0]。相应地,根据固件地址信息A[15:0],加密数据TD[7:0]可以取4个不同的值。
在操作S505,通过对加密数据TD[7:0]和要存储在固件地址中的固件数据D[7:0]执行异或操作而产生加密固件数据ED[7:0],其中所述加密数据TD[7:0]从所述固件地址中产生。
在操作S506,由ROM记录器320将加密固件数据ED[7:0]写入存储器330。
接下来,参考图6,现在将描述根据本发明实施例的固件解密方法。
当确定满足了执行固件的条件时,在操作601,微处理器420从存储器430中读取专用密钥数据SK[255:0]。所述专用密钥数据SK[255:0]是用于加密固件的密钥数据。
根据本发明的一个方面,在操作S602,使用与加密处理中所采用的相似的随机数产生操作,从专用密钥数据SK[255:0]中产生32比特加密密钥数据EK[31:0]。
当产生加密密钥数据EK[31:0]时,在操作S603,接收从存储器430中读取的8比特加密固件数据ED[7:0]和16比特固件地址信息A[15:0]。
在操作S604,基于固件地址信息A[15:0],从加密密钥数据EK[31:0]中产生8比特加密数据TD[7:0]。也就是说,当A[1:0]的值是″00″、″01″、″10″或″11″时,加密数据TD[7:0]分别是EK[31:24]、EK[23:16]、EK[158]或EK[7:0],其中所述A[1:0]是固件地址信息A[15:0]的最低2比特。相应地,根据固件地址信息A[15:0],加密数据TD[7:0]可以取4个不同的值。
在操作S605,通过对加密数据TD[7:0]和从固件地址中读取的加密固件数据ED[7:0]执行异或操作而产生解密固件数据D[7:0],其中加密数据TD[7:0]从所述固件地址中产生。
相应地,在操作S606,微处理器420使用解密固件控制所述电子设备。
在上述实施例中,为了说明的方便解密处理单元440与微处理器420是分离的,然而可以将解密装置设计成将解密处理单元440包含在微处理器420中。
如上所述,根据本发明的实施例,通过在将固件存储于存储器中时存储加密固件和在使用固件时解密所述加密固件,防止了非法地复制和改变所述固件。
本发明可实现为一种方法、一种装置、和/或一种系统。当本发明实现为软件时,本发明的部件是用来执行所需操作所必须的代码段。可以将程序或代码段存储在处理器可读的记录介质中,以及使用传输介质和/或通信网络将其作为与载体相结合的计算机数据信号而传送。所述处理器可读记录介质是能够存储或传送其后可以由计算机系统来读取的数据的任何一种数据存储设备。处理器可读记录介质的示例包括电子电路、半导体存储设备;只读存储器(ROM)、闪速存储器、可擦除ROM、软盘、光盘、硬盘、光纤介质、以及RF网络。所述计算机数据信号包括可经由传输介质传播的任何一种信号,所述传输介质例如是电子网络信道、光纤、空气、电场、RF网络。
虽然已经显示和描述了本发明的几个实施例,但是本领域的普通技术人员应当理解的是,在不脱离本发明原则和精神的前提下可以对这些实施例做出改变,本发明的范围由权利要求及其等同物限定。
本申请要求于2004年1月9日在韩国知识产权局提出的申请号为10-2004-0001414的韩国专利申请的优先权,其公开内容通过引用全部并入于此。
权利要求
1.一种固件加密方法,包括接收预定的专用密钥数据;使用预定的随机数从所述预定的专用密钥数据产生加密密钥数据;基于所述加密密钥数据、产生与要存储在存储器中的固件地址信息相对应的加密数据;以及通过对所述加密数据和固件数据执行异或操作而产生加密固件数据,以根据所述固件地址信息存储所述加密固件数据。
2.根据权利要求1所述的方法,其中,所述加密密钥数据包括N字节的固件数据,且N是预定的整数。
3.根据权利要求1所述的方法,其中,通过根据所述固件地址信息的预定比特的值、从N字节的加密密钥数据中选择一个字节而产生所述加密数据。
4.一种固件解密方法,包括当确定满足操作固件的条件时,读取存储在存储器中的预定的专用密钥数据;基于所述预定的专用密钥数据而产生加密密钥数据;产生与固件地址信息相对应的加密数据,以从存储器中读取加密固件数据;以及通过对所述加密数据和基于固件地址信息而读取的固件数据执行异或操作以对加密固件数据进行解密,从而产生解密固件数据。
5.根据权利要求4所述的方法,其中,所述加密密钥数据包括N字节的固件数据,且N是预定的整数。
6.根据权利要求4所述的方法,其中,通过根据所述固件地址信息的预定比特的值、从N字节的加密密钥数据中选择一个字节而产生所述加密数据。
7.一种固件加密装置,包括加密密钥产生器,用于使用预定的随机数、从预定的输入专用密钥数据产生加密密钥数据;以及固件加密处理单元,用于基于所述加密密钥数据而产生与固件地址信息相对应的加密数据,以及通过对所述加密数据和固件数据执行异或操作而产生加密固件数据,以基于所述固件地址信息存储所述加密固件数据。
8.根据权利要求7所述的装置,其中,所述加密密钥数据包括N字节的固件数据,且N是预定的整数。
9.根据权利要求7所述的装置,其中,通过根据所述固件地址信息的预定比特的值、从N字节的加密密钥数据中选择一个字节而产生所述加密数据。
10.一种固件解密装置,包括存储器,用于存储加密固件和预定的专用密钥数据;微处理器,用于当确定满足了操作固件的条件时,从所述存储器中读取预定的专用密钥数据,产生固件地址信息以从所述存储器中读取加密固件并产生读取控制信号,以及执行包含在所述加密固件内的程序;加密密钥产生器,用于使用预定的随机数从所述预定的专用密钥数据产生加密密钥数据;以及固件解密处理单元,用于使用所述加密密钥数据产生与固件地址信息相对应的加密数据,以及通过对所述加密数据和基于所述固件地址信息而读取的加密固件数据执行异或操作而产生解密固件数据。
11.根据权利要求10所述的装置,其中,所述加密密钥数据包括N字节的固件数据,且N是预定的整数。
12.根据权利要求10所述的装置,其中,通过根据所述固件地址信息的预定比特的值、从N字节的加密密钥数据中选择一个字节而产生所述加密数据。
13.根据权利要求7所述的装置,其中,由所述加密密钥产生器接收的所述预定的专用密钥数据是从外部设备传送而来的。
14.根据权利要求13所述的装置,其中,所述加密密钥产生器接收256比特专用密钥数据作为预定的专用密钥数据,并且产生32比特数据作为所述加密密钥数据。
15.根据权利要求14所述的装置,其中,作为加密密钥数据而产生的32比特数据包括作为固件数据的8比特数据和作为固件地址信息的16比特数据。
16.根据权利要求15所述的装置,其中,由所述固件加密处理单元产生的加密数据是基于所述固件地址的最低2比特的。
17.根据权利要求7所述的装置,进一步包括ROM记录器,用于将加密固件数据写入存储器。
18.一种对电子设备的固件数据进行加密的方法,包括基于使用随机数从预定的专用密钥数据产生的加密密钥数据、产生与存储器中的地址相对应的加密数据;以及通过对所述加密数据和所述固件数据执行异或操作而对所述固件数据加密,以及将加密后的固件数据存储到存储器中的所述地址。
19.根据权利要求18所述的方法,其中,通过根据所述固件地址信息的预定比特的值、从N字节的加密密钥数据中选择一个字节而产生所述加密数据。
20.一种对电子设备的加密固件数据进行解密的方法,包括当确定满足了使用所述加密固件数据的条件时,使用存储在存储器中的预定专用密钥数据而产生加密密钥数据;产生与存储器中的地址相对应的加密数据以读取所述加密固件数据;以及通过对所产生的加密数据和从存储器中读取的所述加密固件数据执行异或操作而对所述加密固件数据进行解密。
21.根据权利要求20所述的方法,其中,所述加密密钥数据包括预定字节的固件数据。
22.一种记录了用于执行固件加密操作的程序的计算机可读介质,所述操作包括基于使用随机数从预定的专用密钥数据产生的加密密钥数据、产生与存储器中的地址相对应的加密数据;以及通过对所述加密数据和所述固件数据执行异或操作而对所述固件数据加密,以及将加密后的固件数据存储到存储器中的所述地址。
23.一种记录了用于执行固件解密操作的程序的计算机可读介质,所述操作包括当确定满足了使用所述加密固件数据的条件时,使用存储在存储器中的预定专用密钥数据而产生加密密钥数据;产生与存储器中的地址相对应的加密数据以读取所述加密固件数据;以及通过对所产生的加密数据和从存储器中读取的所述加密固件数据执行异或操作而对所述加密固件数据进行解密。
全文摘要
一种对电子设备中使用的固件进行加密和解密的方法,以及使用该方法的装置。该固件加密方法包括接收预定的专用密钥数据;使用预定的随机数从所述预定的专用密钥数据产生加密密钥数据;基于所述加密密钥数据、产生与要存储在存储器中的固件地址信息相对应的加密数据;以及通过对所述加密数据和固件数据执行异或操作而产生加密固件数据以存储在所述固件地址中。
文档编号G06F21/00GK1641717SQ200510050920
公开日2005年7月20日 申请日期2005年1月10日 优先权日2004年1月9日
发明者金仁球, 李钟圭 申请人:三星电子株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1