CN107563207A - 加密方法、装置及解密方法、装置 - Google Patents

加密方法、装置及解密方法、装置 Download PDF

Info

Publication number
CN107563207A
CN107563207A CN201710662088.7A CN201710662088A CN107563207A CN 107563207 A CN107563207 A CN 107563207A CN 201710662088 A CN201710662088 A CN 201710662088A CN 107563207 A CN107563207 A CN 107563207A
Authority
CN
China
Prior art keywords
page
physical address
key
random number
pageattribute
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
CN201710662088.7A
Other languages
English (en)
Other versions
CN107563207B (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.)
Haiguang Information Technology Co Ltd
Original Assignee
Analog Microelectronics (shanghai) Co Ltd
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 Analog Microelectronics (shanghai) Co Ltd filed Critical Analog Microelectronics (shanghai) Co Ltd
Priority to CN202010033821.0A priority Critical patent/CN111241564B/zh
Priority to CN201710662088.7A priority patent/CN107563207B/zh
Publication of CN107563207A publication Critical patent/CN107563207A/zh
Application granted granted Critical
Publication of CN107563207B publication Critical patent/CN107563207B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1408Protection against unauthorised use of memory or access to memory by using cryptography
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3242Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Bioethics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Power Engineering (AREA)
  • Storage Device Security (AREA)

Abstract

本发明实施例涉及一种加密方法、装置及解密方法、装置,所述加密方法包括:加解密硬件接收OS发送的第一页面的物理地址和PageAttribute;在被物理地址和PageAttribute触发后,生成第一随机数;根据预存的SwapRootKey以及第一随机数,生成第一密钥和第二密钥;根据第一密钥,对第一页面进行加密,生成第一页面的加密内容;根据第二密钥、第一随机数、第二随机数、IV、第一页面的加密内容及PageAttribute,生成第一页面的MAC;其中,第一随机数、第二随机数、IV、PageAttribute、MAC及第一页面的加密内容,构成encrypt_facility_info。由此,防止页面从内存换出到Swap空间时,页面被窃取或者泄露。

Description

