CN115694817A - 一种提高存内计算芯片内部数据安全性的方法及装置 - Google Patents
一种提高存内计算芯片内部数据安全性的方法及装置 Download PDFInfo
- Publication number
- CN115694817A CN115694817A CN202211326818.3A CN202211326818A CN115694817A CN 115694817 A CN115694817 A CN 115694817A CN 202211326818 A CN202211326818 A CN 202211326818A CN 115694817 A CN115694817 A CN 115694817A
- Authority
- CN
- China
- Prior art keywords
- data
- chip
- memory
- memory computing
- random number
- 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.)
- Granted
Links
Images
Landscapes
- Storage Device Security (AREA)
Abstract
本发明公开了一种提高存内计算芯片内部数据安全性的方法及装置,应用于半导体技术领域,其方法包括:当上位机将AI模型文件传输给下载器之后,下载器对AI模型文件进行加密,并将加密之后的AI模型数据下载到存内计算芯片中的存储器当中;在存内计算芯片上电运行的时候,控制器将加密之后的AI模型数据解密之后,再加载到相应的存内计算单元当中运行。本发明避免了当前存内计算芯片中AI模型文件的数据安全隐患,提高了存内计算芯片内部数据安全性,从而保障存内计算芯片中AI模型文件的数据安全。
Description
技术领域
本发明涉及半导体技术领域,尤其涉及一种提高存内计算芯片内部数据安全性的方法及装置。
背景技术
随着人工智能技术的快速发展和应用,中央处理器和存储器之间需要进行大量且频繁的数据传输,所造成的存储墙和功耗墙的问题,成为了当今公认的传统冯.诺依曼架构体系中最大的瓶颈。为了突破传统冯.诺依曼架构中的以上瓶颈,存算一体架构被提了出来。
存内计算芯片是利用存储器进行矩阵计算的芯片,以存储单元充当计算单元。也就是说,存内计算芯片中的计算单元其实就是存储器芯片中的存储单元。通常在存内计算芯片当中,设有一个存储器模块,它可以存储做矩阵运算时需要的AI模型文件。当存内计算芯片上电运行的时候,控制器首先从存储器当中读取出AI模型文件,然后将相应的权重参数加载到存内计算单元当中。
通常来讲,保存于存内计算芯片中的AI模型文件,都是针对自身芯片的硬件特性进行设计和训练的AI模型。其商业价值巨大,一旦被第三方机构或个人破解或盗用,将会给芯片的设计和生产厂商带来巨大的商业损失。
然而,目前几乎所有的存内计算芯片当中的AI模型文件都是以明文的形式保存于存储器当中,这存在非常大的数据安全风险。第三方完全有可能通过数据读写接口对存储器中的数据进行读取、破解和重新写入。更有甚者,如果破解者对芯片进行打磨和微观拍照的方式,对存储器中的数据进行逐位破解读取,这将可以获取所有存内计算芯片中的AI模型数据。
综上所述,目前我们对于存内计算芯片内部的数据,还没有一种行之有效的保护措施,在商业应用方面存在着较大的数据安全隐患。
发明内容
本发明的目的在于克服现有技术的不足,为避免当前存内计算芯片中AI模型文件的数据安全隐患,从而提供一种提高存内计算芯片内部数据安全性的方法及装置。
本发明的目的是通过以下技术方案来实现的:
一种提高存内计算芯片内部数据安全性的方法,包括以下步骤:
步骤1:当上位机将AI模型文件传输给下载器之后,下载器对AI模型文件进行加密,并将加密之后的AI模型数据下载到存内计算芯片中的存储器当中;
步骤2:在存内计算芯片上电运行的时候,控制器将加密之后的AI模型数据解密之后,再加载到相应的存内计算单元当中运行。
进一步的,所述下载器对AI模型文件进行加密具体包括以下步骤:
步骤101:读取芯片序列号,对芯片序列号进行预处理后,得到伪随机数生成器的种子,从而生成第一伪随机数值;
步骤102:将步骤101得到的第一伪随机数值与原始数据的第一位进行按位异或运算,得到加密之后的数据并下载到存内计算芯片的存储器中;
步骤103:将步骤101生成的第一伪随机数值设置伪随机数生成器的种子,生成第二伪随机数值,然后将第二伪随机数值与原始数据的第二位进行按位异或运算,得到加密之后的数据并下载到存内计算芯片的存储器中,直至原始数据全部加密完成。
进一步的,所述步骤101中的对芯片序列号进行预处理后具体为:将芯片序列号转为特定位宽的散列值,并将该散列值设置为种子。
进一步的,所述将芯片序列号转为特定位宽的散列值采用的算法为CRC算法。
进一步的,所述伪随机数生成器中的生成伪随机数的方法为线性同余方法。
一种提高存内计算芯片内部数据安全性的装置,应用于下载器,包括:
存储器,用于存储计算机程序;
控制器,用于执行所述计算机程序时实现所述的提高存内计算芯片内部数据安全性的方法的步骤。
本发明的有益效果:
1、本发明对存内计算芯片中的内部数据进行了加密处理,增大了内部数据被拷贝和篡改的难度,提升了存内计算芯片内部数据的安全性;
2、本发明的加解密过程,均依赖于芯片当中的全球唯一ID号,这使得每块芯片中的加密数据都是不同的,避免了芯片内部数据被直接拷贝和复用的风险;
3、本发明的加解密过程,采用伪随机数和异或计算的结合,保证了加密数据的随机性,大幅降低了芯片内部数据被暴力穷举破解的风险;
4、本发明的加解密算法,时间和空间复杂度低,拥有相当高的运行效率;
5、本发明的运行流程简单易行,非常有利于在芯片当中进行硬件电路级实现,可以有效降低工程实现的难度和生产制造的成本。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图示出的结构获得其他的附图。
图1是本发明的方法流程图。
图2是本发明的编解码流程图。
图3是硬件连接关系示意图。
图4是芯片内部架构图。
图5是实施例中的原始数据示意图。
图6是实施例中的加密数据1示意图。
图7是实施例中的加密数据2示意图。
图8是实施例中的解密数据示意图。
具体实施方式
应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本实施例中,如图1所示,一种提高存内计算芯片内部数据安全性的方法,包括:当上位机将AI模型文件传输给下载器之后,下载器首先将AI模型文件进行加密,然后将加密之后的AI模型数据下载到存内计算芯片中的存储器当中。当存内计算芯片上电运行的时候,控制器将加密之后的AI模型数据解密之后,再加载到相应的存内计算单元当中运行。
以上提到的加密和解密的计算过程是对称的,其加密和解密对应的编解码过程的流程图,如图2所示;具体包括以下步骤:
步骤1:读取芯片序列号;
步骤2:将序列号转为特定位宽散列值;
步骤3:将散列值设置为种子;
步骤4:生成一个伪随机数;
步骤5:伪随机数与原始数值按位进行异或运算;
步骤6:输出编程到存储器;
步骤7:判断编程是否结束;若是,则结束;若否,则将伪随机数设置为种子,提取下一位原始数值,并返回步骤4。
其中,下载器进行加密的处理过程中,首先将需要下载到芯片内部的原始数据传输到下载器当中,然后下载器从芯片当中读取芯片序列号,此序列号为全球唯一ID号。
以上提到的伪随机数生成器的计算公式如下所示:
此方法在计算机应用数学领域,被称为线性同余法,其中A、C和M都是常量,而xn+1表示第n+1个随机数,xn表示第n个随机数。简而言之,下一个随机数等于上一个随机数与一个常量的乘积加上一个增量之后,再对一个常量做除法得到的余数。
需要说明的是,本技术方案中使用线性同余法,是在本应用场景下最优的选择,可以在不付出太多计算和存储资源的情况下,实现可以满足需求的加密强度。这里不采用冯诺依曼取中算法是因为此算法随机序列周期过短,容易被暴力穷举破解。而不采用更加先进的梅森旋转算法,是因为线性同余法已经可以满足我们的需求,而且梅森旋转算法的时间和空间复杂度较高,会造成数据读写性能下降。面且在芯片中进行电路级实现的时候,芯片面积占用会较大,在实际的工程应用当中,会造成芯片面积过大,同时带来生产制造成本提升的问题。
本方案要解决的问题是避免当前存内计算芯片中AI模型文件的数据安全隐患,提高存内计算芯片内部数据安全性,以保障存内计算芯片中AI模型文件的数据安全。
目前,通常将AI模型下载到存内计算芯片的时候,需要具备上位机、下载器和存内计算芯片(如图3所示)。上位机通常是一台工作站,也可以是一台普通的PC机。当需要将上位机中的AI模型文件下载到存内计算芯片当中时,需要首先将AI模型文件传输给下载器,然后由下载器将原始数据下载到存内计算芯片中的存储器模块。
如图4所示,在存内计算芯片当中通常需要具备控制器、内存、存储器和存内计算阵列。控制器通常是一个通用计算核心,它用于控制整个芯片中的功能实现和数据流动。内存特指随机访问存储器,它用于暂存控制器中需要频繁操作的数据,以实现我们期望控制器实现的相应功能。存储器是存内计算芯片当中存储数据的模块,它主要用于存储AI模型文件,同时也会保存一些硬件基本信息和配置信息等数据。存内计算阵列是专门用于AI神经网络的运行过程中常用的矩阵计算,以大幅提升AI神经网络运行效率,同时大幅降低能耗的极为重要的功能模块。
在常规的存内计算芯片当中,下载器只是将AI模型文件原原本本地下载到存储器当中。也就是说,存内计算芯片的存储器当中,以明文的形式保存了AI模型文件。这对于需要商业应用的存内计算芯片而言,其风险是巨大的。然而,在本发明中,对下载器和存内计算芯片中的控制器的运行逻辑进行改进,大幅地提升存内计算芯片内部AI模型数据的安全性。
以以下为例,假设一块存内计算芯片的ID号为0x8019001A0147383034363539,加解密过程中对ID号进行散列的算法为CRC32,则得到的散列值为1372737899。在进行伪随机数生成的计算过程中,参数A为1103515245,参数C为12345,参数M为32768。
此时我们将如图5所示的一组数据下载到芯片内部,则具体的运行流程是:
首先将需要下载到芯片内部的原始数据传输到下载器当中,然后下载器从芯片当中读取全球唯一ID号。将此全球唯一ID号作为伪随机生成器的种子,生成一个伪随机数值。然后,将此伪随机数值与原始数据的第一位进行按位异或运算,产生加密之后的数据并输出到存内计算芯片的存储器当中。
接下来,将以上产生的随机数值重新设置为伪随机数生成器的种子,再次生成一个伪随机数值。然后,将此伪随机数值与原始数据的第二位进行按位异或运算,产生加密之后的数据并输出到存内计算芯片的存储器当中……
重复进行以上的操作,直至所有原始数据被转换为加密数据。
最终得到的加密数据,如图6所示。可以看到,加密之后的数据已经完全看不到原始数据的特征,而且数值分布随机性非常强。这意味着破解者想要通过暴力穷举的方式,将加密数据还原成原始数据的难度是相当大的。除此之外,由于加密数据的时候,我们是采用芯片当中全球唯一的ID号散列值作为伪随机数生成器种子,这使得即使是同一份原始数据,在不同芯片当中也是以完全不同的加密数据而存在。在这样的情况下,即使破解者想要通过芯片打磨和微观拍摄的方式,将芯片中的内部数据进行直接拷贝和复用也是不可实现的。
如图7所示,如果我们换另一块芯片,其芯片的全球唯一ID号为0x8019002F0147383034363539,则其散列值为896849142。以此散列值作为伪随机数生成器的种子,再对附图5所示的原始数据进行加密处理之后,得到的加密数据如附图7所示。
从图7可以看到,芯片的全球唯一ID号仅有2位数的变化,但是加密数据已经与另一块芯片的加密数据完全不同。这充分说明了,全球唯一ID号作为伪随机数生成器种子,对加密数据有着极强的保护作用。
但是,无论是以上的哪一块芯片,无论它们的全球唯一ID号是多少,它们都可以在加载使用数据的时候,通过再一次运行加密时的计算过程,将加密数据轻松地还原成原始数据。如图8所示,解密数据和原始数据完全一致,这说明本技术方案中的加解密过程,可以充分保证数据的正确性和完整性。
需要特别说明的是,在本实施例中采用的全球唯一ID号散列算法为CRC32,这是因为在本实施例中假定下载器主控芯片和芯片中控制器的位宽均为32位。如果在实际的工程应用当中,下载器主控芯片和芯片中控制器的位宽为16位/64位,甚至是更高的位宽,完全可以选择CRC16/CRC64甚至更大位宽的CRC算法。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详细描述的部分,可以参见其他实施例的相关描述。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、ROM、RAM等。
以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。
Claims (6)
1.一种提高存内计算芯片内部数据安全性的方法,其特征在于,包括以下步骤:
步骤1:当上位机将AI模型文件传输给下载器之后,下载器对AI模型文件进行加密,并将加密之后的AI模型数据下载到存内计算芯片中的存储器当中;
步骤2:在存内计算芯片上电运行的时候,控制器将加密之后的AI模型数据解密之后,再加载到相应的存内计算单元当中运行。
2.根据权利要求1所述的一种提高存内计算芯片内部数据安全性的方法,其特征在于,所述下载器对AI模型文件进行加密具体包括以下步骤:
步骤101:读取芯片序列号,对芯片序列号进行预处理后,得到伪随机数生成器的种子,从而生成第一伪随机数值;
步骤102:将步骤101得到的第一伪随机数值与原始数据的第一位进行按位异或运算,得到加密之后的数据并下载到存内计算芯片的存储器中;
步骤103:将步骤101生成的第一伪随机数值设置伪随机数生成器的种子,生成第二伪随机数值,然后将第二伪随机数值与原始数据的第二位进行按位异或运算,得到加密之后的数据并下载到存内计算芯片的存储器中,直至原始数据全部加密完成。
3.根据权利要求2所述的一种提高存内计算芯片内部数据安全性的方法,其特征在于,所述步骤101中的对芯片序列号进行预处理后具体为:将芯片序列号转为特定位宽的散列值,并将该散列值设置为种子。
4.根据权利要求3所述的一种提高存内计算芯片内部数据安全性的方法,其特征在于,所述将芯片序列号转为特定位宽的散列值采用的算法为CRC算法。
5.根据权利要求2所述的一种提高存内计算芯片内部数据安全性的方法,其特征在于,所述伪随机数生成器中的生成伪随机数的方法为线性同余方法。
6.一种提高存内计算芯片内部数据安全性的装置,其特征在于,应用于下载器,包括:
存储器,用于存储计算机程序;
控制器,用于执行所述计算机程序时实现如权利要求1至5任一项所述的提高存内计算芯片内部数据安全性的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211326818.3A CN115694817B (zh) | 2022-10-27 | 2022-10-27 | 一种提高存内计算芯片内部数据安全性的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211326818.3A CN115694817B (zh) | 2022-10-27 | 2022-10-27 | 一种提高存内计算芯片内部数据安全性的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115694817A true CN115694817A (zh) | 2023-02-03 |
CN115694817B CN115694817B (zh) | 2023-07-14 |
Family
ID=85099343
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211326818.3A Active CN115694817B (zh) | 2022-10-27 | 2022-10-27 | 一种提高存内计算芯片内部数据安全性的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115694817B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080263363A1 (en) * | 2007-01-22 | 2008-10-23 | Spyrus, Inc. | Portable Data Encryption Device with Configurable Security Functionality and Method for File Encryption |
US20090006858A1 (en) * | 2007-06-29 | 2009-01-01 | Duane William M | Secure seed provisioning |
CN110298181A (zh) * | 2019-05-14 | 2019-10-01 | 北京航空航天大学 | 数据加密存储方法、数据解密方法以及加密存储器芯片 |
CN110390074A (zh) * | 2019-07-01 | 2019-10-29 | 浙江大学 | 一种阻式存储器的计算系统 |
-
2022
- 2022-10-27 CN CN202211326818.3A patent/CN115694817B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080263363A1 (en) * | 2007-01-22 | 2008-10-23 | Spyrus, Inc. | Portable Data Encryption Device with Configurable Security Functionality and Method for File Encryption |
US20090006858A1 (en) * | 2007-06-29 | 2009-01-01 | Duane William M | Secure seed provisioning |
CN110298181A (zh) * | 2019-05-14 | 2019-10-01 | 北京航空航天大学 | 数据加密存储方法、数据解密方法以及加密存储器芯片 |
CN110390074A (zh) * | 2019-07-01 | 2019-10-29 | 浙江大学 | 一种阻式存储器的计算系统 |
Non-Patent Citations (2)
Title |
---|
HUANG SHANSHI, JIANG HONGWU, PENG XIAOCHEN: "XOR-CIM: Compute-in-memory SRAM architecture withembedded XOR encryption" * |
尹勋钊, 岳金山, 黄庆荣, 李超, 蔡嘉豪, 杨泽禹, 卓成, 刘明: "存算一体电路与跨层次协同设计优化: 从SRAM到铁电晶体管" * |
Also Published As
Publication number | Publication date |
---|---|
CN115694817B (zh) | 2023-07-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6182132B2 (ja) | メモリスタートアップ時のノイズに基づいた乱数生成システム | |
CN111552931A (zh) | java代码的加壳方法与系统 | |
CN115622684B (zh) | 基于全同态加密的隐私计算异构加速方法及装置 | |
US8681976B2 (en) | System and method for device dependent and rate limited key generation | |
CN108063664B (zh) | 基于配置的密码密钥生成系统 | |
CN1924835A (zh) | 一种基于动态密钥的硬盘数据加密方法及其装置 | |
TW201346637A (zh) | 用於提供記憶體機密性、完整性及重播保護的低負擔密碼方法及裝置 | |
CN108052805B (zh) | 一种数据加解密方法和装置 | |
CN111338565A (zh) | 基于存储器单元的噪声特性生成随机值 | |
CN111538479A (zh) | 开标过程中的随机参数生成方法及装置 | |
CN213876729U (zh) | 一种ssd主控芯片随机缓存保密电路 | |
CN115694817A (zh) | 一种提高存内计算芯片内部数据安全性的方法及装置 | |
CN108572787A (zh) | 一种数据存储、读取的方法及装置 | |
CN112217646A (zh) | 用于实现sm3密码杂凑算法的装置及方法 | |
CN117093964A (zh) | 一种源代码的加密方法、装置、存储介质及电子设备 | |
US20220398339A1 (en) | Protection of stored and communicated secret data against side-channel attacks | |
Dong et al. | G-SM3: high-performance implementation of gpu-based SM3 hash function | |
US11977883B2 (en) | Reconfigurable crypto-processor | |
CN111368316B (zh) | 文件加解密的方法及装置 | |
CN108228525B (zh) | 一种多核8051处理器soc的安全实现装置以及方法 | |
CN102110038B (zh) | 一种安全类芯片的测试电路 | |
CN114423006B (zh) | 一种nfc标签的密钥管理方法 | |
CN116208333B (zh) | 用于智能变电站远控机终端的量子密钥调控方法及系统 | |
US20240273240A1 (en) | Microcontroller, electronic device, and method for encrypting transmission data using the same | |
CN112487448B (zh) | 一种加密信息处理装置、方法及计算机设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |