买专利,只认龙图腾
首页 专利交易 科技果 科技人才 科技服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

【发明公布】一种基于CNOT门的内存SPD保护方法_济南浪潮高新科技投资发展有限公司_201811330065.7 

申请/专利权人:济南浪潮高新科技投资发展有限公司

申请日:2018-11-09

公开(公告)日:2019-03-19

公开(公告)号:CN109492440A

主分类号:G06F21/79(2013.01)I

分类号:G06F21/79(2013.01)I

优先权:

专利状态码:失效-发明专利申请公布后的驳回

法律状态:2022.10.18#发明专利申请公布后的驳回;2019.04.12#实质审查的生效;2019.03.19#公开

摘要:本发明提供一种基于CNOT门的内存SPD保护方法,属于服务器数据保护技术领域,将512字节的内存SPD数据按照一个基本单元4个字节的方式组织成128个基本单元,通过CNOT门对内存SPD数据的每个基本单元施加变换,并以内存SPD伪数据的形式内置到BIOS固件中,在BIOS的MRC中添加内存SPD数据映射模块,该模块对内置于BIOS固件中明码表示的内存SPD伪数据通过CNOT门进行逆变换以得到用于内存参数配置的内存SPD真实数据,从而对内存SPD数据进行保护。

主权项:1.一种基于CNOT门的内存SPD保护方法,其特征在于,处理内存SPD真实数据,将内存SPD真实数据存储时经过CNOT门处理得到内存SPD伪数据;实际使用时再应用经过CNOT门映射内存SPD伪数据得到的内存SPD真实数据。

全文数据:一种基于CNOT门的内存SPD保护方法技术领域本发明涉及服务器数据保护技术,尤其涉及一种基于CNOT门的内存SPD保护方法。背景技术服务器主板上的内存有内存条和表贴内存颗粒两种形式。对于加固型服务器,内存往往采用表贴内存颗粒的方式,以提高稳定性和可靠性。由于表贴内存颗粒不同于内存条厂商生产的标准化的内存条,需要根据内存参数配置规范和主板的PCB特性设计专用的SPDSerialPresenceDetect配置参数,否则可能由于内存参数设置不合理导致主板无法启动。因此内存SPD配置数据对加固服务器厂商很重要。表贴内存颗粒的SPD配置数据可以存放在板载的EEPROM中,也可以内置于BIOSBasicInputOutputSystem固件中,出于节约成本、SPD保护和减少生产环节的考虑,加固型服务器多采用BIOS内置SPD的方式。但是,在这种方式中由于内存SPD数据以明码的形式存在于BIOS的MRCMemoryReferenceCode的SPD数据表中,根据所用的内存颗粒和DIMMDual-in-LineMemoryModule类型会比较容易地在编译生成的BIOS固件中找到SPD所在的明码数据块,其他厂商可以通过借鉴内存SPD配置调试自己的表贴内存。如何简单有效地对内存SPD数据进行加密是一个需要解决的技术问题。发明内容为了解决以上技术问题,本发明提出了一种基于CNOT门的内存SPD保护方法,可简单的对内存SPD数据进行加密,从而对内存SPD数据进行保护。本发明的技术方案:一种基于CNOT门的内存SPD保护方法,处理内存SPD真实数据,将内存SPD真实数据存储时经过CNOT门处理得到内存SPD伪数据;实际使用时再应用经过CNOT门映射内存SPD伪数据得到的内存SPD真实数据。进一步的,将512字节的内存SPD数据按照一个基本单元4个字节的方式组织成128个基本单元,通过CNOT门对内存SPD数据的每个基本单元施加变换,并以内存SPD伪数据的形式内置到BIOS固件中,在BIOS的MRC中添加内存SPD数据映射模块,该模块对内置于BIOS固件中明码表示的内存SPD伪数据通过CNOT门进行逆变换以得到用于内存参数配置的内存SPD真实数据,从而对内存SPD数据进行保护。包括以下步骤:1系统上电,BIOS执行到MRC;2执行用户自定义SPD数据获取模块获取内存SPD配置表中指定偏移量位置处的内存SPD伪数据,每次获取一个字节,重复执行直到获取全部512字节的内存SPD数据并存储到全局数组;其中,内存SPD伪数据由内存SPD真实数据经过CNOT门变换得到并内置于BIOS固件中;此外,由于内存尚不可用,SPD伪数据不能存储到动态分配的内存缓冲区;3执行用户自定义SPD数据映射模块对全局数组中的数据以4个字节为基本单元通过CNOT门进行逆变换得到4个字节的内存SPD真实数据,按照顺序覆盖全局数组原来位置处的4个字节,重复执行直到全部数据处理完毕;4MRC调用ReadSpd函数,ReadSpd函数经过一系列操作获取全局数组中的内存SPD真实数据并返回该内存SPD数据给上层,重复执行直到完成所需全部内存配置参数的获取。本发明的实质是,存储的是经过CNOT门处理得到的内存SPD伪数据,实际使用的是经过CNOT门映射得到的内存SPD真实数据,只要对SPD数据的处理方式不可知,内存SPD真实数据便不可知。本发明仅需对MRC进行改动即可对SPD数据进行加密,简单有效。附图说明图1是基于CNOT门的内存SPD保护方法的示意图。具体实施方式下面结合附图和具体实施例对本发明作进一步说明,但不作为对本发明的限定。一个加固型服务器,采用由DDR4组成的UDIMM表贴内存,无存放内存SPD数据的EEPROM,SPD内置于BIOS固件中。如果不采用本发明所述的内存SPD数据加密方法,SPD数据以明码方式存在于BIOS固件中,则根据UDIMM的内存模组形式及内存颗粒为DDR4等信息,结合DDR4SPD规范,可以推测DDR4SPDGeneralConfigurationSection中的几个比较固定的字段的数据。例如在本实施例中的SPD前四个字节也就是SPDGeneralConfigurationSection前四个字节的数据很可能为“23110C02”:“23”表示SPDBytesTotal为512,SPDBytesUsed为384,DDR4内存SPD总字节数一般为512,SPD使用字节数一般为384,此值比较确定;“11”表示SPDRevision为Revision1.1,这是常见版本,此值比较确定;“0C”表示DRAMDeviceType为DDR4SDRAM,这个字节是被系统BIOS用作决定如何翻译SPDEEPROM这里为BIOS固件中的SPD数据表中所有其他字节的KeyByte,根据所用内存颗粒可以确定此值;“02”表示ModuleType为UDIMM,这个字节也是KeyByte,根据所用的内存模组形式也可以确定此值。因此可以在十六进制的BIOS固件中搜索上述四个字节,一般都可以搜索到,如果不能搜索到则可以改变第一个或者第二个字节的内容,或者只搜索第三个和第四个字节的内容,根据上下文便可确定搜索到的数据是否为SPD数据区块的前四个字节或者第三个和第四个字节,进而可以确定整个SPD数据区块。采用本发明所述的内存SPD数据加密方法,内存SPD真实数据不是以明码的形式直接编译到BIOS固件中,而是将512字节的内存SPD数据按照一个基本单元4个字节的方式组织成128个基本单元,对内存SPD数据的每个基本单元施加CNOT门变换后以内存SPD伪数据的形式内置到BIOS固件中,在BIOS的MRC中添加内存SPD数据映射模块,该模块对内置于BIOS固件中明码表示的内存SPD伪数据进行CNOT门逆变换以得到用于内存参数配置的内存SPD真实数据,从而对内存SPD数据进行加密。使用CNOT门对所有内存SPD真实数据以4个字节为基本单元进行矩阵向量乘法运算得到内存SPD伪数据,对所有内存SPD伪数据进行同样的矩阵向量乘法运算得到内存SPD真实数据。CNOT门为:CNOT门的变换矩阵和逆变换矩阵是同一个矩阵。例如,内存SPD真实数据的前四个字节为“23110C02”,对其进行变换:对上述结果进行逆变换:可见变换前后结果一致;由内存SPD真实数据得到内存SPD伪数据以及MRC由内存SPD伪数据得到内存SPD真实数据时都使用CNOT门,MRC获取到的是内存SPD真实数据。其他厂商在不掌握对SPD处理方式的情况下无法根据硬件组成和SPD规范获取用于搜索的关键字段的数据,也就无法获取整个SPD的数据。以上所述的实施例,只是本发明具体实施方式的一种,本领域的技术人员在本发明技术方案范围内进行的通常变化和替换都应包含在本发明的保护范围内。