加密方法、装置及解密方法、装置
技术领域
本发明涉及计算机安全领域,尤其涉及一种加密方法、装置及解密方法、装置。
背景技术
在计算机服务器系统运行的过程中,因为某种原因,例如物理内存不够,需要将内存中的某些页面(Page)换出到交换(Swap)空间,从而将该物理页面给本虚拟机或者其他虚拟机使用。
计算机中服务器操作系统(Operating System,OS)在做Swap处理的时候,比如,在超威半导体公司(Advanced Micro Devices,AMD)的安全加密虚拟化(Secure EncryptedVirtualization,SEV)加密,安全存储加密(Secure Memory Encryption,SME)方案中,当物理页面被换出到Swap空间的时候,并没有加密,即Swap空间中保存的内容没有加密,此时,黑客或者不法分子可以窃取Swap空间中存储的内容,从而造成机密信息的被攫取或泄露。
发明内容
本发明实施例提供了一种加密方法、装置及解密方法、装置,以解决页面从内存换出到Swap空间时,页面被窃取或者泄露的问题,以及当页面从Swap空间换入内存时,页面不完整的问题。
第一方面,提供了一种加密方法,所述方法应用于将第一页面从第一空间换出到第二空间,所述方法包括:
加解密硬件接收操作系统OS发送的第一页面的物理地址和页面属性PageAttribute;在被所述物理地址和所述PageAttribute触发后,生成第一随机数;根据预存的交换页面根密钥SwapRootKey以及所述第一随机数,生成第一密钥和第二密钥;根据所述第一密钥,对第一页面进行加密,生成第一页面的加密内容;根据所述第二密钥、所述第一随机数、第二随机数、初始向量IV、第一页面的加密内容及所述PageAttribute生成第一页面的信息验证码MAC;其中,所述第一随机数、第二随机数、IV、PageAttribute、MAC及第一页面的加密内容,构成加密辅助信息encrypt_facility_info;将所述encrypt_facility_info发送给所述OS。
在一种可能的实现方式中,当所述OS为主机Host OS时,所述第一页面的物理地址为第一页面的真正物理地址;或者,当所述OS为客机Guest OS时,所述第一页面的物理地址为第一页面的虚拟物理地址。
在一种可能的实现方式中,当Host OS将Guest OS的第一页面从第一空间换出到第二空间时,所述加解密硬件接收OS发送的第一页面的物理地址和PageAttribute,具体包括:所述加解密硬件接收Host OS发送的第一页面的真正物理地址、第一页面的虚拟物理地址、第一页面的PageAttribute,以及虚拟机标签VMID。
在一种可能的实现方式中,所述加解密硬件接收Host OS发送的第一页面的真正物理地址、第一页面的虚拟物理地址、第一页面的PageAttribute,以及VMID之后,还包括:在被所述第一页面的真正物理地址和所述PageAttribute触发后,所述加解密硬件生成第一随机数;将所述第一页面的虚拟物理地址和所述VMID进行验证,以及,查询内存中预存的页框属性表PFAT,将所述第一页面的真正物理地址和所述PFAT中的第一页面的真正物理地址进行验证;当验证通过后,根据预存的SwapRootKey以及所述第一随机数,生成第一密钥和第二密钥。
第二方面,提供了一种加密装置,所述装置应用于将第一页面从第一空间换出到第二空间,所述装置包括:接收单元,用于接收OS发送的第一页面的物理地址和PageAttribute;生成单元,用于在被所述物理地址和所述PageAttribute触发后,生成第一随机数;所述生成单元,还用于根据预存的SwapRootKey以及所述第一随机数,生成第一密钥和第二密钥;加密单元,用于根据所述第一密钥,对第一页面进行加密,生成第一页面的加密内容;所述生成单元,还用于根据所述第二密钥、所述第一随机数、第二随机数、初始向量IV、第一页面的加密内容及所述PageAttribute生成第一页面的信息验证码MAC;其中,所述第一随机数、第二随机数、IV、PageAttribute、MAC及第一页面的加密内容,构成加密辅助信息encrypt_facility_info;发送单元,将所述encrypt_facility_info发送给所述OS。
在一种可能的实现方式中,当所述OS为主机Host OS时,所述第一页面的物理地址为第一页面的真正物理地址;或者,当所述OS为客机Guest OS时,所述第一页面的物理地址为第一页面的虚拟物理地址。
在一种可能的实现方式中,当Host OS将Guest OS的第一页面从第一空间换出到第二空间时,所述接收单元,具体用于:接收Host OS发送的第一页面的真正物理地址、第一页面的虚拟物理地址、第一页面的PageAttribute,以及虚拟机标签VMID。
在一种可能的实现方式中,所述装置还包括:验证单元;所述生成单元,还用于在被所述第一页面的真正物理地址和所述PageAttribute触发后,生成第一随机数;所述验证单元,用于将所述第一页面的虚拟物理地址和所述VMID进行验证,以及,查询内存中预存的页框属性表PFAT,将所述第一页面的真正物理地址和所述PFAT中的第一页面的真正物理地址进行验证;所述生成单元,还用于当验证通过后,根据预存的SwapRootKey以及所述第一随机数,生成第一密钥和第二密钥。
第三方面,提供了一种解密方法,所述方法应用于将第一页面从第二空间换入到第一空间,所述方法包括:加解密硬件接收OS发送的encrypt_facility_info;其中,所述encrypt_facility_info包括第一随机数、第二随机数、IV、PageAttribute、信息验证码及第一页面的加密内容;根据加解密硬件中预存的SwapRootKey以及所述第一随机数,生成第一密钥和第二密钥;根据所述第二密钥和MAC,对所述第一页面进行完整性校验;在完整性校验通过后,根据所述第一密钥,对第一页面的加密内容进行解密,生成第一页面;将所述第一页面发送给所述OS。
第四方面,提供了一种解密装置,所述装置应用于将第一页面从第二空间换入到第一空间,所述装置包括:接收单元,用于接收操作系统OS发送的加密设施信息encrypt_facility_info;其中,所述encrypt_facility_info包括第一随机数、第二随机数、初始向量IV、页面属性PageAttribute、信息验证码及第一页面的加密内容;生成单元,用于根据加解密硬件中预存的交换页面根密钥SwapRootKey以及所述第一随机数,生成第一密钥和第二密钥;校验单元,用于根据所述第二密钥和MAC,对所述第一页面进行完整性校验;解密单元,用于在完整性校验通过后,根据所述第一密钥,对第一页面的加密内容进行解密,生成第一页面;发送单元,用于将所述第一页面发送给所述OS。
附图说明
图1为本发明实施例提供的生成SwapRootKey的示意图;
图2为本发明实施例一提供的加密方法流程示意图;
图3为本发明实施例一提供的加密方法的一种实现方式示意图;
图4为本发明实施例一提供的加密方法的又一种实现方式示意图;
图5为本发明实施例一提供的加密方法的再一种实现方式示意图;
图6为本发明实施例二提供的解密方法流程示意图;
图7为本发明实施例二提供的一种实现方式示意图的一种实现方式示意图;
图8为本发明实施例二提供的解密方法又一种实现方式示意图;
图9为本发明实施例二提供的解密方法再一种实现方式示意图;
图10为本发明实施例三提供的加密装置结构示意图;
图11为本发明实施例四提供的解密装置结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图和实施例,对本发明实施例中的技术方案进行清楚地描述。
图1为本发明实施例提供的生成交换页面根密钥(SwapRootKey)的示意图。如图1所示,在计算机刚启动的时候,在计算机中产生一个一次性密钥,即SwapRootKey,并且保存在加解密硬件中,该加解密硬件可以是安全处理器(Secure Processor),此SwapRootKey只有加解密硬件可以使用,每次重启计算机时,都生成一个新的SwapRootKey。
加解密硬件提供接口ENCRYPT_FOR_PAGE_OUT,也可以由计算机直接提供特殊特权级指令来实现。
图2为本发明实施例一提供的加密方法流程示意图。该方法的执行主体为加解密硬件。该方法应用于将第一页面从第一空间换出到第二空间,第一空间可以是内存,第二空间可以是Swap空间,比如当内存不够使用时,需要将一些物理页面临时换出到Swap空间,OS可以是主机操作系统(Host OS),比如,虚拟机管理器(Hypervisor),也可以是客机操作系统(Guest OS)。如图2所示,该方法包括以下步骤:
步骤210,加解密硬件接收OS发送的第一页面的物理地址和页面属性(PageAttribute)。
步骤220,在被物理地址和PageAttribute触发后,生成第一随机数。
其中,加解密硬件在接收到物理地址和PageAttribute后,生成第一随机数。
步骤230,根据预存的SwapRootKey以及第一随机数,生成第一密钥和第二密钥。
步骤240,根据第一密钥,对第一页面进行加密,生成第一页面的加密内容。
步骤250,根据第二密钥、第一随机数、第二随机数、初始向量(initializationvector,IV)、第一页面的加密内容及PageAttribute生成第一页面的信息验证码(MessageAuthentication Code,MAC);其中,第一随机数、第二随机数、IV、PageAttribute、MAC及第一页面的加密内容,构成加密辅助信息encrypt_facility_info。
步骤260,将encrypt_facility_info发送给所述OS。
在一种可能的实现方式中,当OS为Host OS,比如Hypervisor时,Hypervisor可以将自身使用的内存页面换出到Swap空间。如图3所示,首先,Hypervisor得到需要换出页面的物理地址,该物理地址为页面的真正物理地址,例如,第一页面的真正物理地址。然后,查询自己的页表得出该第一页面的相关信息,即PageAttribute,比如第一页面的读写权限等。接着,将第一页面的物理地址及PageAttribute发送给加解密硬件。
加解密硬件接收到第一页面的物理地址及PageAttribute后,随机生成第一随机数Key_ID。根据预存的SwapRootKey和Key_ID,生成第一密钥,即页面加密密钥PageEncryptKey,以及第二密钥,即页面完整性密钥PageIntegrityKey。
加解密硬件进行加密计算,即利用PageEncryptKey进行加密计算,比如,利用高级加密标准(Advanced Encryption Standard,AES)算法对第一页面进行加密计算,生成第一页面的加密内容。接着,加解密硬件进行完整性计算,即利用第二密钥、第一随机数、第二随机数,即唯一编码(Unique Identification,UID)、(initialization vector,IV)、第一页面的加密内容以及PageAttribute,生成第一页面的MAC。
其中,第一随机数、第二随机数、IV、PageAttribute、MAC及第一页面的加密内容,构成encrypt_facility_info。最后,将encrypt_facility_info发送给Hypervisor。
Hypervisor更新自己的页表,将页表中对应的表项删除,即删除页面中的一个条目,比如虚拟地址到物理地址的映射,将页面标记为可用。
在另一个可能的实现方式中,当OS为Guest OS时,Guest OS可以将自身使用的内存页面换出到Swap空间。如图4所示,首先,Guest OS得到需要换出页面的物理地址,此时,该第一页面的物理地址,在Guest OS来看,其为第一页面的真正物理地址,但在Host OS来看,是第一页面的虚拟物理地址。然后,Guest OS查询自己的页表得出该第一页面的PageAttribute。接着,将第一页面的物理地址及PageAttribute发送给加解密硬件。
加解密硬件接收到第一页面的物理地址及PageAttribute后,随机生成第一随机数Key_ID。根据预存的SwapRootKey和Key_ID,生成PageEncryptKey以及PageIntegrityKey。加解密硬件进行加密计算及完整性计算,生成第一页面的加密内容及第一页面的MAC。最后,将encrypt_facility_info发送给Guest OS。
Guest OS更新自己的页表,将页表中对应的表项删除,即删除页面中的一个条目,比如虚拟地址到物理地址的映射,将页面标记为可用。
在再一种可能的实现方式中,Host OS,比如Hypervisor,经授权可以将GuestOS使用的内存页面换出到Swap空间。首先,Hypervisor根据某些策略寻找可以换出的Guest OS的页面的物理地址,(该页面的物理地址在Guest OS看来是页面的真正物理地址,在HostOS看来是页面的虚拟物理地址)比如第一页面的物理地址,其中,该些策略可以根据页面访问的频率,频率低则可以换出,或者也可以根据页面访问的时间,如果访问时间早,最近没有访问,则可以换出等。由于这时第一页面的PageAttribute根据实现不同有可能部分信息Hypervisor无法获取,这里Hypervisor可以清空,余下信息由硬件补上,或者如果Hypervisor对这部分信息有记录,Hypervisor可以提供,但是硬件需要对这部分信息进行验证。然后Hypervisor查看页表,得到第一页面真正的物理地址,最后将需要加密的第一页面真正的物理地址,第一页面的虚拟物理地址,虚拟机标签(Virtual MachineIdentifier,VMID),PageAttribute等一起发送给加解密硬件。加解密硬件随机产生KEY_ID,然后查询页框属性表(Page Frame Attribute Table,PFAT),验证第一页面的虚拟物理地址是否属于VMID,第一页面的真正物理地址与输入是否(即与PFAT中第一页面的真正物理地址)一致。如果验证失败,则返回错误。如果验证通过,根据SwapRootKey和Key_ID产生PageEncryptKey和PageIntegrityKey,进行加密计算和完整性计算,更新PFAT。然后将encrypt_facility_info发送给Hypervisor。
Hypervisor删除自己维护的Guest OS物理地址到Host OS物理地址映射表中的表项,标记物理页面可用。
需要说明的是,后两种实现方式中所描述的加密计算以及完整性计算与第一种实现方式中的过程相同,此处不再赘述。
其中,第二随机数UID,用于防止重放攻击;IV由加解密硬件指定或者随机产生。
由此,实现了在将页面从内存换出到Swap空间时,对换出的页面进行了完整性保护和加密,进而防止了机密内容泄露或者被篡改。
图6为本发明实施例二提供的解密方法流程示意图。该方法的执行主体为加解密硬件。该方法应用于将第一页面从第二空间换入到第一空间,第一空间可以是内存,第二空间可以是Swap空间,比如当运行时发生缺页中断,需要将一些物理页面换出到内存。如图6所示,该方法包括以下步骤:
步骤610,加解密硬件接收OS发送的第一页面的encrypt_facility_info。
其中,encrypt_facility_info包括第一随机数、第二随机数、IV、PageAttribute、MAC及第一页面的加密内容。
步骤620,根据加解密硬件中预存的SwapRootKey以及第一随机数,生成第一密钥和第二密钥。
步骤630,根据所述第二密钥和MAC,对第一页面进行完整性校验。
步骤640,在完整性校验通过后,根据所述第一密钥,对第一页面的加密内容进行解密,生成第一页面。
步骤650,将第一页面发送给OS。
在一种可能的实现方式中,当OS为Host OS,比如Hypervisor时,Hypervisor可以将自己的页面从Swap空间换出到内存。如图7所示,Hypervisor运行时发生缺页中断,Hypervisor寻找空闲物理页面,根据缺页线性地址,从Swap空间查找到需要换入到内存的页面的物理地址,比如需要换入内存的页面为第一页面,将第一页面的加密结果拷贝到此空闲页面,最后将第一页面的encrypt_facility_info,发送给加解密硬件。
加解密硬件用其预存的SwapRootKey,以及encrypt_facility_info中预存的Key_ID计算出第一密钥和第二密钥,并利用第二密钥和MAC,进行完整性校验,接着,在完整性校验通过后,利用第一密钥,解密第一页面的加密内容。然后,检查UID,如果验证没有通过,则返回错误结果。如果验证通过,那么返回第一页面。最后,加解密硬件将第一页面发送给Hypervisor,Hypervisor更新页表。
在另一种可能的实现方式中,当OS为Guest OS时,可以将自己页面从Swap空间换入内存。如图8所示,Guest OS运行时发生缺页中断,其OS从物理内存中寻找空闲物理页面,根据缺页线性地址,找到空闲物理页面,然后从Swap空间寻找需要换入内存的页面的encrypt_facility_info,即第一页面的encrypt_facility_info,将encrypt_facility_info拷贝到此空闲物理页面,最后将encrypt_facility_info,发送给加解密硬件。
加解密硬件用Key_ID和SwapRootKey计算出第一密钥和第二密钥,利用第二密钥和MAC做完整性校验,接着,在完整性校验通过后,利用第一密钥解密第一页面的加密内容,然后检查UID,如果验证没有通过,则返回错误结果。如果验证通过,那么返回第一页面。最后,加解密硬件将第一页面发送给Guest OS,Guest OS更新页表。
在再一种可能的实现方式中,Hypervisor经授权可以将Guest OS需要使用的页面从Swap空间换入到内存。如图9所示,首先Guest OS在运行时发生缺页中断,Hypervisor捕获这个中断,得到需要换入的Guest OS物理页面地址,比如,第一页面的物理地址。然后,Host OS寻找空闲物理页面,找到后,根据Guest OS物理页面地址,从Swap空间查找需要换出到内存的第一页面的加密结果,拷贝到此空闲页面。最后将此页面和相对应的encrypt_facility_info,发送给加解密硬件。加解密硬件用Key_ID和SwapRootKey计算出PageIntegrityKey做完整性检查,计算出PageEncryptKey解密,然后检查UID,如果验证没有通过,则返回错误结果。如果验证通过,更新PFAT,记录VMID等信息,返回第一页面给Hypervisor。
Hypervisor接收到第一页面后,更新Guest OS物理页面到Host物理页面映射表,物理页面地址标记为可用。
由此,实现了将页面从Swap空间换入内存时,做完整性校验和解密,实现了对加密内容的完整性校验及解密。
图10为本发明实施例三提供的加密装置结构示意图。该装置1000应用于将第一页面从第一空间换出到第二空间,如图10所示,装置1000包括:接收单元1010,生成单元1020,加密单元1030,发送单元1040。
接收单元1010,用于接收OS发送的第一页面的物理地址和PageAttribute。
生成单元1020,用于在被所述物理地址和PageAttribute触发后,生成第一随机数。
生成单元1020,还用于根据预存的SwapRootKey以及第一随机数,生成第一密钥和第二密钥。
加密单元1030,用于根据第一密钥,对第一页面进行加密,生成第一页面的加密内容。
生成单元1020,还用于根据第二密钥、第一随机数、第二随机数、IV、第一页面的加密内容及PageAttribute,生成第一页面的MAC;其中,第一随机数、第二随机数、IV、PageAttribute、MAC及第一页面的加密内容,构成encrypt_facility_info。
发送单元1040,用于将encrypt_facility_info发送给OS。
其中,当OS为主机Host OS时,第一页面的物理地址为第一页面的真正物理地址;或者,当OS为客机Guest OS时,第一页面的物理地址为第一页面的虚拟物理地址。
其中,当Host OS将Guest OS的第一页面从第一空间换出到第二空间时,接收单元1010,具体用于:接收Host OS发送的第一页面的真正物理地址、第一页面的虚拟物理地址、第一页面的PageAttribute,以及VMID。
其中,所述装置还包括:验证单元1050。
生成单元1020,还用于在被第一页面的真正物理地址和PageAttribute触发后,生成第一随机数。
验证单元1050,用于将第一页面的虚拟物理地址和VMID进行验证,以及,查询内存中预存的PFAT,将第一页面的真正物理地址和PFAT中的第一页面的真正物理地址进行验证。
生成单元1020,还用于当验证通过后,根据预存的SwapRootKey以及第一随机数,生成第一密钥和第二密钥。
图11为本发明实施例四提供的解密装置结构示意图。该解密装置1100应用于将第一页面从第二空间换入到第一空间,包括:接收单元1110,生成单元1120,解密单元1130,校验单元1140和发送单元1150。
接收单元1110,用于接收OS发送的encrypt_facility_info;其中,encrypt_facility_info包括第一随机数、第二随机数、IV、PageAttribute、MAC及第一页面的加密内容。
生成单元1120,用于根据加解密硬件中预存的SwapRootKey以及第一随机数,生成第一密钥和第二密钥。
校验单元1130,用于根据第二密钥和MAC,对第一页面进行完整性校验。
解密单元1140,用于在完整性校验通过后,根据第一密钥,对第一页面的加密内容进行解密,生成第一页面。
发送单元1150,用于将第一页面发送给OS。
结合本发明公开内容所描述的方法或者算法的步骤可以硬件的方式来实现,也可以是由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于随机存取存储器(Random Access Memory,RAM)、闪存、只读存储器(ReadOnly Memory,ROM)、可擦除可编程只读存储器(Erasable Programmable ROM,EPROM)、电可擦可编程只读存储器(Electrically EPROM,EEPROM)、寄存器、硬盘、移动硬盘、只读光盘(CD-ROM)或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于ASIC中。另外,该ASIC可以位于核心网接口设备中。当然,处理器和存储介质也可以作为分立组件存在于核心网接口设备中。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。

