CN106100829B - 加密存储的方法及装置 - Google Patents

加密存储的方法及装置 Download PDF

Info

Publication number
CN106100829B
CN106100829B CN201610344351.3A CN201610344351A CN106100829B CN 106100829 B CN106100829 B CN 106100829B CN 201610344351 A CN201610344351 A CN 201610344351A CN 106100829 B CN106100829 B CN 106100829B
Authority
CN
China
Prior art keywords
key
write
data
storage device
command
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.)
Active
Application number
CN201610344351.3A
Other languages
English (en)
Other versions
CN106100829A (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.)
Miancun (Zhejiang) Technology Co.,Ltd.
Original Assignee
SHENZHEN SILICONGO MICROELECTRONICS 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 SHENZHEN SILICONGO MICROELECTRONICS CO Ltd filed Critical SHENZHEN SILICONGO MICROELECTRONICS CO Ltd
Priority to CN201610344351.3A priority Critical patent/CN106100829B/zh
Publication of CN106100829A publication Critical patent/CN106100829A/zh
Application granted granted Critical
Publication of CN106100829B publication Critical patent/CN106100829B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Abstract

本发明公开了一种加密存储的方法,当主机的操作系统接收到写操作命令时,所述操作系统通过预置的密钥生成模块生成密钥,向存储设备发送所述密钥;所述操作系统根据所述写操作命令和预置的协议向存储设备发送加密写命令;当所述存储设备接收到所述密钥和所述加密写命令时,所述存储设备根据所述加密写命令和所述密钥将所述写操作命令包含的写数据进行随机化,将经过随机化的所述写数据写入所述写操作包含的目标写地址。本发明还公开了一种加密存储的装置。本发明实现了对待写入数据进行高效率的加密存储。

Description

