CN102355352A - 一种数据机密性和完整性保护方法 - Google Patents

一种数据机密性和完整性保护方法 Download PDF

Info

Publication number
CN102355352A
CN102355352A CN2011102072655A CN201110207265A CN102355352A CN 102355352 A CN102355352 A CN 102355352A CN 2011102072655 A CN2011102072655 A CN 2011102072655A CN 201110207265 A CN201110207265 A CN 201110207265A CN 102355352 A CN102355352 A CN 102355352A
Authority
CN
China
Prior art keywords
counter
data
cache
pad
encryption
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
Application number
CN2011102072655A
Other languages
English (en)
Other versions
CN102355352B (zh
Inventor
姚念民
马海峰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Harbin Engineering University
Original Assignee
Harbin Engineering University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Harbin Engineering University filed Critical Harbin Engineering University
Priority to CN201110207265.5A priority Critical patent/CN102355352B/zh
Publication of CN102355352A publication Critical patent/CN102355352A/zh
Application granted granted Critical
Publication of CN102355352B publication Critical patent/CN102355352B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Storage Device Security (AREA)

Abstract

本发明提供的是一种数据机密性和完整性保护方法。当新产生cache行或写脏cache行时,将counter+1,从counter截取若干位,将其与数据块地址连接组成校验数据,将校验数据添加到cache数据行后;再生成加密用的pad,最后将pad和标准cache行XOR后得到密文并将密文和counter保存在内存中;当读取cache行时,用CPU私匙再次进行AES加密生成解密用pad,同时开始从内存取密文,将pad和密文XOR得到cache行明文;明文中取出校验数据,再将事先存储在内存的counter取出并加上地址信息生成校验数据,最后将这两个校验数据进行比较。本方法对counter模式加密进行了改进,使其在保证数据机密性的基础上以很小代价增加了完整性保护功能。

Description

一种数据机密性和完整性保护方法
技术领域
本发明涉及的是一种计算机加密保护方法。
背景技术
数据机密性是指阻止攻击者对数据的非法获得与理解,数据完整性是指对抗对手主动攻击,防止信息被未经授权的篡改,它们是安全体系结构和存储安全领域的重要研究内容。
保护数据机密性主要是通过加密,加密方法分为对称密钥加密法和非对称密钥加密法。前者加密和解密使用相同密匙;后者加密和解密使用不同密匙,即一方公钥,一方私钥。对称密钥加密法分为流加密和块加密,流加密是以位为加密的基本单位,通过密钥流和明文逐位异或(XOR)获得密文,典型流加密方法是一次一密的号码簿(OTP)加密;后者是以数据块为单位进行加密,典型块加密法的模式有电子编码簿(ECB),加密块链(CBC)和计数器模式(counter mode)加密等。由于计数器模式加密可隐藏解密延迟,目前采用的较多。
计数器模式加密是通过CPU维护的计数器counter值来加密数据块,以AES为加密引擎的加密过程是:当新产生或修改数据块时,counter+1,将其和数据块地址等信息相连接后用CPU内保密的对称密匙进行AES加密,生成加密用的pad,再将pad和cache行XOR后得到密文,最后将密文和counter保存在内存中;解密时从内存中取出counter并和数据块地址等信息连接,用CPU私匙对其再次进行AES加密,同时开始从内存取密文,当AES加密和取密文都完成后,将pad和密文XOR得到cache行明文。
数据完整性保护的方法主要有消息认证码(MAC)、哈希树(Hash Tree)、缓冲型Hash树(CHtree),日志型Hash完整性检测(LHash)等。单独的MAC不能防止重放攻击(replay attack),目前数据完整性保护的基础是Hash树。
Hash树也称Merkle树,它是将存储器分成多个等长块,对其构建Hash树。每个存储块对应Hash树一个叶结点,每个内部结点为下属两个结点Hash计算的结果,一直到根结点,存储所有内部结点,树的根结点处于安全的存储区。在校验时,再计算数据块的Hash值,与事先存储的相应Hash值比较,如相同则继续生成上一层Hash值并进行比较,一直到根结点,如某个Hash值不匹配,则发生了篡改。Hash树存在的问题是每次完整性校验所需要的开销很大,导致系统性能显著下降。
发明内容
本发明的目的在于提供一种可使数据机密性和完整性保护的时间和空间代价明显降低,同时没有降低安全性,可防止数据窃取等被动攻击,以及重放攻击和篡改数据等主动攻击的数据机密性和完整性保护方法。
本发明的目的是这样实现的:
CPU内维护一个计数器counter,校验数据为counter的一部分;当新产生cache行或写脏cache行时,将counter+1,从counter截取若干位,将其与数据块地址连接组成校验数据,然后将校验数据添加到cache数据行后,组成组成标准cache行;再将counter和数据块地址信息相连接后用CPU对称密匙进行AES加密,生成加密用的pad,最后将pad和标准cache行XOR后得到密文并将密文和counter保存在内存中;
当读取cache行时,从内存中取出counter并和数据块地址等信息连接,用CPU私匙再次进行AES加密生成解密用pad,同时开始从内存取密文,当AES加密和取密文都完成后,将pad和密文XOR得到cache行明文;明文中取出校验数据,再将事先存储在内存的counter取出并加上地址信息生成校验数据,最后将这两个校验数据进行比较,如完全相同,则数据完整,否则数据被篡改。
本发明的方法的指导思想是:在CPU将cache行数据写入内存前在cache行内加入校验数据后再进行加密,以此来保证数据的机密性;每当CPU从内存中读cache行(数据块)时,将事先存储的校验数据与解密出的校验数据进行比较验证,以此来保证数据的完整性。
本发明的加密算法可以是counter模式加密,它是公认安全的加密算法,已经被证明能防止难度最高的选择明文攻击。本方法对counter模式加密进行了改进,使其在保证数据机密性的基础上以很小代价增加了完整性保护功能。
本方法使数据机密性和完整性保护的时间和空间代价明显降低,同时没有降低安全性。对于数据机密性保护,由于采用counter加密模式和AES加密引擎,它们已经被证明是安全的加密机制,已知的攻击方法几乎不能攻破;对于数据完整性保护,在加入一部分counter加密后,无论篡改的是密文的哪个位置,解密后很难正确得到数据部分和counter明文,这是因为明文cache行在AES中经多轮加密后,数据全部打散,很难再区分哪些是数据位,哪些是校验数据位。数据被篡改后,即使篡改一位,解密后也很难得到加密前的counter,即解密获得的counter和保存在内存的counter将不匹配,从而检测出篡改;另由于counter是每块一个,攻击者不能使用以前用过的counter,这样能防止replay attack。
附图说明
图1是存cache行(加密)流程图;
图2是取cache行(解密/认证)流程图。
具体实施方式
下面举例对本发明做更详细的描述:
CPU读写数据的基本单位是cache行,因此具体实施方式描述下存cache行和取cache行操作。
1.存cache行
采用的加密引擎为AES,加密模式为counter加密。存cache行(加密)流程如附图1所示,具体描述为:
(1)CPU生成一个新counter,从中截取出校验数据,将其附加在cache行后,组成标准cache行(64B)。
(2)用counter加密模式对(counter,address,vector,i)进行AES加密,加密密匙为CPU的私有对称密钥key,生成加密用pad。其中address为数据块的物理地址,vector为常向量,它由CPU在启动进程时随机选定,vector有适当的位数使每组AES加密的输入为128bit,i为数据子块号(对64B的数据块,数据子块数据为4个)。
(3)将加密的pad和标准cache行XOR后得到密文,最后将密文和counter保存在内存。
2.读取cache行
读取cache行(解密/认证)流程如附图2所示,具体描述为:
(1)从内存中取出counter,用CPU对称密匙key开始对(counter,address,vector,i)进行AES加密生成解密用pad,同时开始从内存取密文。
(2)当AES加密和取密文都完成后,将pad和密文XOR得到cache行明文。
(3)从cache行明文中取出counter并从中截取出校验数据;再将内存取出的counter截取出校验数据,两者进行比较,如相同则数据完整,否则数据被篡改。

Claims (1)

1.一种数据机密性和完整性保护方法,其特征是:CPU内维护一个计数器counter,校验数据为counter的一部分;当新产生cache行或写脏cache行时,将counter+1,从counter截取若干位,将其与数据块地址连接组成校验数据,然后将校验数据添加到cache数据行后,组成组成标准cache行;再将counter和数据块地址信息相连接后用CPU对称密匙进行AES加密,生成加密用的pad,最后将pad和标准cache行XOR后得到密文并将密文和counter保存在内存中;
当读取cache行时,从内存中取出counter并和数据块地址信息连接,用CPU私匙再次进行AES加密生成解密用pad,同时开始从内存取密文,当AES加密和取密文都完成后,将pad和密文XOR得到cache行明文;明文中取出校验数据,再将事先存储在内存的counter取出并加上地址信息生成校验数据,最后将这两个校验数据进行比较,如完全相同,则数据完整,否则数据被篡改。
CN201110207265.5A 2011-07-24 2011-07-24 一种数据机密性和完整性保护方法 Expired - Fee Related CN102355352B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201110207265.5A CN102355352B (zh) 2011-07-24 2011-07-24 一种数据机密性和完整性保护方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201110207265.5A CN102355352B (zh) 2011-07-24 2011-07-24 一种数据机密性和完整性保护方法

Publications (2)

Publication Number Publication Date
CN102355352A true CN102355352A (zh) 2012-02-15
CN102355352B CN102355352B (zh) 2015-03-11

Family

ID=45578851

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110207265.5A Expired - Fee Related CN102355352B (zh) 2011-07-24 2011-07-24 一种数据机密性和完整性保护方法

Country Status (1)

Country Link
CN (1) CN102355352B (zh)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102629236A (zh) * 2012-02-22 2012-08-08 哈尔滨工程大学 基于不等长计数器的存储器保护方法
CN102841998A (zh) * 2012-07-11 2012-12-26 哈尔滨工程大学 内存附加校验器的内存数据完整性保护方法
CN103425935A (zh) * 2012-05-16 2013-12-04 侯方勇 基于地址的存储器数据加密方法和装置
CN104636276A (zh) * 2015-01-07 2015-05-20 大连理工大学 一种保护内存存储器数据机密性和完整性的方法
CN105022968A (zh) * 2015-07-30 2015-11-04 哈尔滨工程大学 一种内存数据的完整性校验方法
CN105069379A (zh) * 2015-07-29 2015-11-18 哈尔滨工程大学 一种基于写计数器的存储器完整性保护方法
CN106681941A (zh) * 2015-11-07 2017-05-17 上海复旦微电子集团股份有限公司 存储器的数据写入、读出方法及装置
CN107220560A (zh) * 2017-06-22 2017-09-29 北京航空航天大学 一种基于数据缓存扩充的嵌入式系统数据完整性保护方法
CN107667374A (zh) * 2015-06-25 2018-02-06 英特尔公司 用于存储器保密性、完整性和重放保护的技术
CN108768620A (zh) * 2018-03-26 2018-11-06 海光信息技术有限公司 一种数据处理方法及装置
CN108959129A (zh) * 2018-07-12 2018-12-07 北京航空航天大学 一种基于硬件的嵌入式系统机密性保护方法
CN113642051A (zh) * 2021-10-13 2021-11-12 广州匠芯创科技有限公司 Spi存储设备的加密数据读写方法及嵌入式处理器芯片

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001056221A2 (en) * 2000-01-31 2001-08-02 Vdg Inc. Block encryption method and schemes for data confidentiality and integrity protection
CN1567878A (zh) * 2003-06-27 2005-01-19 华为技术有限公司 一种在无线局域网中进行数据完整性保护的方法
CN1841255A (zh) * 2005-03-30 2006-10-04 侯方勇 保护数据存储的机密性与完整性的方法和装置
US20080279368A1 (en) * 2007-05-10 2008-11-13 Chih-Hsu Yen Low-Latency Method And Apparatus Of Ghash Operation For Authenticated Encryption Galois Counter Mode
CN101478548A (zh) * 2009-01-22 2009-07-08 上海交通大学 数据传输的加密和完整性校验方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001056221A2 (en) * 2000-01-31 2001-08-02 Vdg Inc. Block encryption method and schemes for data confidentiality and integrity protection
CN1567878A (zh) * 2003-06-27 2005-01-19 华为技术有限公司 一种在无线局域网中进行数据完整性保护的方法
CN1841255A (zh) * 2005-03-30 2006-10-04 侯方勇 保护数据存储的机密性与完整性的方法和装置
US20080279368A1 (en) * 2007-05-10 2008-11-13 Chih-Hsu Yen Low-Latency Method And Apparatus Of Ghash Operation For Authenticated Encryption Galois Counter Mode
CN101478548A (zh) * 2009-01-22 2009-07-08 上海交通大学 数据传输的加密和完整性校验方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
张俊钦: "单处理器结构下的存储器机密性和完整性保护技术研究", 《中国优秀硕士学位论文全文数据库》 *

Cited By (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102629236B (zh) * 2012-02-22 2015-02-25 哈尔滨工程大学 基于不等长计数器的存储器保护方法
CN102629236A (zh) * 2012-02-22 2012-08-08 哈尔滨工程大学 基于不等长计数器的存储器保护方法
CN103425935A (zh) * 2012-05-16 2013-12-04 侯方勇 基于地址的存储器数据加密方法和装置
CN102841998A (zh) * 2012-07-11 2012-12-26 哈尔滨工程大学 内存附加校验器的内存数据完整性保护方法
CN102841998B (zh) * 2012-07-11 2014-12-03 哈尔滨工程大学 内存附加校验器的内存数据完整性保护方法
CN104636276A (zh) * 2015-01-07 2015-05-20 大连理工大学 一种保护内存存储器数据机密性和完整性的方法
CN104636276B (zh) * 2015-01-07 2017-06-13 大连理工大学 一种保护内存存储器数据机密性和完整性的方法
CN107667374A (zh) * 2015-06-25 2018-02-06 英特尔公司 用于存储器保密性、完整性和重放保护的技术
CN105069379B (zh) * 2015-07-29 2017-11-21 哈尔滨工程大学 一种基于写计数器的存储器完整性保护方法
CN105069379A (zh) * 2015-07-29 2015-11-18 哈尔滨工程大学 一种基于写计数器的存储器完整性保护方法
CN105022968B (zh) * 2015-07-30 2017-12-19 哈尔滨工程大学 一种内存数据的完整性校验方法
CN105022968A (zh) * 2015-07-30 2015-11-04 哈尔滨工程大学 一种内存数据的完整性校验方法
CN106681941A (zh) * 2015-11-07 2017-05-17 上海复旦微电子集团股份有限公司 存储器的数据写入、读出方法及装置
CN107220560A (zh) * 2017-06-22 2017-09-29 北京航空航天大学 一种基于数据缓存扩充的嵌入式系统数据完整性保护方法
CN108768620A (zh) * 2018-03-26 2018-11-06 海光信息技术有限公司 一种数据处理方法及装置
CN108768620B (zh) * 2018-03-26 2021-04-27 海光信息技术股份有限公司 一种数据处理方法及装置
CN108959129A (zh) * 2018-07-12 2018-12-07 北京航空航天大学 一种基于硬件的嵌入式系统机密性保护方法
CN108959129B (zh) * 2018-07-12 2021-08-24 北京航空航天大学 一种基于硬件的嵌入式系统机密性保护方法
CN113642051A (zh) * 2021-10-13 2021-11-12 广州匠芯创科技有限公司 Spi存储设备的加密数据读写方法及嵌入式处理器芯片

Also Published As

Publication number Publication date
CN102355352B (zh) 2015-03-11

Similar Documents

Publication Publication Date Title
CN102355352B (zh) 一种数据机密性和完整性保护方法
US10187200B1 (en) System and method for generating a multi-stage key for use in cryptographic operations
CN107317666B (zh) 一种支持浮点运算的并行全同态加解密方法
EP2329622B1 (en) Message authentication code pre-computation with applications to secure memory
US8767959B2 (en) Block encryption
TW201812638A (zh) 區塊鏈加密射頻晶片存儲設計方法
Debnath et al. Brief review on journey of secured hash algorithms
CN107070948A (zh) 云存储中基于混合加密算法的签名与验证方法
CN103067170B (zh) 一种基于ext2文件系统的加密方法
CN103716157A (zh) 分组多密钥加密方法及装置
EP2922235B1 (en) Security module for secure function execution on untrusted platform
CN103051446B (zh) 一种密钥加密存储方法
CN102163178A (zh) 数据安全存储方法
CN104396182A (zh) 加密数据的方法
CN110298186B (zh) 一种基于动态可重构密码芯片的无密钥数据加解密方法
CN102811124B (zh) 基于两卡三码技术的系统验证方法
Saikumar DES-Data Encryption Standard
US9391770B2 (en) Method of cryption
Sharma et al. Analysis of AES Encryption with ECC
CN105357004A (zh) 一种医疗隐私数据自加密及解密的方法
CN102629236B (zh) 基于不等长计数器的存储器保护方法
CN102546151A (zh) 一种数据加密、解密方法
Mohammed Automatic key generation of Caesar Cipher
Mateescu et al. A hybrid approach of system security for small and medium enterprises: Combining different cryptography techniques
CN102546152A (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

Granted publication date: 20150311

Termination date: 20200724

CF01 Termination of patent right due to non-payment of annual fee