Claims (10)

1.一种加密方法,其特征在于,所述方法应用于将第一页面从第一空间换出到第二空间,所述方法包括:
加解密硬件接收操作系统OS发送的第一页面的物理地址和页面属性PageAttribute;
在被所述物理地址和所述PageAttribute触发后,生成第一随机数;
根据预存的交换页面根密钥SwapRootKey以及所述第一随机数,生成第一密钥和第二密钥;
根据所述第一密钥,对第一页面进行加密,生成第一页面的加密内容;
根据所述第二密钥、所述第一随机数、第二随机数、初始向量IV、第一页面的加密内容及所述PageAttribute生成第一页面的信息验证码MAC;其中,所述第一随机数、第二随机数、IV、PageAttribute、MAC及第一页面的加密内容,构成加密辅助信息encrypt_facility_info;
将所述encrypt_facility_info发送给所述OS。
2.根据权利要求1所述的方法,其特征在于,当所述OS为主机HostOS时,所述第一页面的物理地址为第一页面的真正物理地址;或者,
当所述OS为客机GuestOS时,所述第一页面的物理地址为第一页面的虚拟物理地址。
3.根据权利要求1所述的方法,其特征在于,当HostOS将GuestOS的第一页面从第一空间换出到第二空间时,所述加解密硬件接收OS发送的第一页面的物理地址和PageAttribute,具体包括:
所述加解密硬件接收HostOS发送的第一页面的真正物理地址、第一页面的虚拟物理地址、第一页面的PageAttribute,以及虚拟机标签VMID。
4.根据权利要求3所述的方法,其特征在于,所述加解密硬件接收HostOS发送的第一页面的真正物理地址、第一页面的虚拟物理地址、第一页面的PageAttribute,以及VMID之后,还包括:
在被所述第一页面的真正物理地址和所述PageAttribute触发后,所述加解密硬件生成第一随机数;
将所述第一页面的虚拟物理地址和所述VMID进行验证,以及,查询内存中预存的页框属性表PFAT,将所述第一页面的真正物理地址和所述PFAT中的第一页面的真正物理地址进行验证;
当验证通过后,根据预存的SwapRootKey以及所述第一随机数,生成第一密钥和第二密钥。
5.一种加密装置,其特征在于,所述装置应用于将第一页面从第一空间换出到第二空间,所述装置包括:
接收单元,用于接收操作系统OS发送的第一页面的物理地址和页面属性PageAttribute;
生成单元,用于在被所述物理地址和所述PageAttribute触发后,生成第一随机数;
所述生成单元,还用于根据预存的交换页面根密钥SwapRootKey以及所述第一随机数,生成第一密钥和第二密钥;
加密单元,用于根据所述第一密钥,对第一页面进行加密,生成第一页面的加密内容;
所述生成单元,还用于根据所述第二密钥、所述第一随机数、第二随机数、初始向量IV、第一页面的加密内容及所述PageAttribute,生成第一页面的信息验证码MAC;其中,所述第一随机数、第二随机数、IV、PageAttribute、MAC及第一页面的加密内容,构成加密辅助信息encrypt_facility_info;
发送单元,用于将所述encrypt_facility_info发送给所述OS。
6.根据权利要求5所述的装置,其特征在于,当所述OS为主机HostOS时,所述第一页面的物理地址为第一页面的真正物理地址;或者,
当所述OS为客机GuestOS时,所述第一页面的物理地址为第一页面的虚拟物理地址。
7.根据权利要求5所述的装置,其特征在于,当HostOS将GuestOS的第一页面从第一空间换出到第二空间时,所述接收单元,具体用于:
接收HostOS发送的第一页面的真正物理地址、第一页面的虚拟物理地址、第一页面的PageAttribute,以及虚拟机标签VMID。
8.根据权利要求7所述的方法,其特征在于,所述装置还包括:验证单元;
所述生成单元,还用于在被所述第一页面的真正物理地址和所述PageAttribute触发后,生成第一随机数;
所述验证单元,用于将所述第一页面的虚拟物理地址和所述VMID进行验证,以及,查询内存中预存的页框属性表PFAT,将所述第一页面的真正物理地址和所述PFAT中的第一页面的真正物理地址进行验证;
所述生成单元,还用于当验证通过后,根据预存的SwapRootKey以及所述第一随机数,生成第一密钥和第二密钥。
9.一种解密方法,其特征在于,所述方法应用于将第一页面从第二空间换入到第一空间,所述方法包括:
加解密硬件接收操作系统OS发送的加密设施信息encrypt_facility_info;其中,所述encrypt_facility_info包括第一随机数、第二随机数、初始向量IV、页面属性PageAttribute、信息验证码MAC及第一页面的加密内容;
根据加解密硬件中预存的交换页面根密钥SwapRootKey以及所述第一随机数,生成第一密钥和第二密钥;
根据所述第二密钥和所述MAC,对所述第一页面进行完整性校验;
在完整性校验通过后,根据所述第一密钥,对第一页面的加密内容进行解密,生成第一页面;
将所述第一页面发送给所述OS。
10.一种解密装置,其特征在于,所述装置应用于将第一页面从第二空间换入到第一空间,所述装置包括:
接收单元,用于接收操作系统OS发送的加密设施信息encrypt_facility_info;其中,所述encrypt_facility_info包括第一随机数、第二随机数、初始向量IV、页面属性PageAttribute、信息验证码MAC及第一页面的加密内容;生成单元,用于根据加解密硬件中预存的交换页面根密钥SwapRootKey以及所述第一随机数,生成第一密钥和第二密钥;
校验单元,用于根据所述第二密钥和所述MAC,对所述第一页面进行完整性校验;
解密单元,用于在完整性校验通过后,根据所述第一密钥,对第一页面的加密内容进行解密,生成第一页面;
发送单元,用于将所述第一页面发送给所述OS。
CN201710662088.7A 2017-08-04 2017-08-04 加密方法、装置及解密方法、装置 Active CN107563207B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202010033821.0A CN111241564B (zh) 2017-08-04 2017-08-04 内存页面交换方法和安全处理器
CN201710662088.7A CN107563207B (zh) 2017-08-04 2017-08-04 加密方法、装置及解密方法、装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710662088.7A CN107563207B (zh) 2017-08-04 2017-08-04 加密方法、装置及解密方法、装置

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN202010033821.0A Division CN111241564B (zh) 2017-08-04 2017-08-04 内存页面交换方法和安全处理器