加密存储的方法及装置
技术领域
本发明涉及存储技术领域,尤其涉及加密存储的方法及装置。
背景技术
随着计算机技术的发展,无论是互联网还是局域网中都产生了大量的数字化资源,重要的数字化资源一旦泄露会引发各方面的危害,因此数字化资源的安全性变得十分重要。
现有的加密技术中,全磁盘加密技术(Full Disk Encryption,FDE)是通过动态加解密技术,对磁盘(硬盘)上所有数据(包括操作系统)进行动态加解密的技术,它可以对写入存储设备的数据进行加密的。目前在使用软件加密方式实现全磁盘加密时,主要是先通过加密软件将待写入的数据进行加密,再将加密的数据写入存储设备。由于通常软件加密时为了保证加密的效果使得加密算法通常较复杂,因此通过软件加密需要消耗大量的时间,加密的效率较低,同时,如果要加密的数据量较大时,消耗的时间会更多同时可能导致死机等问题,会对加密性能产生严重的影响。
发明内容
本发明的主要目的在于提供一种加密存储的方法及装置,旨在实现对待写入数据进行高效率的加密存储的目的。
为实现上述目的,本发明提供的一种加密存储的方法包括以下步骤:
当主机的操作系统接收到写操作命令时,所述操作系统通过预置的密钥生成模块生成密钥,向存储设备发送所述密钥;
所述操作系统根据所述写操作命令和预置的协议向所述存储设备发送加密写命令;
当所述存储设备接收到所述密钥和所述加密写命令时,所述存储设备根据所述加密写命令和所述密钥将所述写操作命令包含的写数据进行随机化,将经过随机化的所述写数据写入所述写操作包含的目标写地址。
优选地,所述存储设备根据所述加密写命令和所述密钥将所述写操作命令包含的写数据进行随机化包括:
所述存储设备根据所述加密写命令将所述密钥通过预置的随机种子生成模块生成随机种子;
所述存储设备基于所述随机种子对所述写命令包含的写数据进行随机化。
优选地,所述操作系统通过预置的密钥生成模块生成密钥之前还包括:
所述操作系统获取所述写操作命令包含的写数据的大小;
当所述写数据的大小大于预设值时,所述操作系统将所述写数据标记为N段大小相等的数据段,N为正整数;
则所述操作系统通过预置的密钥生成模块生成密钥,向存储设备发送所述密钥包括:
所述操作系统通过预置的密钥生成模块生成N个密钥,将所述N个密钥分别分配给每段数据段,记录所述N个密钥与每段数据段的分配关系;
所述操作系统向所述存储设备发送所述N个密钥及所述分配关系。
优选地,所述当所述存储设备接收到所述密钥和所述加密写命令时,所述存储设备根据所述加密写命令和所述密钥将所述写操作命令包含的写数据进行随机化包括:
当所述存储设备接收到所述密钥且所述密钥的数量为N时,所述存储设备根据所述加密写命令将所述N个密钥通过预置的随机种子生成算法进行运算,得到N个随机种子;
所述存储设备根据所述分配关系将所述N段大小相等的数据段基于所述N个随机种子分别进行随机化。
优选地,所述方法还包括:
当所述操作系统接收到读操作命令时,所述操作系统根据所述读操作命令向所述存储设备发送读密钥和解码读命令;
所述存储设备根据所述解码读命令将所述读密钥通过所述随机种子生成模块生成解码随机种子;
所述存储设备通过所述解码随机种子对所述目标读地址中的读数据进行解码,获取解码后的数据。
此外,为实现上述目的,本发明还提供一种加密存储的装置,所述装置包括:操作系统和存储设备;
所述操作系统包括:
密钥生成模块,用于当主机的操作系统接收到写操作命令时,通过预置的密钥生成模块生成密钥,向存储设备发送所述密钥;
第一发送模块,用于根据所述写操作命令和预置的协议向所述存储设备发送加密写命令;
所述存储设备包括:
随机化存储模块,用于当所述存储设备接收到所述密钥和所述加密写命令时,根据所述加密写命令和所述密钥将所述写操作命令包含的写数据进行随机化,将经过随机化的所述写数据写入所述写操作包含的目标写地址。
优选地,所述随机化存储模块包括:
第一随机种子生成单元,用于根据所述加密写命令将所述密钥通过预置的随机种子生成模块生成随机种子;
第一随机化单元,用于基于所述随机种子对所述写命令包含的写数据进行随机化。
优选地,所述操作系统还包括:
第一获取模块,用于在所述操作系统通过预置的密钥生成模块生成密钥之前,获取所述写操作命令包含的写数据的大小;
分段标记模块,用于当所述写数据的大小大于预设值时,将所述写数据标记为N段大小相等的数据段,N为正整数;
则所述密钥生成模块包括:
密钥生成单元,用于通过预置的密钥生成模块生成N个密钥,将所述N个密钥分别分配给每段数据段,记录所述N个密钥与每段数据段的分配关系;
密钥发送单元,用于向所述存储设备发送所述N个密钥及所述分配关系。
优选地,所述随机化存储模块包括:
第二随机种子生成单元,用于当所述存储设备接收到所述密钥且所述密钥的数量为N时,根据所述加密写命令将所述N个密钥通过预置的随机种子生成算法进行运算,得到N个随机种子;
第二随机化单元,用于根据所述分配关系将所述N段大小相等的数据段基于所述N个随机种子分别进行随机化。
优选地,所述操作系统还包括:
第二发送模块,用于当所述操作系统接收到读操作命令时,根据所述读操作命令向所述存储设备发送读密钥和解码读命令;
则所述存储设备还包括:
解码随机种子生成模块,用于根据所述解码读命令将所述读密钥通过所述随机种子生成模块生成解码随机种子;
解码模块,用于通过所述解码随机种子对所述目标读地址中的读数据进行解码,获取解码后的数据。
本发明实施例通过当主机的操作系统接收到写操作命令时,所述操作系统通过预置的密钥生成模块生成密钥,向存储设备发送所述密钥;所述操作系统根据所述写操作命令和预置的协议向所述存储设备发送加密写命令;当所述存储设备接收到所述密钥和所述加密写命令时,所述存储设备根据所述加密写命令和所述密钥将所述写操作命令包含的写数据进行随机化,将经过随机化的所述写数据写入所述写操作包含的目标写地址。通过主机的操作系统接收到写操作命令时,触发预置的密钥生成模块生成密钥,操作系统将生成的密钥发送给存储设备,同时根据接收到的写操作命令和预置的协议向存储设备发送加密写命令,存储设备接收到密钥和加密写命令后,根据加密写命令和密钥将写数据进行随机化实现数据的加密存储,在对数据的存储过程中不需要在存入存储设备前对待写入数据使用加密算法进行加密,实现了对待写入数据进行高效率的加密存储的。
附图说明
图1为本发明加密存储的方法第一实施例的流程示意图;
图2为本发明图1所示实施例中步骤S30的细化流程示意图;
图3为本发明加密存储装置第一实施例的功能模块结构示意图;
图4为本发明图3所示实施例中随机化存储模块30的细化功能模块示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明提供一种加密存储的方法。参照图1,在第一实施例中,该方法包括:
步骤S10,当主机的操作系统接收到写操作命令时,所述操作系统通过预置的密钥生成模块生成密钥,向存储设备发送所述密钥;
步骤S20,所述操作系统根据所述写操作命令和预置的协议向所述存储设备发送加密写命令;
步骤S30,当所述存储设备接收到所述密钥和所述加密写命令时,所述存储设备根据所述加密写命令和所述密钥将所述写操作命令包含的写数据进行随机化,将经过随机化的所述写数据写入所述写操作包含的目标写地址。
本发明提供的加密存储的方法是一种在存储数据时对数据进行加密存储的方法。该方法可以在电脑中存储数据时使用,也可以在手机等包含存储设备的终端设备中存储数据时使用。其中,电脑、手机等包含存储设备的终端设备可以称为host,即主机。
在本发明实施例中,上述主机的操作系统是指主机上安装的操作系统。上述写操作通常包含写地址和待写入数据,在数据需要存储到存储设备中时操作系统会接收到写操作命令,然后操作系统向存储设备发送命令,存储设备中根据接收到的命令将数据写入目标写地址,当数据写入目标写地址后即完成了数据的存储。
上述预置的密钥生成模块是根据需要设置的一个用于生成密钥的模块,通常密钥也称为key。在现有技术中,通过全磁盘加密软件(如DiskSec)进行加密时,通常在接收到写操作命令后,存在于操作系统底层的加密算法会加密待写入数据,然后再写入磁盘或硬盘中。因此在本方案中,密钥生成模块可以置于操作系统的底层,触发密钥生成模块生成密钥的过程,就是根据密钥生成模块预置的算法,输出密钥。其中本方案中生成密钥的算法比现有技术中加密算法的复杂度要低,因为在这个步骤里仅仅需要得到密钥,而无需运用密钥对数据加密。可以理解的是,在这里密钥生成模块除了可以存在于操作系统的底层,例如也可以存在于host操作系统之上的应用层再通过预置的方式获取等。
当预置的密钥生成模块生成密钥后,操作系统向存储设备发送密钥。上述存储设备是保存写数据命令中写数据的存储设备。具体的,可以通过预置的命令将生成的密钥发送给存储设备,使存储设备获取到密钥。在实现时,可以在不新增协议的基础上,选择现有协议中无效的协议,即没有使用的协议作为发送密钥的协议,例如可以使用eMMC协议上的CMD61-64协议,然后根据选中的无效协议将包含密钥的命令发送给存储设备,使存储设备获取到密钥。
除了向存储设备发送密钥也需要根据预置的协议向存储设备发送加密写命令,上述预置的协议可以根据需要进行设置。向存储设备发送加密写命令是使存储设备将写操作命令中的写数据以约定的方式写入到目标写地址中。
当存储设备获取到密钥和加密写命令后,存储设备根据获取到的加密写命令和密钥将写操作包含的写入数据进行随机化,然后将经过随机化的写数据写入到目标写地址,完成加密的过程。
本发明实施例通过当主机的操作系统接收到写操作命令时,所述操作系统通过预置的密钥生成模块生成密钥,向存储设备发送所述密钥;所述操作系统根据所述写操作命令和预置的协议向所述存储设备发送加密写命令;当所述存储设备接收到所述密钥和所述加密写命令时,所述存储设备根据所述加密写命令和所述密钥将所述写操作命令包含的写数据进行随机化,将经过随机化的所述写数据写入所述写操作包含的目标写地址。通过主机的操作系统接收到写操作命令时,触发预置的密钥生成模块生成密钥,操作系统将生成的密钥发送给存储设备,同时根据接收到的写操作命令和预置的协议向存储设备发送加密写命令,存储设备接收到密钥和加密写命令后,根据加密写命令和密钥将写数据进行随机化实现数据的加密存储,在对数据的存储过程中不需要在存入存储设备前对待写入数据使用加密算法进行加密,实现了对待写入数据进行高效率的加密存储的。
优选地,参照图2,为图1所示实施例中步骤S30的细化流程示意图,上述步骤S30包括:
步骤S310,所述存储设备根据所述加密写命令将所述密钥通过预置的随机种子生成模块生成随机种子;
步骤S320,所述存储设备基于所述随机种子对所述写命令包含的写数据进行随机化。
在本发明实施例中,存储设备根据接收到的加密写命令首先将密钥通过预置的随机种子生成模块生成随机种子,上述随机种子生成模块包含用于生成随机种子的算法,具体选用哪种算法可以根据需要进行选择,目的是将密钥通过运算得到随机种子。当随机种子生成后,存储设备基于生成的随机种子对写命令包含的写数据进行随机化,此时随机化以后的数据就完成了加密的过程。由于随机种子是通过密钥生成的,因此即使获得密钥也无法直接读取数据,同时为了保证加密的安全性,可以在加密完成后不记录随机化种子,使得在读取数据时,通过直接读取存储设备中的数据无法获取原写入数据。
在本发明实施例中,存储设备根据加密写命令将密钥通过预置的随机种子模块生成随机种子,再利用该随机种子将写命令中包含的写数据进行随机化,使数据完成加密,并且由于整个随机化的过程在存储设备中进行,并没有使用复杂的加密算法因此加密的效率高,并且在解密时即使获取密钥也无法将加密的写入数据进行解密,因此加密效果好。
优选地,基于加密存储的方法第一实施例提出本发明加密存储方法的第二实施例,上述步骤所述操作系统通过预置的密钥生成模块生成密钥之前还包括:
所述操作系统获取所述写操作命令包含的写数据的大小;
当所述写数据的大小大于预设值时,所述操作系统将所述写数据标记为N段大小相等的数据段,N为正整数;
则所述操作系统通过预置的密钥生成模块生成密钥,向存储设备发送所述密钥包括:
所述操作系统通过预置的密钥生成模块生成N个密钥,将所述N个密钥分别分配给每段数据段,记录所述N个密钥与每段数据段的分配关系;
所述操作系统向所述存储设备发送所述N个密钥及所述分配关系。
在本发明实施例中,当收到操作系统接收到写操作命令后,首先获取写操作命令包含的写数据的大小,例如获取到的写数据大小为64KB。再判断写数据的大小是否大于预设值,上述预设值可以根据需要进行设定,例如预设值为16KB,目的是当数据大于一定的值时,可以对数据进行分段标记并将每段数据分段加密。
当写数据的大小大于预设值时,操作系统对写数据进行标记,标记为N段大小相等的数据段。例如,当接收到的写数据为64KB时,判断64KB大于16KB,则将64KB的写数据标记为4段,每段大小为16KB的数据。
在将写数据标记为N段后,操作系统通过预置的密钥生成模块生成N个密钥,且将N个密钥分别分配给每段数据段,并记录N个密钥与每段数段的分配关系,则此时每段数据段对应一个密钥。在操作系统向存储设备发送时,则发送N个密钥及N个密钥与每段数据段的分配关系,以供在存储时加密使用。
在本发明实施例中,操作系统首先获取写操作命令包含的写数据的大小,当写数据的大小大于预设值时,操作系统将写数据分为N段,然后操作系统通过预置的密钥生成模块生成N个密钥,然后将N个密钥分别分配给每段数据段,记录分配关系,并发送密钥生成模块生成的N个密钥和分配关系使得在加密时可以对数据进行分段加密。
优选地,基于本发明加密存储的方法第二实施例,在本实施例中,上述步骤S30包括:
当所述存储设备接收到所述密钥且所述密钥的数量为N时,所述存储设备根据所述加密写命令将所述N个密钥通过预置的随机种子生成算法进行运算,得到N个随机种子;
所述存储设备根据所述分配关系将所述N段大小相等的数据段基于所述N个随机种子分别进行随机化。
在本发明实施例中,当存储设备获取到密钥后,若获取到的密钥的数量为N,表明所述写数据进行了分段标记,且每段数据段都有与之对应的密钥。此时,存储设备将N个密钥输入给预置的随机种子生成模块进行运算,得到N个随机种子,再根据接收到的分配关系将N段大小相等的数据段基于N个随机种子分别进行随机化。例如,若第一段数据段对应为第一密钥,第二数据段对应为第二密钥,第三数据段对应为第三密钥,且第一密钥、第二密钥、第三密钥经过随机种子生成算法依次得到第一随机种子、第二随机种子、第三随机种子,则第一段数据段基于第一随机种子进行随机化,第二段数据段基于第二随机种子进行随机化,第三段数据段基于第三随机种子进行随机化。
当N段大小相等的数据段基于N个随机种子进行随机化完成后即完成了对写命令包含的写数据的加密存储过程。
在本发明实施例中,当存储设备收到的密钥数量为N时,将每个密钥分别输入给预置的随机种子生成算法进行运算得到N个随机种子,再根据N段大小相等的数据段与N个密钥的分配关系将N段大小相等的数据段基于N个随机种子分别进行随机化,使得写入数据分段加密,加密粒度更小,同时安全性也更好。
优选地,基于本发明加密存储的方法上述实施例,在本实施例中,本发明提出加密存储方法还包括:
当所述操作系统接收到读操作命令时,所述操作系统根据所述读操作命令向所述存储设备发送读密钥和解码读命令;
所述存储设备根据所述解码读命令将所述读密钥通过所述随机种子生成模块生成解码随机种子;
所述存储设备通过所述解码随机种子对所述目标读地址中的读数据进行解码,获取解码后的数据。
在本发明实施例中,上述读操作命令是为了对已经加密存储的数据进行读取而发送的命令,通常读操作命令包含读目标地址,当操作系统接收到读操作命令时,操作系统根据读操作命令向存储设备发送读密钥和解码读命令。具体地,在实现时操作系统根据读操作命令中的读目标地址获取读密钥,由于在对写数据进行加密时,会通过密钥生成模块生成密钥,密钥与写数据的对应关系会被保存,则在读数据时,获取的读密钥与加密该段读数据的密钥一致。
当操作系统获取到读密钥后,向存储设备发送读密钥,同时操作系统根据接收到的读命令向存储设备发送读解码命令,所述读解码命令是对待读的数据进行解码读取的命令。
当存储设备接收到读密钥后根据解码读命令的约定的方式,将读密钥输入给随机种子生成模块进行运算,此时的随机种子生成模块与写数据加密时的随机种子生成模块一样,因此得到的解码随机种子就是写数据加密时用于随机化的随机种子。
当存储设备得到解码随机种子后,通过该随机种子将目标读地址的待读数据进行解码。具体是,获取目标读地址的待读数据,此时该段待读数据为随机化保存的,然后使用解码随机种子对待读数据进行解码,此时解码后的数据就是待读数据加密前的原文。当获取到解码后的数据后,可以将该数据返回给操作系统,从而可以从操作系统返回给上层应用层,使得用户端可以读取该数据。
在本发明实施例中,当操作系统接收到读操作命令时,根据读操作命令向存储设备发送读密钥和解码读命令,然后存储设备根据接收到的解码读命令将接收到的密钥经过随机种子生成模块生成解码随机种子,存储设备再将随机种子对读数据进行解码实现了对加密存储的数据进行读取。
本发明还提供一种加密存储的装置,参照图3,提供了本发明加密存储的装置第一实施例,该实施例中,本发明提出的加密存储的装置包括:操作系统10和存储设备20;
所述操作系统10包括:
密钥生成模块110,用于当主机的操作系统接收到写操作命令时,通过预置的密钥生成模块生成密钥,向存储设备发送所述密钥;
第一发送模块120,用于根据所述写操作命令和预置的协议向所述存储设备发送加密写命令;
所述存储设备20包括:
随机化存储模块210,用于当所述存储设备接收到所述密钥和所述加密写命令时,根据所述加密写命令和所述密钥将所述写操作命令包含的写数据进行随机化,将经过随机化的所述写数据写入所述写操作包含的目标写地址。
本发明提供的加密存储的装置用于在存储数据时对数据进行加密存储。该方法可以在电脑中存储数据时使用,也可以在手机等包含存储设备的终端设备中存储数据时使用。其中,电脑、手机等包含存储设备的终端设备可以称为host,即主机。本发明提出的加密存储的装置包括操作系统和存储设备。
在本发明实施例中,上述主机的操作系统是指主机上安装的操作系统。上述写操作通常包含写地址和待写入数据,在数据需要存储到存储设备中时操作系统接收到写操作命令,然后操作系统向存储设备发送命令,存储设备中根据接收到的命令将数据写入目标写地址,当数据写入目标写地址后即完成了数据的存储。
上述预置的密钥生成模块是根据需要设置的一个用于生成密钥的模块,通常密钥也称为key。在现有技术中,通过全磁盘加密软件(如DiskSec)进行加密时,通常在接收到写操作命令后,存在于操作系统底层的加密算法会加密待写入数据,然后再写入磁盘或硬盘中。因此在本方案中,密钥生成模块可以置于操作系统的底层,触发密钥生成模块生成密钥的过程,就是根据密钥生成模块预置的算法,输出密钥。其中本方案中生成密钥的算法比现有技术中加密算法的复杂度要低,因为在这个步骤里仅仅需要得到密钥,而无需运用密钥对数据加密。可以理解的是,在这里密钥生成模块除了可以存在于操作系统的底层,例如也可以存在于host操作系统之上的应用层再通过预置的方式获取等。
当预置的密钥生成模块生成密钥后,向存储设备发送密钥。上述存储设备是保存写数据命令中写数据的存储设备。具体的,可以通过预置的命令将生成的密钥发送给存储设备,使存储设备获取到密钥。在实现时,可以在不新增协议的基础上,选择现有协议中无效的协议,即没有使用的协议作为发送密钥的协议,例如可以使用eMMC协议上的CMD61-64协议,然后根据选中的无效协议将包含密钥的命令发送给存储设备,使存储设备获取到密钥。
除了向存储设备发送密钥也需要根据预置的协议向存储设备发送加密写命令,上述预置的协议可以根据需要进行设置。向存储设备发送加密写命令是使存储设备将写操作命令中的写数据以约定的方式写入到目标写地址中。
当存储设备获取到密钥和加密写命令后,存储设备根据获取到的加密写命令和密钥将写操作包含的写入数据进行随机化,然后将经过随机化的写数据写入到目标写地址,完成加密的过程。
本发明实施例通过当主机的操作系统接收到写操作命令时,所述操作系统通过预置的密钥生成模块生成密钥,向存储设备发送所述密钥;所述操作系统根据所述写操作命令和预置的协议向存储设备发送加密写命令;当所述存储设备接收到所述密钥和所述加密写命令时,所述存储设备根据所述加密写命令和所述密钥将所述写操作命令包含的写数据进行随机化,将经过随机化的所述写数据写入所述写操作包含的目标写地址。通过主机的操作系统接收到写操作命令时,触发预置的密钥生成模块生成密钥,操作系统将生成的密钥发送给存储设备,同时根据接收到的写操作命令和预置的协议向存储设备发送加密写命令,存储设备接收到密钥和加密写命令后,根据加密写命令和密钥将写数据进行随机化实现数据的加密存储,在对数据的存储过程中不需要在存入存储设备前对待写入数据使用加密算法进行加密,实现了对待写入数据进行高效率的加密存储的。
优选地,参照图4,为图3所示实施例中随机化存储模块30的细化功能模块示意图,上述随机化存储模块210包括:
第一随机种子生成单元211,用于根据所述加密写命令将所述密钥通过预置的随机种子生成模块生成随机种子;
第一随机化单元212,用于基于所述随机种子对所述写命令包含的写数据进行随机化。
在本发明实施例中,存储设备根据接收到的加密写命令首先将密钥通过预置的随机种子生成模块生成随机种子,上述随机种子生成模块包含用于生成随机种子的算法,具体选用哪种算法可以根据需要进行选择,目的是将密钥通过运算得到随机种子。当随机种子生成后,存储设备基于生成的随机种子对写命令包含的写数据进行随机化,此时随机化以后的数据就完成了加密的过程。由于随机种子是通过密钥生成的,因此即使获得密钥也无法直接读取数据,同时为了保证加密的安全性,可以在加密完成后不记录随机化种子,使得在读取数据时,通过直接读取存储设备中的数据无法获取原写入数据。
在本发明实施例中,存储设备根据加密写命令将密钥通过预置的随机种子模块生成随机种子,再利用该随机种子将写命令中包含的写数据进行随机化,使数据完成加密,并且由于整个随机化的过程在存储设备中进行,并没有使用复杂的加密算法因此加密的效率高,并且在解密时即使获取密钥也无法将加密的写入数据进行解密,因此加密效果好。
优选地,基于加密存储的装置第一实施例提出本发明加密存储装置的第二实施例,本发明提出的装置还包括:
所述操作系统还包括:
第一获取模块,用于在所述操作系统通过预置的密钥生成模块生成密钥之前,获取所述写操作命令包含的写数据的大小;
分段标记模块,用于当所述写数据的大小大于预设值时,将所述写数据标记为N段大小相等的数据段,N为正整数;
则所述密钥生成模块包括:
密钥生成单元,用于通过预置的密钥生成模块生成N个密钥,将所述N个密钥分别分配给每段数据段,记录所述N个密钥与每段数据段的分配关系;
密钥发送单元,用于向所述存储设备发送所述N个密钥及所述分配关系。
在本发明实施例中,当收到操作系统接收到写操作命令后,第一获取模块获取写操作命令包含的写数据的大小,例如获取到的写数据大小为64KB。判断写数据的大小是否大于预设值,上述预设值可以根据需要进行设定,例如预设值为16KB,目的是当数据大于一定的值时,分段标记模块对数据进行分段标记并将每段数据分段加密。
当写数据的大小大于预设值时,操作系统对写数据进行标记,标记为N段大小相等的数据段。例如,当接收到的写数据为64KB时,判断64KB大于16KB,则将64KB的写数据标记为4段,每段大小为16KB的数据。
在将写数据标记为N段后,操作系统通过预置的密钥生成模块生成N个密钥,且将N个密钥分别分配给每段数据段,并记录N个密钥与每段数段的分配关系,则此时每段数据段对应一个密钥。在操作系统向存储设备发送时,则发送N个密钥及N个密钥与每段数据段的分配关系,以供在存储时加密使用。
在本发明实施例中,操作系统首先获取写操作命令包含的写数据的大小,当写数据的大小大于预设值时,操作系统将写数据分为N段,然后操作系统通过预置的密钥生成模块生成N个密钥,然后将N个密钥分别分配给每段数据段,记录分配关系,并发送密钥生成模块生成的N个密钥和分配关系使得在加密时可以对数据进行分段加密。
优选地,基于本发明加密存储的装置第二实施例,在本实施例中,随机化存储模块包括:
第二随机种子生成单元,用于当所述存储设备接收到所述密钥且所述密钥的数量为N时,根据所述加密写命令将所述N个密钥通过预置的随机种子生成算法进行运算,得到N个随机种子;
第二随机化单元,用于根据所述分配关系将所述N段大小相等的数据段基于所述N个随机种子分别进行随机化。
在本发明实施例中,当存储设备获取到密钥后,若获取到的密钥的数量为N,表明所述写数据进行了分段标记,且每段数据段都有与之对应的密钥。此时,存储设备将N个密钥输入给预置的随机种子生成模块进行运算,得到N个随机种子,再根据接收到的分配关系将N段大小相等的数据段基于N个随机种子分别进行随机化。例如,若第一段数据段对应为第一密钥,第二数据段对应为第二密钥,第三数据段对应为第三密钥,且第一密钥、第二密钥、第三密钥经过随机种子生成算法依次得到第一随机种子、第二随机种子、第三随机种子,则第一段数据段基于第一随机种子进行随机化,第二段数据段基于第二随机种子进行随机化,第三段数据段基于第三随机种子进行随机化。
当N段大小相等的数据段基于N个随机种子进行随机化完成后即完成了对写命令包含的写数据的加密存储过程。
在本发明实施例中,当存储设备收到的密钥数量为N时,将每个密钥分别输入给预置的随机种子生成算法进行运算得到N个随机种子,再根据N段大小相等的数据段与N个密钥的分配关系将N段大小相等的数据段基于N个随机种子分别进行随机化,使得写入数据分段加密,加密粒度更小,同时安全性也更好。
优选地,基于本发明加密存储的装置上述实施例,在本发明提出的加密存储的装置还包括:
第二发送模块,用于当所述操作系统接收到读操作命令时,根据所述读操作命令向所述存储设备发送读密钥和解码读命令;
则所述存储设备还包括:
解码随机种子生成模块,用于根据所述解码读命令将所述读密钥通过所述随机种子生成模块生成解码随机种子;
解码模块,用于通过所述解码随机种子对所述目标读地址中的读数据进行解码,获取解码后的数据。
在本发明实施例中,上述读操作命令是为了对已经加密存储的数据进行读取而发送的命令,通常读操作命令包含读目标地址,当操作系统接收到读操作命令时,操作系统根据读操作命令向存储设备发送读密钥和解码读命令。具体地,在实现时操作系统根据读操作命令中的读目标地址获取读密钥,由于在对写数据进行加密时,会通过密钥生成模块生成密钥,密钥与写数据的对应关系会被保存,则在读数据时,获取的读密钥与加密该段读数据的密钥一致。
当操作系统获取到读密钥后,向存储设备发送读密钥,同时操作系统根据接收到的读命令向存储设备发送读解码命令,所述读解码命令是对待读的数据进行解码读取的命令。
当存储设备接收到读密钥后根据解码读命令的约定的方式,将读密钥输入给随机种子生成模块进行运算,此时的随机种子生成模块与写数据加密时的随机种子生成模块一样,因此得到的解码随机种子就是写数据加密时用于随机化的随机种子。
当存储设备得到解码随机种子后,通过该随机种子将目标读地址的待读数据进行解码。具体是,获取目标读地址的待读数据,此时该段待读数据为随机化保存的,然后使用解码随机种子对待读数据进行解码,此时解码后的数据就是待读数据加密前的原文。当获取到解码后的数据后,可以将该数据返回给操作系统,从而可以从操作系统返回给上层应用层,使得用户端可以读取该数据。
在本发明实施例中,当操作系统接收到读操作命令时,根据读操作命令向存储设备发送读密钥和解码读命令,然后存储设备根据接收到的解码读命令将接收到的密钥经过随机种子生成模块生成解码随机种子,存储设备再将随机种子对读数据进行解码实现了对加密存储的数据进行读取。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (6)