权利要求:1.一种基于CNOT门的内存SPD保护方法,其特征在于,处理内存SPD真实数据,将内存SPD真实数据存储时经过CNOT门处理得到内存SPD伪数据;实际使用时再应用经过CNOT门映射内存SPD伪数据得到的内存SPD真实数据。2.根据权利要求1所述的方法,其特征在于,处理内存SPD真实数据时,现将将512字节的内存SPD数据按照一个基本单元4个字节的方式组织成128个基本单元,通过CNOT门对内存SPD数据的每个基本单元施加变换,并以内存SPD伪数据的形式内置到BIOS固件中。3.根据权利要求2所述的方法,其特征在于,在BIOS的MRC中添加内存SPD数据映射模块,该模块对内置于BIOS固件中明码表示的内存SPD伪数据通过CNOT门进行逆变换以得到用于内存参数配置的内存SPD真实数据,从而对内存SPD数据进行保护。4.根据权利要求3所述的方法,其特征在于,主要包括以下步骤:1系统上电,BIOS执行到MRC;2执行用户自定义SPD数据获取模块获取内存SPD配置表中指定偏移量位置处的内存SPD伪数据,每次获取一个字节,重复执行直到获取全部512字节的内存SPD数据并存储到全局数组;其中,内存SPD伪数据由内存SPD真实数据经过CNOT门变换得到并内置于BIOS固件中;3执行用户自定义SPD数据映射模块对全局数组中的数据以4个字节为基本单元通过CNOT门进行逆变换得到4个字节的内存SPD真实数据,按照顺序覆盖全局数组原来位置处的4个字节,重复执行直到全部数据处理完毕;4MRC调用ReadSpd函数,ReadSpd函数经过一系列操作获取全局数组中的内存SPD真实数据并返回该内存SPD数据给上层,重复执行直到完成所需全部内存配置参数的获取。5.根据权利要求4所述的方法,其特征在于,在步骤(2)中,由于内存尚不可用,SPD伪数据不能存储到动态分配的内存缓冲区。6.根据权利要求4所述的方法,其特征在于,所述CNOT门的变换矩阵和逆变换矩阵是同一个矩阵。7.根据权利要求6所述的方法,其特征在于,使用CNOT门对所有内存SPD真实数据以4个字节为基本单元进行矩阵向量乘法运算得到内存SPD伪数据。8.根据权利要求7所述的方法,其特征在于,对所有内存SPD伪数据进行同样的矩阵向量乘法运算得到内存SPD真实数据。

百度查询: 济南浪潮高新科技投资发展有限公司 一种基于CNOT门的内存SPD保护方法

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。