CN101008925B - 识别密码的存储方法 - Google Patents
识别密码的存储方法 Download PDFInfo
- Publication number
- CN101008925B CN101008925B CN2006100329758A CN200610032975A CN101008925B CN 101008925 B CN101008925 B CN 101008925B CN 2006100329758 A CN2006100329758 A CN 2006100329758A CN 200610032975 A CN200610032975 A CN 200610032975A CN 101008925 B CN101008925 B CN 101008925B
- Authority
- CN
- China
- Prior art keywords
- recognition code
- storer
- electronic equipment
- key
- write
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Storage Device Security (AREA)
Abstract
本发明的是一种识别密码的存储方法,其是将存储控制程序指令的存储器上存储了用于识别密码,MCU或者CPU通过内部的地址总线就可以访问该识别密码。该方法通过数据总线直接读取识别密码,快捷方便,便于读取,可准确、可靠地读取识别密码,且不容易被外部获得,密码的存储更安全、可靠。可广泛应用于具有识别密码设置的电子设备中。
Description
技术领域
本发明涉及电子设备安全下载及正版使用的密码存储及产生方法,特别是用于带HDCP高清内容保护功能的家庭影音电子设备以及类似具有正版识别密码的电子设备的安全使用识别密码的存储以及产生方法。
背景技术
为了保护知识产权,在现在的很多电子设备中都设置识别密码,以准确地识别正版产品,特别是在电视的数字应用中,随着数字化的高清晰影音节目的增多,带有DVI或HDMI接口的家庭影音电子设备也日渐增多。为了防止高清节目的非法拷贝,Intel制定了保护高清内容的标准HDCP(High-bandwidth DigitalContent Protection,或保护宽频数字信息),越来越多的国家和地区都立法规定凡是带有DVI或HDMI接口的家庭影音电子设备必须复合HDCP标准。HDCP按照一个很复杂的程序操作,在每个自动发送机和带有DVI或HDMI接口的家庭影音电子设备储存器里都存在自己的密码。密码保存在任何情况下都不能被侵入的“铁环境”中。在发送机中配备了可以应付日常和意外问题的AN数字序列,该数字序列和所谓的“密码选择矢量”(KSV)被一起发送到接受器上。类似的,从接受器上也会有信号以同样的方式传送到发送器上。对KSV体系检测的正常结果应该是具备20个零单位和20个计量单位,在两端能够发送符合Ks参数的24位密码。在发送机和接受机中合成的R0和Ks数据将进行数字分析并进行比较。如果相同则表明是合法设备。合法设备之间可以传送高清数字影音数据,这样,用户就可以欣赏到高质量的影音节目。
但实际使用中,密码并不是放在一个铁环境里,而是放在E2PROM中,通过I2C总线读取HDCP密码。但是E2PROM的工作环境不稳定,不仅会读取信息出错,而且还会由于错误的写操作改变HDCP密码。每一台符合HDCP标准的影音设备的HDCP密码是唯一的,而且不能出错,这样,上述错误,尤其是后者将是致命的,用户要恢复该数据很麻烦。此外,由于E2PROM容量小,HDCP密码很容易被外部获得,并将获得的密码用于非法设备上。
在其它的电子设备中也存在这样的问题。因此,必须解决密码的破译及安全使用、准确生成的问题。
发明内容
针对现有技术中的缺陷,本发明的目的是提供一种用在电子设备上安全的识别密码的存储方法,该方法可准确、可靠地读取识别密码,且不容易被外部获得。
本发明的另一个目的在于提供一种用于电子设备中表明合法身份的识别密码的存储方法,该方法通过数据总线直接读取识别密码,读取速度快,而且出错的几率很小。
本发明的再一个目的在于提供一种用于电子设备中表明合法身份的识别密码的存储方法,该方法将识别密码设置于控制程序中,与控制程序的指令一起储存,写入方便,便于读取,而且可一次性写入,降低了制造成本。
发明思路是:我们知道,变量,常量以及函数都是存放在相应存储器的物理空间,而且在存储空间的绝对地址是已知的,一般程序在链接和定位之后,都会生成一个文件,该文件给出了所有变量,常量以及函数的绝对地址。譬如,我们在程序中定义了一个密钥常量,访问该变量就可以得到该密钥常量。此外,对密钥常量的绝对地址,我们也可以通过一定的编程手段或者重定位的方式使其绝对地址固定,如通过对其所处段的地址进行限定,等等。
但是常量密钥对应的存储器的物理地址又是多少?物理地址即变量、常量以及函数的实际存放位置,如果知道该地址,我们就可以通过一般的编程器写入或者读取该地址的数据。物理地址与硬件设置有关系,一个确定的包含CPU和存储器的硬件系统,物理地址与绝对地址的映射关系是确定的。对于密钥常量,根据映射关系,就可以知道其物理地址,相应的也可以通过编程器进行写入或读取操作。
因此,密钥常量可以放到程序中并与程序一起存储。但是,一般的存储器是不可重写的,如E2PROM,或者重写会影响其它数据,如FLASH,紫外线擦除的E2PROM。这里需要提到的是,多数的存储器并不是完全不能重写,只是不能将位由0变为1,但可以由1变为0。这时候我们可以将密钥常量全部都设为0xFF,这样,该存储器在写入程序后,我们还可以通过编程器对密钥常量进行写操作,将该设备所对应的唯一密钥写入存储器。当程序运行的时候,就可以通过访问常量来获取,不仅速度快,而且不会出错。
为实现上述目的,本发明的实现方法如下:
一种识别密码的存储方法,其特征在于存储控制程序指令的存储器上存储了用于识别密码(即下文所述的内容保护密码),MCU或者CPU通过内部的地址总线就可以访问该识别密码。
上述的识别密码(内容保护密码)与程序指令不存在区域分割,即识别密码与程序指令连续储存于存储器中的。
所述的存储器是FLASH存储器。
上述的存储器储存识别密码的存储位置是在存储器的起始位置,或者是存储器从控制程序指令结束处到该存储器的末端的某个区域上,或者是存储器中间某段未使用区域。
控制程序指令与识别密码可同时写入存储器,也可不同时写入存储器。
还可以在存储器上的存储一定长度的标识性数据,通过查找该数据就可以找到识别密码的存储位置。同时,为了加强数据的可靠性,标识性数据与识别密码分开存储,这种分开存储既可以是在同一存储器上的不同区域,也可以是分开的存储器。
识别密码的具体产生方法包括三种:
方法一
A)读取控制程序被链接后生成的包含控制程序指令的文件;
B)读取内容保护密码;
C)根据设定的内容保护密码存储位置将步骤A)或步骤B)所得到的数据合并。
方法二
A)设定内容保护密码存储位置;
B)读取内容保护密码;
C)按照步骤A)所设定地址,通过外部编程器将内容保护密码写入存储器。
方法三
A)读取内容保护密码;
B)将读取的内容保护密码写入FLASH存储器相应的位置。
采用上面的技术方案后,通过数据总线直接读取识别密码,快捷方便,便于读取,可准确、可靠地读取识别密码,且不容易被外部获得,密码的存储更安全、可靠。可广泛应用于具有识别密码设置的电子设备中。
特别是对于符合HDCP标准的影音设备上的HDCP密码,将会更安全,更不容易被破坏或盗取,同时也为生产或售后维护提供便利。
附图说明
图1为本发明实施方案的带DVI接口的设备连接示意图;
图2为本发明实施方案系统框图;
图3为本发明现有技术中的带HDCP密码的E2PROM相对位置示意图;
图4为本发明的控制程序指令与HDCP密码在存储器上的相对位置示意图。
具体实施方式
在本发明的实施方式中,仅仅就其应用的一种具体情况,即符合HDCP标准的影音设备上的更安全的HDCP密码存储及产生方法做出说明。
图1是本发明实施方案的带DVI接口的设备连接架图。带有DVI接口的DVD播放器与显示器通过DVI连线连接在一起。DVD播放器与显示器都符合HDCP标准。在播放带HDCP保护的数字节目时,它们之间先要进行认证,然后DVD播放器对读取的内容加密后发送到显示器,显示器将收到的内容解密后播放。上面的认证,加密以及解密过程都用到了HDCP密码。
图2给出了家庭电子影音设备的与本发明有关的系统框架图。该系统框架图包括时钟晶振,FLASH存储器2,CPU(中央处理器)3,E2PROM存储器5,还有RAM,外部中断,IO,定时器,记数器等。FLASH存储器2上存储有程序指令以及不可变数据,RAM存储器上保存可变数据,CPU(中央处理器)3通过内部总线可以访问FLASH存储器2,RAM,定时器,记数器以及IO输入输出端口。CPU(中央处理器)3通过读取存储器的指令以及数据来使整个系统正常工作。CPU(中央处理器)3通过I2C总线可以读写E2PROM存储器5。
为了使设备符合HDCP规范,该设备必须具有合法的HDCP密码。通常HDCP密码4都存储在E2PROM中,如图3所示。CPU和E2PROM通过I2C总线技术通讯。由于各种原因,如外接干扰,芯片缺陷,等等,经常会出现从E2PROM读数据出错或者数据丢失,对于一般的数据,由于程序里都有默认值,只需要复位一下设备就可以正常使用。但是每台设备的HDCP密码都必不一样,不好将其放到程序中,一旦损坏,就不可恢复。
实际上将HDCP密码作为一个常量数据放入程序,与程序在一起存储,在技术上也没有什么问题。但各个生产家庭电子影音设备的企业都没有这么做,为什么?主要原因还是上面所说的,因为每台设备的HDCP密码都必不一样。如果将HDCP密码放入程序,则每台设备必须各自对应一台程序,这对于大批量生产来说显然是不可取的。
熟悉软件编程的人都知道,变量,常量以及函数都是存放在相应存储器的物理空间,而且在存储空间的绝对地址是已知的,一般程序在链接和定位之后,都会生成一个文件,该文件给出了所有变量,常量以及函数的绝对地址。譬如,我们在程序中定义了一个长度为40×56比特的HDCP密钥常量HDCP_KEY,访问该变量就可以得到该密钥常量。后面叙述中的绝对地址都是程序在链接定位后的地址。此外,对密钥常量HDCP_KEY的绝对地址,我们也可以通过一定的编程手段或者重定位的方式使其绝对地址固定,如通过对其所处段的地址进行限定,等等。
但是常量密钥对应的存储器的物理地址又是多少?同样,后面叙述中的物理地址都是存储器的地址,即变量、常量以及函数的实际存放位置,如果知道该地址,我们就可以通过一般的编程器写入或者读取该地址的数据。物理地址与硬件设置有关系,一个确定的包含CPU和存储器的硬件系统,物理地址与绝对地址的映射关系是确定的。对于我们上面定义的密钥常量HDCP_KEY,根据映射关系,就可以知道其物理地址,相应的也可以通过编程器进行写入或读取操作。
通过上面的描述,密钥常量HDCP_KEY可以放到程序中并与程序一起存储。但是,一般的存储器是不可重写的,如E2PROM,或者重写会影响其它数据,如FLASH,紫外线擦除的E2PROM。这里需要提到的是,多数的存储器并不是完全不能重写,只是不能将位由0变为1,但可以由1变为0。所以编程的时候我们可以将密钥常量HDCP_KEY全部都设为0xFF,这样,该存储器在写入程序后,我们还可以通过编程器对密钥常量HDCP_KEY进行写操作,将该设备所对应的唯一密钥写入存储器。当程序运行的时候,就可以通过访问常量HDCP_KEY来获取,不仅速度快,而且不会出错。
为了便于重写该地址,我们可以将密钥常量HDCP_KEY的物理地址设在一个醒目的位置,如存储器的起始位置,或者存储器的中间,以及结束处,而且该数据与程序指令或者其它数据存在明显的分割区,这样防止写入时影响程序指令。但这样会有一个明显的缺点,如果有人想非法使用该密钥,只要通过编程器读出所有数据稍微分析一下就可以找到该密钥。最好的方法是将其放到程序中,并且与程序指令混在一起。这样不知道详细设计的人很难获取该密码。
可是这还不够安全,因为参与制造的人必须知道其物理地址才可以写入对应的密钥。而且,密钥的绝对地址和物理地址会由于程序的修改而变化,这样也会给生产带来麻烦。一般来说,属于同一个段,同一模块的同类型数据链接定位后其绝对地址和物理地址也是连续的。这样,我们可以为密钥常量HDCP_KEY设计一个全局唯一的标识性头数据常量,这里其长度为32字节,只要搜索到该数据,就可以找到密钥常量HDCP_KEY的绝对地址或者物理地址。最好是通过计算机程序去进行搜索以及写入密钥常量。
密钥常量HDCP_KEY的绝对地址与物理地址是对应的。我们不仅可以在将程序写入存储器之后进行密钥常量写入,也可以在将程序写入存储器之前进行密钥常量与程序的合并操作,并将合并之后的文件写入存储器。这种方法更有意义,会使生产速度加快,因为这种合并是在计算机里进行的,实际生产的时候只需要写存储器一次就行了,而前面的方法需要写两次,中间还要读出数据进行搜索。显而易见,本方法比前面的方法速度会快很多。下面是本方法的描述。
其实,写入存储器的数据是存储在一个经过链接定位后生成的文件里,一般是HEX格式或者BIN格式,HEX格式可以转化为BIN格式。而BIN格式文件与存储器的内容基本上是对应的。首先通过计算机程序读取BIN文件,然后查找该文件并且找到标识性头数据常量,这样就可以确定密钥常量HDCP_KEY的在该文件中的地址,然后将该设备所对应的唯一HDCP密钥写入对应地址,并将合并后的数据写入程序存储器,就完成了程序数据与HDCP密钥的一次性写入。对于上面所说的的方法,都可以先进行程序指令与HDCP密钥的合并,然后一次写入程序存储器,而且都比前者效率要高很多。
对于一些支持在线编程的程序存储器,如FLASH,我们还可以在线写入HDCP密钥。设备接收到写HDCP密钥的指令后,会将一段用于读HDCP数据以及写FLASH操作的程序指令加载到随机存储器RAM中,然后执行该程序,首先读取HDCP数据,然后FLASH写操作,写入位置就是该常量的绝对地址。这样就可以将HDCP密钥写入。
前面提到,现有的HDCP兼容的设备,在存储HDCP密码的时候都是分两次操作,第一次先写数据,做好E2PROM,等到生产的时候,用PC通过外部接口将HDCP密钥写入E2PROM指定的区域。这样做效率也比较低。其实第一次写数据的时候就可以将数据与HDCP密钥合并,然后一次写入。
为了保证HDCP密钥的正确性,我们还可以在为密钥设置校验数据,在一定的时候,如开机或者HDCP认证不通过的时候,读取全部的HDCP密钥,计算其校验值,并与保存在存储器的校验值对比,如果不一致给出HDCP密钥错误的提示。而且,为了加强数据的可靠性,校验数据与HDCP密钥分开存储,这种分开存储既可以是在同一存储器上的不同区域,也可以是分开的存储器。
对于前面所说的HDCP密钥与程序放在一起的方法,该HDCP密钥还可以作为E2PROM的HDCP密钥数据的备份。当E2PROM数据损坏时,可以拷贝程序中的HDCP密钥到E2PROM。
还有一种方法可以在一定程度上减轻E2PROM数据损坏带来的不良影响,即在E2PROM里将HDCP密钥存储两份或多份,并且是不同区域。因为一般情况下,E2PROM数据破坏是局部的,这样一份数据错误,还有另外一份,在正常的时候,还可以利用正确的HDCP密钥将被破坏的HDCP密钥恢复。
上面是本发明的实施方法,本发明对于存储器的类别没有限制,并可以是扩展的存储器,只要通过地址线操作可以访问该数据就符合本发明的思想。此外,本发明与利用FLASH做为E2PROM存储器是不同的,主要是因为:第一,本发明的HDCP密钥是作为程序的数据的一部分,而不是E2PROM里的数据;第二,放在E2PROM里的数据都会有频繁的读写操作,但对于本发明的HDCP密钥,程序一般只会对其进行读操作,写操作是通过编程器来完成,即使是通过在线编程完成HDCP密钥设置,也只有一次,而且是从0xFF变为密钥数据,不需要进行擦除操作。
当然,本发明所公开的方法,不只适用于HDCP密钥,对于任意数据,只要该数据对每台设备或者每批设备都不同,而对设备本身而言,该数据是相对固定的,都可以适用本发明所公开的内容,如产品序列号,生产日期,生产批次,销售区域等等。因此,凡是技术内容与本发明相同或近似,具有相同或近似的技术效果的,都在本发明的保护范围之内。
Claims (8)
1.一种识别密码的存储方法,其特征在于存储控制程序指令的电子设备的存储器上存储了电子设备的识别密码,电子设备的MCU或者CPU通过内部的地址总线就可以访问该识别密码,上述的存储器储存识别密码的存储位置是在存储器的起始位置,或者是存储器从控制程序指令结束处到该存储器的末端的某个区域上,或者是存储器中间某段未使用区域;上述电子设备的识别密码与程序指令不存在区域分割;在存储器上存储有一定长度的标识性数据,通过查找该数据就可以找到电子设备的识别密码的存储位置。
2.如权利要求1所述的识别密码的存储方法,其特征在于所述的电子设备的存储器是FLASH存储器,将所述识别密码的密钥常量全部都设为0xFF。
3.如权利要求1所述的识别密码的存储方法,其特征在于控制程序指令与电子设备的识别密码可同时写入电子设备的存储器,也可不同时写入电子设备的存储器。
4.如权利要求1所述的识别密码的存储方法,其特征在于标识性数据与电子设备的识别密码分开存储。
5.如权利要求4所述的识别密码的存储方法,其特征在于这种分开存储或者是储存于同一个电子设备存储器上的不同区域,或者是储存于分开的电子设备存储器中。
6.如权利要求2所述的识别密码的存储方法,其特征在于识别密码的具体产生方法包括:
A)读取控制程序被链接后生成的包含控制程序指令的文件,并且找到标识性头数据常量;
B)根据确定的密钥常量在文件中的地址将电子设备所对应的唯一HDCP密钥写入对应地址,并将合并后的数据写入存储器。
7.如权利要求2所述的识别密码的存储方法,其特征在于识别密码的具体产生方法包括:
A)设定识别密码存储位置;
B)读取识别密码;
C)按照步骤A)所设定地址,通过外部编程器将识别密码写入存储器。
8.如权利要求2所述的识别密码的存储方法,其特征在于识别密码的具体产生方法包括:
A)读取识别密码;
B)将读取的识别密码写入FLASH存储器相应的位置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2006100329758A CN101008925B (zh) | 2006-01-16 | 2006-01-16 | 识别密码的存储方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2006100329758A CN101008925B (zh) | 2006-01-16 | 2006-01-16 | 识别密码的存储方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101008925A CN101008925A (zh) | 2007-08-01 |
CN101008925B true CN101008925B (zh) | 2010-12-22 |
Family
ID=38697364
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2006100329758A Expired - Fee Related CN101008925B (zh) | 2006-01-16 | 2006-01-16 | 识别密码的存储方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101008925B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101923898B (zh) * | 2010-07-29 | 2012-12-26 | 福建捷联电子有限公司 | 显示器Flash空间不足时的HDCP_key烧录方法 |
TWI467412B (zh) * | 2012-02-23 | 2015-01-01 | Top Victory Invest Ltd | High-bandwidth digital content protection key data check and backup method and check and backup module for display device |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4374417A (en) * | 1981-02-05 | 1983-02-15 | International Business Machines Corp. | Method for using page addressing mechanism |
US5136590A (en) * | 1988-11-23 | 1992-08-04 | John Fluke Mfg. Co., Inc. | Kernel testing interface and method for automating diagnostics of microprocessor-based systems |
US5375250A (en) * | 1992-07-13 | 1994-12-20 | Van Den Heuvel; Raymond C. | Method of intelligent computing and neural-like processing of time and space functions |
-
2006
- 2006-01-16 CN CN2006100329758A patent/CN101008925B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4374417A (en) * | 1981-02-05 | 1983-02-15 | International Business Machines Corp. | Method for using page addressing mechanism |
US5136590A (en) * | 1988-11-23 | 1992-08-04 | John Fluke Mfg. Co., Inc. | Kernel testing interface and method for automating diagnostics of microprocessor-based systems |
US5375250A (en) * | 1992-07-13 | 1994-12-20 | Van Den Heuvel; Raymond C. | Method of intelligent computing and neural-like processing of time and space functions |
Also Published As
Publication number | Publication date |
---|---|
CN101008925A (zh) | 2007-08-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8533856B2 (en) | Secure compact flash | |
CN100578473C (zh) | 嵌入式系统和增加嵌入式系统安全性的方法 | |
US20070079133A1 (en) | Portable storage device having a subject identification information and a configuration method thereof | |
CN108055135B (zh) | 一种智能终端认证管理的方法 | |
CN102156840A (zh) | 控制装置以及管理装置 | |
US8751817B2 (en) | Data processing apparatus and validity verification method | |
CN106462509A (zh) | 用于保全存取保护方案的设备及方法 | |
US8489899B2 (en) | System and method for encrypting and decrypting data | |
CN104941302A (zh) | 净水设备、滤芯、滤芯防伪装置及方法 | |
US10607195B2 (en) | Facilitating selling and validating digital resources | |
KR20170102285A (ko) | 보안 요소 | |
CN111199023A (zh) | 一种mcu程序的密钥系统及解密方法 | |
CN101008925B (zh) | 识别密码的存储方法 | |
US7814334B2 (en) | Method and apparatus for changing and adding activation keys for functions of digital content without having to change and recompile the digital content | |
US20040186947A1 (en) | Access control system for nonvolatile memory | |
WO2016066099A1 (en) | Anti-counterfeiting of component | |
CN108830114B (zh) | 非易失性存储器的数据处理方法与装置、存储介质 | |
KR20140088414A (ko) | 보안 데이터의 저장 검증을 위한 메모리 장치, 보안 데이터 저장 검증 시스템 및 그 검증 방법 | |
CN103635879A (zh) | 信息处理设备、信息处理方法及计算机程序 | |
US20200202022A1 (en) | Biometric sensor and processor pairing | |
CN1269024C (zh) | 保护外围设备附加卡上软件的方法及系统 | |
CN111488557A (zh) | 一种加解密方法、装置、电子设备及可读存储介质 | |
US9158943B2 (en) | Encryption and decryption device for portable storage device and encryption and decryption method thereof | |
JP5494389B2 (ja) | 電子制御装置 | |
CN103279700A (zh) | 液晶监视器的固件版本验证方法和液晶监视器 |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20101222 Termination date: 20170116 |