1.一种加密存储的方法,其特征在于,所述方法包括以下步骤:
当主机的操作系统接收到写操作命令时,所述操作系统通过预置的密钥生成模块生成密钥,向存储设备发送所述密钥;
所述操作系统根据所述写操作命令和预置的协议向所述存储设备发送加密写命令;
当所述存储设备接收到所述密钥和所述加密写命令时,所述存储设备根据所述加密写命令将所述密钥通过预置的随机种子生成模块生成随机种子;
所述存储设备基于所述随机种子对所述写命令包含的写数据进行随机化,在加密完成后不记录所述随机种子;
将经过随机化的所述写数据写入所述写操作包含的目标写地址;
当所述操作系统接收到读操作命令时,所述操作系统根据所述读操作命令向所述存储设备发送读密钥和解码读命令;所述读密钥与所述密钥相同;
所述存储设备根据所述解码读命令将所述读密钥通过所述随机种子生成模块生成解码随机种子;
所述存储设备通过所述解码随机种子对所述目标读地址中的读数据进行解码,获取解码后的数据;
当获取到所述解码后的数据后,将所述解码后的数据返回所述操作系统,并通过所述操作系统输出所述解码后数据。
2.如权利要求1所述的方法,其特征在于,所述操作系统通过预置的密钥生成模块生成密钥之前还包括:
所述操作系统获取所述写操作命令包含的写数据的大小;
当所述写数据的大小大于预设值时,所述操作系统将所述写数据标记为N段大小相等的数据段,N为正整数;
则所述操作系统通过预置的密钥生成模块生成密钥,向存储设备发送所述密钥包括:
所述操作系统通过预置的密钥生成模块生成N个密钥,将所述N个密钥分别分配给每段数据段,记录所述N个密钥与每段数据段的分配关系;
所述操作系统向所述存储设备发送所述N个密钥及所述分配关系。
3.如权利要求2所述的方法,其特征在于,所述当所述存储设备接收到所述密钥和所述加密写命令时,所述存储设备根据所述加密写命令和所述密钥将所述写操作命令包含的写数据进行随机化包括:
当所述存储设备接收到所述密钥且所述密钥的数量为N时,所述存储设备根据所述加密写命令将所述N个密钥通过预置的随机种子生成算法进行运算,得到N个随机种子;
所述存储设备根据所述分配关系将所述N段大小相等的数据段基于所述N个随机种子分别进行随机化。
4.一种加密存储的装置,其特征在于,所述装置包括:操作系统和存储设备;
所述操作系统包括:
密钥生成模块,用于当主机的操作系统接收到写操作命令时,通过预置的密钥生成模块生成密钥,向存储设备发送所述密钥;
第一发送模块,用于根据所述写操作命令和预置的协议向所述存储设备发送加密写命令;
第二发送模块,用于当所述操作系统接收到读操作命令时,根据所述读操作命令向所述存储设备发送读密钥和解码读命令;
所述存储设备包括:
随机化存储模块,用于当所述存储设备接收到所述密钥和所述加密写命令时,根据所述加密写命令和所述密钥将所述写操作命令包含的写数据进行随机化,将经过随机化的所述写数据写入所述写操作包含的目标写地址;
所述随机化存储模块包括:
第一随机种子生成单元,用于根据所述加密写命令将所述密钥通过预置的随机种子生成模块生成随机种子;
第一随机化单元,用于基于所述随机种子对所述写命令包含的写数据进行随机化;
解码随机种子生成模块,用于根据所述解码读命令将所述读密钥通过所述随机种子生成模块生成解码随机种子;
解码模块,用于通过所述解码随机种子对所述目标读地址中的读数据进行解码,获取解码后的数据。
5.如权利要求4所述的装置,其特征在于,所述操作系统还包括:
第一获取模块,用于在所述操作系统通过预置的密钥生成模块生成密钥之前,获取所述写操作命令包含的写数据的大小;
分段标记模块,用于当所述写数据的大小大于预设值时,将所述写数据标记为N段大小相等的数据段,N为正整数;
则所述密钥生成模块包括:
密钥生成单元,用于通过预置的密钥生成模块生成N个密钥,将所述N个密钥分别分配给每段数据段,记录所述N个密钥与每段数据段的分配关系;
密钥发送单元,用于向所述存储设备发送所述N个密钥及所述分配关系。
6.如权利要求5所述的装置,其特征在于,所述随机化存储模块包括:
第二随机种子生成单元,用于当所述存储设备接收到所述密钥且所述密钥的数量为N时,根据所述加密写命令将所述N个密钥通过预置的随机种子生成算法进行运算,得到N个随机种子;
第二随机化单元,用于根据所述分配关系将所述N段大小相等的数据段基于所述N个随机种子分别进行随机化。
CN201610344351.3A 2016-05-23 2016-05-23 加密存储的方法及装置 Active CN106100829B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610344351.3A CN106100829B (zh) 2016-05-23 2016-05-23 加密存储的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610344351.3A CN106100829B (zh) 2016-05-23 2016-05-23 加密存储的方法及装置

