System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及计算机,并且更具体地,涉及计算机中一种芯片初始化方法、芯片初始化装置、芯片初始化模块、电子设备和计算机可读存储介质。
技术介绍
1、只读存储器(read-only memory,rom)是常见的片上系统(system on a chi,soc)组件,常用于存放一级引导程序。在芯片上电复位释放后,处理器程序指针(programcounter,pc)从rom特定位置开始读取指令,并执行引导。
2、目前,现有的设计是直接将机器代码以明文的形式存放在rom内,第三方可以直接从rom中读取到存储的机器代码,从而容易导致rom内存储的内容被篡改或窃取,造成芯片无法安全启动。因此如何防止rom内存储的内容被篡改或窃取成为了亟需解决的问题。
技术实现思路
1、本申请提供了一种芯片初始化方法、芯片初始化装置、芯片初始化模块、电子设备和计算机可读存储介质,该方法能够防止rom内存储的内容被篡改或窃取,确保芯片可以安全启动。
2、第一方面,提供了一种芯片初始化方法,所述芯片初始化方法包括:验证只读存储器中存储的原始程序数据的可靠性;在所述原始程序数据的可靠性验证通过的情况下,根据收到的第n目标地址和读指令,从所述只读存储器中读取所述第n目标地址对应的所述原始程序数据;其中,n为正整数;对所述原始程序数据进行解密,得到引导程序数据并对外输出。
3、在上述技术方案中,本申请实施例通过采用验证只读存储器中存储的原始程序数据的可靠性,在原始程序数据的可靠性验证通过的
4、结合第一方面,在某些可能的实现方式中,所述验证只读存储器中存储的原始程序数据的可靠性包括:确定所述原始程序数据的校验数据;基于所述校验数据和所述只读存储器中存储的预设数据,确定所述原始程序数据的可靠性。
5、结合第一方面和上述实现方式,在某些可能的实现方式中,所述确定所述原始程序数据的校验数据包括:对所述原始程序数据进行哈希运算,得到所述原始程序数据的哈希值;将所述哈希值确定为所述校验数据。
6、结合第一方面和上述实现方式,在某些可能的实现方式中,所述对所述原始程序数据进行解密,得到引导程序数据包括:根据收到的所述第n目标地址确定第n掩码;基于所述第n掩码对所述原始程序数据进行解密,得到所述引导程序数据。
7、结合第一方面和上述实现方式,在某些可能的实现方式中,当n≥2时,所述根据收到的所述第n目标地址确定第n掩码之前,还包括:根据收到的第n-1目标地址,获取与所述第n-1目标地址顺序相连的至少一个后续目标地址;根据所述至少一个后续目标地址,确定至少一个后续掩码并缓存。
8、结合第一方面和上述实现方式,在某些可能的实现方式中,所述根据收到的所述第n目标地址确定第n掩码包括:当所述第n目标地址与上一次收到的所述第n-1目标地址是连续的,从缓存的所述至少一个后续掩码中确定与所述第n目标地址对应的所述第n掩码;当所述第n目标地址与上一次收到的所述第n-1目标地址不是连续的,对所述第n目标地址进行加密运算得到所述第n掩码。
9、结合第一方面和上述实现方式,在某些可能的实现方式中,当n=1时,所述根据收到的所述第n目标地址确定第n掩码包括:对所述第n目标地址进行加密运算得到所述第n掩码。
10、第二方面,提供了一种芯片初始化装置,所述芯片初始化装置包括:
11、数据验证模块,用于验证只读存储器中存储的原始程序数据的可靠性;
12、读取模块,用于在所述原始程序数据的可靠性验证通过的情况下,根据收到的第n目标地址和读指令,从所述只读存储器中读取所述第n目标地址对应的所述原始程序数据;其中,n为正整数;
13、数据解密模块,用于对所述原始程序数据进行解密,得到引导程序数据并对外输出。
14、结合第二方面,在某些可能的实现方式中,所述数据验证模块包括:
15、数据计算单元,用于确定所述原始程序数据的校验数据;
16、数据验证单元,用于基于所述校验数据和所述只读存储器中存储的预设数据,确定所述原始程序数据的可靠性。
17、结合第二方面和上述实现方式,在某些可能的实现方式中,所述数据计算单元,具体用于对所述原始程序数据进行哈希运算,得到所述原始程序数据的哈希值;将所述哈希值确定为所述校验数据。
18、结合第二方面和上述实现方式,在某些可能的实现方式中,所述数据解密模块,包括:
19、掩码确定单元,用于根据收到的所述第n目标地址确定第n掩码;
20、数据解密单元,用于基于所述第n掩码对所述原始程序数据进行解密,得到所述引导程序数据。
21、结合第二方面和上述实现方式,在某些可能的实现方式中,当n≥2时,所述芯片初始化装置还包括:
22、地址加密单元,用于根据收到的第n-1目标地址,获取与所述第n-1目标地址顺序相连的至少一个后续目标地址;根据所述至少一个后续目标地址,确定至少一个后续掩码并缓存。
23、结合第二方面和上述实现方式,在某些可能的实现方式中,所述掩码确定单元,具体用于当所述第n目标地址与上一次收到的所述第n-1目标地址是连续的,从缓存的所述至少一个后续掩码中确定与所述第n目标地址对应的所述第n掩码;当所述第n目标地址与上一次收到的所述第n-1目标地址不是连续的,对所述第n目标地址进行加密运算得到所述第n掩码。
24、结合第二方面和上述实现方式,在某些可能的实现方式中,所述掩码确定单元,具体还用于对所述第n目标地址进行加密运算得到所述第n掩码。
25、第三方面,提供了一种芯片初始化装置,所述芯片初始化模块包括:控制模块、只读存储器、解密模块和运算核,所述控制模块分别与所述只读存储器、所述解密模块和所述运算核连接,所述只读存储器还与所述解密模块和所述运算核连接;所述控制模块接收触发校验信息,发送读指令和读地址至所述只读存储器读取原始程序数据;所述只读存储器将读取的所述原始程序数据发送至所述运算核和所述解密模块;所述控制模块发送调用指令至所述运算核,所述运算核计算所述原始程序数据的校验数据并发送至所述控制模块;所述控制模块比较所述校验数据和所述只读存储器中的预设数据;若比较通过,所述控制模块发送使能指令至所述解密模块,所述解密模块对所述原始程序数据进行解密,得到引导程序数据并发送至输出端;若比较未通过,所述控制模块发送校本文档来自技高网...
【技术保护点】
1.一种芯片初始化方法,其特征在于,所述芯片初始化方法包括:
2.根据权利要求1所述的芯片初始化方法,其特征在于,所述验证只读存储器中存储的原始程序数据的可靠性包括:
3.根据权利要求2所述的芯片初始化方法,其特征在于,所述确定所述原始程序数据的校验数据包括:
4.根据权利要求1至3任意一项所述的芯片初始化方法,其特征在于,所述对所述原始程序数据进行解密,得到引导程序数据包括:
5.根据权利要求4所述的芯片初始化方法,其特征在于,当N≥2时,所述根据收到的所述第N目标地址确定第N掩码之前,还包括:
6.根据权利要求5所述的芯片初始化方法,其特征在于,所述根据收到的所述第N目标地址确定第N掩码包括:
7.根据权利要求4所述的芯片初始化方法,其特征在于,当N=1时,所述根据收到的所述第N目标地址确定第N掩码包括:
8.一种芯片初始化装置,其特征在于,所述芯片初始化装置包括:
9.一种芯片初始化模块,其特征在于,包括控制模块、只读存储器、解密模块和运算核,所述控制模块分别与所述只读存储器、所
10.根据权利要求9所述的芯片初始化模块,其特征在于,所述解密模块包括依次连接的地址缓存单元、加密运算单元、掩码缓存单元和逻辑运算单元,所述逻辑运算单元还与所述只读存储器连接,所述逻辑运算单元还与所述控制模块连接;
11.根据权利要求9所述的芯片初始化模块,其特征在于,所述控制模块还接收跳过校验信息,发送所述使能指令至所述解密模块,所述解密模块对所述原始程序数据进行解密,得到所述引导程序数据并发送至所述输出端。
12.一种电子设备,其特征在于,所述电子设备包括:
13.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,当所述计算机程序被执行时,实现如权利要求1至7中任意一项所述的芯片初始化方法。
...【技术特征摘要】
1.一种芯片初始化方法,其特征在于,所述芯片初始化方法包括:
2.根据权利要求1所述的芯片初始化方法,其特征在于,所述验证只读存储器中存储的原始程序数据的可靠性包括:
3.根据权利要求2所述的芯片初始化方法,其特征在于,所述确定所述原始程序数据的校验数据包括:
4.根据权利要求1至3任意一项所述的芯片初始化方法,其特征在于,所述对所述原始程序数据进行解密,得到引导程序数据包括:
5.根据权利要求4所述的芯片初始化方法,其特征在于,当n≥2时,所述根据收到的所述第n目标地址确定第n掩码之前,还包括:
6.根据权利要求5所述的芯片初始化方法,其特征在于,所述根据收到的所述第n目标地址确定第n掩码包括:
7.根据权利要求4所述的芯片初始化方法,其特征在于,当n=1时,所述根据收到的所述第n目标地址确定第n掩码包括:
8.一种芯片初始化装置,其特征在于,所述芯片初始化装置包括:
<...【专利技术属性】
技术研发人员:刘宇骐,廖裕民,
申请(专利权)人:深圳市速腾聚创科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。