Publications (2)

Publication Number Publication Date
CN107563207A true CN107563207A (zh) 2018-01-09
CN107563207B CN107563207B (zh) 2019-11-22

Family

ID=60974237

Family Applications (2)

Application Number Title Priority Date Filing Date
CN202010033821.0A Active CN111241564B (zh) 2017-08-04 2017-08-04 内存页面交换方法和安全处理器
CN201710662088.7A Active CN107563207B (zh) 2017-08-04 2017-08-04 加密方法、装置及解密方法、装置

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN202010033821.0A Active CN111241564B (zh) 2017-08-04 2017-08-04 内存页面交换方法和安全处理器

Country Status (1)

Country Link
CN (2) CN111241564B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109635610A (zh) * 2018-12-11 2019-04-16 北京智芯微电子科技有限公司 Rfid标签数据的读写系统及方法
CN109670345A (zh) * 2018-12-21 2019-04-23 成都海光集成电路设计有限公司 内存页面换入换出的保护方法、加速器模块和soc芯片
CN109725983A (zh) * 2018-11-22 2019-05-07 海光信息技术有限公司 一种数据交换方法、装置、相关设备及系统
CN109726566A (zh) * 2018-11-22 2019-05-07 成都海光集成电路设计有限公司 基于安全内存加密技术的加密系统和加密方法
CN110188051A (zh) * 2019-02-22 2019-08-30 成都海光集成电路设计有限公司 标记与物理地址相关的控制信息的方法、处理系统和设备

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022000223A1 (zh) * 2020-06-30 2022-01-06 浙江大学 一种基于定制硬件安全属性的内核敏感数据保护方法
CN111967065B (zh) * 2020-08-17 2023-10-27 海光信息技术股份有限公司 一种数据保护方法、处理器及电子设备
CN116108454B (zh) * 2023-04-06 2023-06-30 支付宝(杭州)信息技术有限公司 内存页面管理方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080077767A1 (en) * 2006-09-27 2008-03-27 Khosravi Hormuzd M Method and apparatus for secure page swapping in virtual memory systems
US20080201540A1 (en) * 2007-02-16 2008-08-21 Ravi Sahita Preservation of integrity of data across a storage hierarchy
CN101621801A (zh) * 2009-08-11 2010-01-06 深圳华为通信技术有限公司 无线局域网的认证方法、系统及服务器、终端
CN103139146A (zh) * 2011-11-24 2013-06-05 成绵广 认证方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6003117A (en) * 1997-10-08 1999-12-14 Vlsi Technology, Inc. Secure memory management unit which utilizes a system processor to perform page swapping
EP1870814B1 (en) * 2006-06-19 2014-08-13 Texas Instruments France Method and apparatus for secure demand paging for processor devices
CN101403992B (zh) * 2008-07-18 2011-07-06 华为技术有限公司 实现远程内存交换的方法、装置及系统
CN102625300B (zh) * 2011-01-28 2015-07-08 华为技术有限公司 密钥生成方法和设备
CN102387152A (zh) * 2011-11-03 2012-03-21 北京锐安科技有限公司 一种基于预设密钥的对称加密通信方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080077767A1 (en) * 2006-09-27 2008-03-27 Khosravi Hormuzd M Method and apparatus for secure page swapping in virtual memory systems
US20080201540A1 (en) * 2007-02-16 2008-08-21 Ravi Sahita Preservation of integrity of data across a storage hierarchy
CN101621801A (zh) * 2009-08-11 2010-01-06 深圳华为通信技术有限公司 无线局域网的认证方法、系统及服务器、终端
CN103139146A (zh) * 2011-11-24 2013-06-05 成绵广 认证方法

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109725983A (zh) * 2018-11-22 2019-05-07 海光信息技术有限公司 一种数据交换方法、装置、相关设备及系统
CN109726566A (zh) * 2018-11-22 2019-05-07 成都海光集成电路设计有限公司 基于安全内存加密技术的加密系统和加密方法
CN109725983B (zh) * 2018-11-22 2021-07-27 海光信息技术股份有限公司 一种数据交换方法、装置、相关设备及系统
CN109635610A (zh) * 2018-12-11 2019-04-16 北京智芯微电子科技有限公司 Rfid标签数据的读写系统及方法
CN109635610B (zh) * 2018-12-11 2021-08-24 北京智芯微电子科技有限公司 Rfid标签数据的读写系统及方法
CN109670345A (zh) * 2018-12-21 2019-04-23 成都海光集成电路设计有限公司 内存页面换入换出的保护方法、加速器模块和soc芯片
CN110188051A (zh) * 2019-02-22 2019-08-30 成都海光集成电路设计有限公司 标记与物理地址相关的控制信息的方法、处理系统和设备