Publications (2)

Publication Number Publication Date
CN106100829A CN106100829A (zh) 2016-11-09
CN106100829B true CN106100829B (zh) 2020-05-19

Family

ID=57229276

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610344351.3A Active CN106100829B (zh) 2016-05-23 2016-05-23 加密存储的方法及装置

Country Status (1)

Country Link
CN (1) CN106100829B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106775448A (zh) * 2016-11-15 2017-05-31 航天信息股份有限公司 一种加密卡的文件存储方法及安全删除方法
CN109658536A (zh) * 2018-12-19 2019-04-19 云教(北京)科技有限公司 一种基于rfid技术实现不间断考勤的系统
CN109815750A (zh) * 2018-12-28 2019-05-28 深圳市德名利电子有限公司 一种存储装置的加密方法及存储装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1499771A (zh) * 2002-11-08 2004-05-26 联想(北京)有限公司 一种确保数据安全性的数据存储方法及其安全存储装置
CN1592877A (zh) * 2001-09-28 2005-03-09 高密度装置公司 用于对大容量存储设备上数据加密/解密的方法和装置
CN101488110A (zh) * 2008-12-30 2009-07-22 成都市华为赛门铁克科技有限公司 加密存储的方法、装置和系统
CN104040936A (zh) * 2011-12-02 2014-09-10 株式会社东芝 半导体存储设备
CN105340211A (zh) * 2013-04-18 2016-02-17 里索伏特德瓦公司 用于加密数据的系统及方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2980285B1 (fr) * 2011-09-15 2013-11-15 Maxim Integrated Products Systemes et procedes de gestion de cles cryptographiques dans un microcontroleur securise

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1592877A (zh) * 2001-09-28 2005-03-09 高密度装置公司 用于对大容量存储设备上数据加密/解密的方法和装置
CN1499771A (zh) * 2002-11-08 2004-05-26 联想(北京)有限公司 一种确保数据安全性的数据存储方法及其安全存储装置
CN101488110A (zh) * 2008-12-30 2009-07-22 成都市华为赛门铁克科技有限公司 加密存储的方法、装置和系统
CN104040936A (zh) * 2011-12-02 2014-09-10 株式会社东芝 半导体存储设备
CN105340211A (zh) * 2013-04-18 2016-02-17 里索伏特德瓦公司 用于加密数据的系统及方法

Also Published As

Publication number Publication date
CN106100829A (zh) 2016-11-09

Similar Documents

Publication Publication Date Title
CN105260668B (zh) 一种文件加密方法及电子设备
KR101155697B1 (ko) 비휘발성 메모리에 데이터를 기록하고 이로부터 데이터를 판독하기 위한 데이터 화이트닝
US20170046281A1 (en) Address dependent data encryption
CN101231622B (zh) 基于闪存的数据存储方法和设备、及数据读取方法和设备
JP6345237B2 (ja) 平文データを暗号化するための方法および装置
US20190384938A1 (en) Storage apparatus and method for address scrambling
JP2020535693A (ja) 記憶データ暗号化/復号化装置及び方法
TWI570590B (zh) 與使用縮減回合編密的xts加密系統一起使用之動態加密金鑰
US20120269340A1 (en) Hierarchical encryption/decryption device and method thereof
CN110324138B (zh) 数据加密、解密方法及装置
CN103427983A (zh) 用于基于存储设备标识符的内容加密和解密的装置和方法
CN101582109A (zh) 数据加密方法及装置、数据解密方法及装置、固态硬盘
JP2006277411A (ja) プロセッサ、メモリ、コンピュータシステムおよびデータ転送方法
US10146701B2 (en) Address-dependent key generation with a substitution-permutation network
CN108830096B (zh) 数据处理方法、装置、电子设备及存储介质
CN110650191A (zh) 一种分布式存储系统的数据读写方法
CN106100829B (zh) 加密存储的方法及装置
CN112887077B (zh) 一种ssd主控芯片随机缓存保密方法和电路
CN111414635A (zh) 文件加密、解密方法、装置、设备和存储介质
CN102609368B (zh) 固态硬盘数据加解密的方法及其固态硬盘
CN103246852A (zh) 加密数据的存取方法及装置
CN102142072A (zh) 电子文件的加密处理、解密处理方法及装置
US9946662B2 (en) Double-mix Feistel network for key generation or encryption
CN103336928A (zh) 对数据库进行加密以及解密的方法及装置
WO2019184741A1 (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
CB02 Change of applicant information
CB02 Change of applicant information

Address after: Units 05-2 and 06-08, 6th floor, Changhong Science and Technology Building, 18 Science and Technology South 12 Road, Nanshan District, Shenzhen City, Guangdong Province

Applicant after: Shenzhen SiliconGo Semiconductor Co., Ltd.

Address before: Units 05-2 and 06-08, 6th floor, Changhong Science and Technology Building, 18 Science and Technology South 12 Road, Nanshan District, Shenzhen City, Guangdong Province

Applicant before: SILICONGO MICROELECTRONICS CO., LTD.

GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20210927

Address after: 314200 room 1201, R & D building, No. 198, Qin'an Road, Caoqiao street, Pinghu City, Jiaxing City, Zhejiang Province

Patentee after: Miancun (Zhejiang) Technology Co.,Ltd.

Address before: 518057 05-2, 06-08 unit, 6 floor, Changhong science and technology building, 18 Nanshan District science and technology south twelve Road, Shenzhen, Guangdong.

Patentee before: SHENZHEN SILICONGO MICROELECTRONICS Co.,Ltd.