Also Published As

Publication number Publication date
CN111241564B (zh) 2022-05-13
CN107563207B (zh) 2019-11-22
CN111241564A (zh) 2020-06-05

Similar Documents

Publication Publication Date Title
CN107563207B (zh) 加密方法、装置及解密方法、装置
JP4410821B2 (ja) 保護された処理システムへの初期トラステッド・デバイスのバインディングの検証
WO2020192406A1 (zh) 数据存储、验证方法及装置
CN106790156B (zh) 一种智能设备绑定方法及装置
US6839437B1 (en) Method and apparatus for managing keys for cryptographic operations
CN111245597B (zh) 密钥管理方法、系统及设备
CN109858265A (zh) 一种加密方法、装置及相关设备
CN110489996B (zh) 一种数据库数据安全管理方法及系统
CN110443049B (zh) 一种安全数据存储管理的方法、系统及安全存储管理模块
JP2013519929A (ja) 情報処理装置、情報処理システム、ソフトウェアルーチン実行方法およびリモート認証方法
US11405198B2 (en) System and method for storing and managing keys for signing transactions using key of cluster managed in trusted execution environment
CN101897211A (zh) 计算机秘密的迁移
CN106657152A (zh) 一种鉴权方法及服务器、访问控制装置
CN108810017B (zh) 业务处理安全验证方法及装置
CN112433817B (zh) 信息配置方法、直接存储访问方法及相关装置
CN109600366A (zh) 基于区块链的保护用户数据隐私的方法及装置
CN111367834A (zh) 自加密驱动器(sed)
WO2020114377A1 (en) Secure distributed key management system
JP2010514000A (ja) 電子装置にプログラム状態データをセキュアに記憶するための方法
CN1322431C (zh) 基于对称密钥加密保存和检索数据
CN111104691A (zh) 敏感信息的处理方法、装置、存储介质及设备
CN106790045A (zh) 一种基于云环境分布式虚拟机代理架构及数据完整性保障方法
CN108521424B (zh) 面向异构终端设备的分布式数据处理方法
CN106789024A (zh) 一种远程解锁方法、装置和系统
CN102750479B (zh) 一种分层软件版权保护方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20180110

Address after: 300143 Tianjin Haitai Huayuan Industrial Zone No. 18 West North 2-204 industrial incubation -3-8

Applicant after: Hai Guang Information Technology Co., Ltd.

Address before: 201203 3F, No. 1388, 02-01, Zhang Dong Road, Pudong New Area, Shanghai

Applicant before: Analog Microelectronics (Shanghai) Co., Ltd.

SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CP01 Change in the name or title of a patent holder
CP01 Change in the name or title of a patent holder

Address after: 300143 Tianjin Haitai Huayuan Industrial Zone No. 18 West North 2-204 industrial incubation -3-8

Patentee after: Haiguang Information Technology Co., Ltd

Address before: 300143 Tianjin Haitai Huayuan Industrial Zone No. 18 West North 2-204 industrial incubation -3-8

Patentee before: HAIGUANG INFORMATION TECHNOLOGY Co.,Ltd.