CN114595466A - 实现对经加密的数据的机会认证 - Google Patents

实现对经加密的数据的机会认证 Download PDF

Info

Publication number
CN114595466A
CN114595466A CN202111422945.9A CN202111422945A CN114595466A CN 114595466 A CN114595466 A CN 114595466A CN 202111422945 A CN202111422945 A CN 202111422945A CN 114595466 A CN114595466 A CN 114595466A
Authority
CN
China
Prior art keywords
data instance
compressed data
computer
instance
encrypted
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.)
Pending
Application number
CN202111422945.9A
Other languages
English (en)
Inventor
G·A·雅克塔
W·J·斯凯尔斯
D·哈尼克
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN114595466A publication Critical patent/CN114595466A/zh
Pending legal-status Critical Current

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/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
    • 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
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • 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
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/20Manipulating the length of blocks of bits, e.g. padding or block truncation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/30Compression, e.g. Merkle-Damgard construction

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Bioethics (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • General Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Power Engineering (AREA)
  • Databases & Information Systems (AREA)
  • Computing Systems (AREA)
  • Storage Device Security (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

一种计算机实现的方法,包括:对未压缩数据实例进行压缩以创建经压缩数据实例;响应于确定经压缩数据实例的大小小于预定阈值而加密经压缩数据实例;针对经加密经压缩数据实例创建消息认证码(MAC);以及将可变长度零填充和MAC添加到经加密的经压缩数据实例以创建格式化串。

Description

实现对经加密的数据的机会认证
背景技术
本发明涉及数据安全,并且更具体地,本发明涉及使用消息认证码(MAC)实现端到端数据完整性保护。
实现数据完整性保护的一种有价值的方式是通过使用消息认证码(MAC)。例如,MAC可以用于确认所接收数据的真实性和完整性。另外,确定性加密在数据存储中是有用的,因为它允许在这样的数据存储内标识和移除经加密的数据的副本。确定性加密可以与长度保留压缩(LPC)组合以使得存储系统能够对已经在主机处持久加密的数据执行数据去重复。然而,当前LPC实现不实现数据完整性保护。
发明内容
根据一个实施例的计算机实现的方法包括:压缩未压缩数据实例以创建经压缩数据实例;响应于确定所述经压缩数据实例的大小小于预定阈值而加密所述经压缩数据实例;为所述加密的压缩数据实例创建消息认证码(MAC);以及将零填充和MAC添加到加密的压缩数据实例以创建格式化串。
根据另一实施例,一种计算机程序产品包括一个或多个计算机可读存储介质,以及共同存储在所述一个或多个计算机可读存储介质上的程序指令,其中所述程序指令包括被配置为使一个或多个处理器执行一种方法的指令,所述方法包括由所述处理器压缩未压缩数据实例以创建经压缩数据实例;由所述处理器响应于确定所述经压缩数据实例的大小小于预定阈值而加密所述经压缩数据实例;由所述处理器为所述加密的压缩数据实例创建消息认证码(MAC);以及由处理器将零填充和MAC添加到加密的压缩数据实例以创建格式化串。
根据另一实施例,一种计算机实现的方法包括压缩未压缩数据实例以创建经压缩数据实例;响应于确定所述经压缩数据实例的大小小于预定阈值,对所述经压缩数据实例进行加密,为所述经加密的经压缩数据实例创建消息认证码(MAC),以及将零填充和所述MAC添加到所述经加密的经压缩数据实例以创建格式化串;以及响应于确定所述经压缩数据实例的大小大于所述预定阈值,放弃所述经压缩数据实例,并且加密所述未经压缩数据实例以创建所述格式化的串。
从以下详细描述中,本发明的其它方面和实施例将变得显而易见,当结合附图时,以下详细描述通过示例的方式示出了本发明的原理。
附图说明
图1描述了根据本发明一个实施例的云计算环境。
图2示出了根据本发明一个实施例的抽象模型层。
图3描绘了根据本发明一个实施例的云计算节点。
图4示出了根据本发明的一个实施例的分层数据存储系统。
图5示出了根据本发明的一个实施例的用于实现对经加密的数据的机会认证的方法的流程图。
图6示出了根据本发明的一个实施例的用于加密未压缩数据实例的方法的流程图。
图7示出了根据本发明一个实施例的用于加密和机会式地验证数据实例的方法的流程图。
图8示出了根据本发明一个实施例的用于执行数据重复删除的方法的流程图。
图9示出了根据本发明的一个实施例的用于执行压缩明文实例的宽块加密的示例性环境。
图10示出了根据本发明的一个实施例的用于执行未压缩明文实例的宽块加密的示例性环境。
具体实施方式
以下描述是为了说明本发明的一般原理,而不是为了限制这里要求保护的发明概念。此外,本文所述的特定特征可与其它所述特征以各种可能的组合和排列组合使用。
除非本文另有明确定义,否则所有术语将被给予其最广泛的可能解释,包括说明书中暗示的含义以及本领域技术人员理解的和/或词典、论文等中定义的含义。
还必须注意,如在说明书和所附权利要求中所使用的,单数形式“一”、“一个”和“该”包括复数对象,除非另有说明。还将理解,术语“包括”和/或“包含”在本说明书中使用时,指定所陈述的特征、整数、步骤、操作、元件和/或组件的存在,但不排除一个或多个其它特征、整数、步骤、操作、元件、组件和/或其群组的存在或添加。
以下描述公开了实现对经加密的数据的机会认证的若干实施例。
在一个一般实施例中,一种计算机实现的方法包括压缩未压缩数据实例以创建经压缩数据实例;响应于确定所述经压缩数据实例的大小小于预定阈值而加密所述经压缩数据实例;为所述加密的压缩数据实例创建消息认证码(MAC);以及将零填充和MAC添加到加密的压缩数据实例以创建格式化串。
在另一个一般性实施例中,一种计算机程序产品包括一个或多个计算机可读存储介质,以及共同存储在所述一个或多个计算机可读存储介质上的程序指令,其中所述程序指令包括被配置为使一个或多个处理器执行一种方法的指令,所述方法包括由所述处理器压缩未压缩数据实例以创建经压缩数据实例;由所述处理器响应于确定所述经压缩数据实例的大小小于预定阈值而加密所述经压缩数据实例;由所述处理器为所述加密的压缩数据实例创建消息认证码(MAC);以及由处理器将零填充和MAC添加到加密的压缩数据实例以创建格式化串。
在另一个一般实施例中,一种计算机实现的方法包括压缩未压缩数据实例以创建经压缩数据实例;响应于确定所述经压缩数据实例的大小小于预定阈值,对所述经压缩数据实例进行加密,为所述经加密的经压缩数据实例创建消息认证码(MAC),以及将零填充和所述MAC添加到所述经加密的经压缩数据实例以创建格式化串;以及响应于确定所述经压缩数据实例的大小大于所述预定阈值,放弃所述经压缩数据实例,并且加密所述未经压缩数据实例以创建所述格式化的串。
应当理解,尽管本公开包括关于云计算的详细描述,但是本文所陈述的教导的实现不限于云计算环境。相反,本发明的实施例能够结合现在已知或以后开发的任何其它类型的计算环境来实现。
云计算是一种服务递送模型,用于实现对可配置计算资源(例如,网络、网络带宽、服务器、处理、存储器、存储、应用、虚拟机和服务)的共享池的方便的按需网络访问,所述可配置计算资源可以以最小的管理努力或与服务的提供者的交互来快速供应和释放。该云模型可以包括至少五个特性、至少三个服务模型和至少四个部署模型。
特征如下:
按需自助:云消费者可以单方面地自动地根据需要提供计算能力,诸如服务器时间和网络存储,而不需要与服务的提供者进行人工交互。
广域网接入:能力在网络上可用,并且通过促进由异构的薄或厚客户端平台(例如,移动电话、膝上型计算机和PDA)使用的标准机制来访问。
资源池化:供应商的计算资源被集中以使用多租户模型来服务多个消费者,其中不同的物理和虚拟资源根据需求被动态地分配和重新分配。存在位置无关的意义,因为消费者通常不控制或不知道所提供的资源的确切位置,但是能够在较高抽象级别(例如国家、州或数据中心)指定位置。
快速弹性:在一些情况下,可以快速且弹性地提供快速向外扩展的能力和快速向内扩展的能力。对于消费者,可用于提供的能力通常看起来不受限制,并且可以在任何时间以任何数量购买。
测量服务:云系统通过利用在适合于服务类型(例如,存储、处理、带宽和活动用户账户)的某一抽象级别的计量能力来自动地控制和优化资源使用。可以监视、控制和报告资源使用,从而为所利用服务的提供者和消费者两者提供透明性。
服务模型如下:
软件即服务(SaaS):提供给消费者的能力是使用在云基础设施上运行的提供者的应用。应用程序可通过诸如web浏览器(例如,基于web的电子邮件)等瘦客户机界面从各种客户机设备访问。消费者不管理或控制包括网络、服务器、操作系统、存储、或甚至个别应用能力的底层云基础结构,可能的例外是有限的用户专用应用配置设置。
平台即服务(PaaS):提供给消费者的能力是将消费者创建或获取的应用部署到云基础设施上,该消费者创建或获取的应用是使用由提供商支持的编程语言和工具创建的。消费者不管理或控制包括网络、服务器、操作系统或存储的底层云基础设施,但具有对部署的应用和可能的应用托管环境配置的控制。
基础设施即服务(IaaS):提供给消费者的能力是提供处理、存储、网络和消费者能够部署和运行任意软件的其它基本计算资源,所述软件可以包括操作系统和应用。消费者不管理或控制底层云基础设施,但具有对操作系统、存储、部署的应用的控制,以及可能对选择的联网组件(例如,主机防火墙)的有限控制。
部署模型如下:
私有云:云基础设施仅为组织操作。它可以由组织或第三方管理,并且可以存在于建筑物内或建筑物外。
社区云:云基础设施由若干组织共享,并且支持具有共享关注(例如,任务、安全要求、策略和合规性考虑)的特定社区。它可以由组织或第三方管理,并且可以存在于场所内或场所外。
公有云:云基础设施可用于一般公众或大型工业群体,并且由销售云服务的组织拥有。
混合云:云基础设施是两个或更多云(私有、共同体或公共)的组合,所述云保持唯一实体,但是通过使数据和应用能够移植的标准化或私有技术(例如,用于云之间的负载平衡的云突发)绑定在一起。
云计算环境是面向服务的,其焦点在于无状态、低耦接、模块性和语义互操作性。在云计算的核心是包括互连节点的网络的基础设施。
现在参考图1,描绘了说明性云计算环境50。如图所示,云计算环境50包括云消费者使用的本地计算设备可以与其通信的一个或多个云计算节点10,所述本地计算设备例如个人数字助理(PDA)或蜂窝电话54A、台式计算机54B、膝上型计算机54C和/或汽车计算机系统54N。节点10可以彼此通信。它们可以被物理地或虚拟地分组(未示出)在一个或多个网络中,诸如如上文描述的私有云、社区云、公共云或混合云或其组合。这允许云计算环境50提供基础设施、平台和/或软件作为服务,云消费者不需要为其维护本地计算设备上的资源。应当理解,图1中所示的计算设备54A-N的类型仅旨在说明,并且计算节点10和云计算环境50可以在任何类型的网络和/或网络可寻址连接上(例如,使用web浏览器)与任何类型的计算设备通信。
现在参考图2,示出了由云计算环境50(图1)提供的一组功能抽象层。应当预先理解,图2中所示的组件、层和功能仅旨在说明,并且本发明的实施例不限于此。如所描绘的,提供了以下层和相应的功能:
硬件和软件层60包括硬件和软件组件。硬件组件的示例包括:主机61;基于RISC(精简指令集计算机)架构的服务器62;服务器63;刀片服务器64;存储装置65;以及网络和网络组件66.在一些实施例中,软件组件包括网络应用服务器软件67和数据库软件68。
虚拟化层70提供抽象层,从该抽象层可以提供虚拟实体的以下示例:虚拟服务器71;虚拟存储器72;虚拟网络73,包括虚拟专用网络;虚拟应用和操作系统74;以及虚拟客户机75。
在一个示例中,管理层80可以提供以下描述的功能。资源供应81提供用于在云计算环境内执行任务的计算资源和其它资源的动态采购。计量和定价82提供了在云计算环境中利用资源时的成本跟踪,以及用于消耗这些资源的开帐单或发票。在一个示例中,这些资源可以包括应用软件许可证。安全性为云消费者和任务提供身份验证,以及为数据和其他资源提供保护。用户门户83为消费者和系统管理员提供对云计算环境的访问。服务级别管理84提供云计算资源分配和管理,使得满足所需的服务级别。服务水平协议(SLA)规划和履行85提供对云计算资源的预安排和采购,其中根据SLA预期未来需求。
工作负载层90提供了可以利用云计算环境的功能的示例。可以从该层提供的工作负载和功能的示例包括:绘图和导航91;软件开发和生命周期管理92;虚拟教室教育传送93;数据分析处理94;交易处理95;以及消息认证96。
现在参考图3,示出了云计算节点的示例的示意图。云计算节点10仅是合适的云计算节点的一个示例,并且不旨在对本文描述的本发明的实施例的使用范围或功能提出任何限制。无论如何,云计算节点10能够被实现和/或执行上文阐述的任何功能。
在云计算节点10中,存在计算机系统/服务器12,其可与许多其他通用或专用计算系统环境或配置一起操作。适合与计算机系统/服务器12一起使用的公知的计算系统、环境和/或配置的示例包括但不限于个人计算机系统、服务器计算机系统、瘦客户端、胖客户端、手持式或膝上型设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费电子产品、网络PC、小型计算机系统、大型计算机系统、以及包括任何上述系统或设备的分布式云计算环境等。
计算机系统/服务器12可以在计算机系统可执行指令的一般上下文中描述,诸如由计算机系统执行的程序模块。通常,程序模块可以包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、逻辑、数据结构等。计算机系统/服务器12可以在分布式云计算环境中实践,其中任务由通过通信网络链接的远程处理设备执行。在分布式云计算环境中,程序模块可以位于包括存储器存储设备的本地和远程计算机系统存储介质中。
如图3所示,云计算节点10中的计算机系统/服务器12以通用计算设备的形式示出。计算机系统/服务器12的组件可以包括但不限于一个或多个处理器或处理单元16、系统存储器28以及将包括系统存储器28的各种系统组件耦接到处理器16的总线18。
总线18表示若干类型的总线结构中的任何一种的一个或多个,包括存储器总线或存储器控制器、外围总线、加速图形端口、以及使用各种总线体系结构中的任何一种的处理器或局部总线。作为示例而非限制,这些体系结构包括工业标准体系结构(ISA)总线、微通道体系结构(MCA)总线、增强型ISA(EISA)总线、视频电子技术标准协会(VESA)局部总线和外围部件互连(PCI)总线。
计算机系统/服务器12通常包括各种计算机系统可读介质。这样的介质可以是计算机系统/服务器12可访问的任何可用介质,并且它包括易失性和非易失性介质、可移动和不可移动介质。
系统存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)30和/或高速缓存32.计算机系统/服务器12还可以包括其他可移动/不可移动、易失性/非易失性计算机系统存储介质。仅作为示例,存储系统34可被提供用于从不可移动、非易失性磁介质(未示出,并且通常被称为“硬盘驱动器”)读取和向其写入。尽管未示出,但是可以提供用于从可移动、非易失性磁盘(例如,“软盘”)读取和向其写入的磁盘驱动器,以及用于从诸如CD-ROM、DVD-ROM或其它光学介质等可移动、非易失性光盘读取或向其写入的光盘驱动器。在这种情况下,每个都可以通过一个或多个数据介质接口连接到总线18。如下面将进一步描绘和描述的,存储器28可以包括至少一个程序产品,该程序产品具有一组(例如,至少一个)程序模块,该程序模块被配置成执行本发明的实施例的功能。
具有一组(至少一个)程序模块42的程序/实用程序40,以及操作系统、一个或多个应用程序、其它程序模块和程序数据,可作为示例而非限制存储在存储器28中。操作系统、一个或多个应用程序、其它程序模块和程序数据或其某种组合中的每一个可包括联网环境的实现。程序模块42通常执行这里描述的本发明实施例的功能和/或方法。
计算机系统/服务器12还可以与一个或多个外部设备14通信,诸如键盘、指示设备、显示器24等;一个或多个设备,其使得用户能够与计算机系统/服务器12交互;和/或任何使计算机系统/服务器12能够与一个或多个其它计算设备通信的设备(例如网卡、调制解调器等)。这种通信可以经由输入/输出(I/O)接口22发生,然而,计算机系统/服务器12可以经由网络适配器20与一个或多个网络通信,所述网络诸如局域网(LAN)、通用广域网(WAN)和/或公共网络(例如,因特网)。如图所示,网络适配器20通过总线18与计算机系统/服务器12的其它组件通信,应当理解,尽管未示出,其它硬件和/或软件组件可以与计算机系统/服务器12结合使用,示例包括但不限于:微码、设备驱动程序、冗余处理单元、外部磁盘驱动器阵列、RAID系统、磁带驱动器和数据档案存储系统等。
现在参考图4,示出了根据一个实施例的存储系统400。注意,根据各种实施例,图4中所示的一些元件可以被实现为硬件和/或软件。存储系统400可以包括用于与至少一个较高存储层402和至少一个较低存储层406上的多个介质通信的存储系统管理器412。(一个或多个)较高存储层402优选地可以包括一个或多个随机存取和/或直接存取介质404,例如硬盘驱动器(HDD)中的硬盘、非易失性存储器(NVM)、固态驱动器(SSD)中的固态存储器、闪存、SSD阵列、闪存阵列等,和/或本文中提到的或本领域已知的其它介质。较低存储层406优选地可以包括一个或多个较低性能的存储介质408,包括顺序存取介质,例如磁带驱动器中的磁带和/或光学介质、较慢存取的HDD、较慢存取的SSD等,和/或本文提到的或本领域已知的其它介质。一个或多个附加存储层416可包括系统400的设计者所期望的存储存储器介质的任何组合。而且,较高存储层402和/或较低存储层406中的任何一个可以包括存储设备和/或存储介质的某种组合。
存储系统管理器412可以通过网络410,例如图4所示的存储区域网络(SAN),或一些其它适当的网络类型,与较高存储层402和较低存储层406上的存储介质404、408通信。存储系统管理器412还可以通过主机接口414与一个或多个主机系统(未示出)通信,所述主机接口可以是或可以不是存储系统管理器412的一部分。存储系统管理器412和/或存储系统400的任何其它组件可以以硬件和/或软件来实现,并且可以利用用于执行本领域已知类型的命令的处理器(未示出),诸如中央处理单元(CPU)、现场可编程门阵列(FPGA)、专用集成电路(ASIC)等。当然,可以使用存储系统的任何布置,如本领域技术人员在阅读本说明书时将显而易见的。
在更多实施例中,存储系统400可以包括任意数量的数据存储层,并且可以在每个存储层内包括相同或不同的存储存储器介质。例如,每个数据存储层可以包括相同类型的存储存储器介质,例如HDD、SSD、顺序存取介质(磁带驱动器中的磁带、光盘驱动器中的光盘等)、直接存取介质(CD-ROM、DVD-ROM等)或介质存储类型的任何组合。在一个这样的配置中,较高存储层402可以包括用于在较高性能存储环境中存储数据的SSD存储介质的大部分,并且包括较低存储层406和附加存储层416的剩余存储层可以包括用于在较低性能存储环境中存储数据的SSD、HDD、磁带驱动器等的任何组合。这样,更频繁访问的数据、具有更高优先级的数据、需要更快访问的数据等可以存储到更高存储层402,而不具有这些属性之一的数据可以存储到包括更低存储层406的附加存储层416。当然,本领域技术人员在阅读本说明书时,可以根据本文所呈现的实施例设计存储介质类型的许多其他组合以实现为不同的存储方案。
根据一些实施例,存储系统(诸如400)可以包括被配置为接收打开数据集的请求的逻辑、被配置为确定所请求的数据集是否在多个相关联的部分中被存储到分层数据存储系统400的较低存储层406的逻辑、被配置为将所请求的数据集的每个相关联的部分移动到分层数据存储系统400的较高存储层402的逻辑、以及被配置为从相关联的部分将所请求的数据集组合到分层数据存储系统400的较高存储层402上的逻辑。
当然,根据各种实施例,该逻辑可以被实现为任何设备和/或系统上的方法或计算机程序产品。
现在参考图5,示出了根据一个实施例的方法500的流程图。在各种实施例中,方法500可根据本发明在图1-4和9-10中所描绘的任何环境中执行。当然,如本领域技术人员在阅读本说明书时将理解的,方法500中可以包括比图5中具体描述的操作更多或更少的操作。
方法500的每个步骤可以由操作环境的任何合适的组件来执行。例如,在各种实施例中,方法500可以部分地或完全地由一个或多个服务器、计算机或其中具有一个或多个处理器的一些其他设备来执行。可以在任何设备中利用处理器(例如,以硬件和/或软件实现的并且优选地具有至少一个硬件组件的处理电路、芯片和/或模块)来执行方法500的一个或多个步骤。说明性处理器包括但不限于中央处理单元(CPU)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)等、其组合或本领域已知的任何其它合适的计算设备。附加的示例性组件包括一个或多个协处理器或加速器,其可以与CPU在同一芯片上或者可以不与CPU在同一芯片上或者封装在同一基板或模块上。
如图5所示,方法500可用操作502开始,其中压缩未压缩数据实例以创建经压缩数据实例。在一个实施例中,可以利用一个或多个压缩算法来压缩未压缩数据实例以创建经压缩数据实例。例如,压缩算法可被应用于未压缩数据实例以创建经压缩数据实例。
另外,在一个实施例中,未压缩数据实例可以包括被标识为要加密的数据。例如,可以从应用、从用户等接收对未压缩数据实例进行加密的请求。在另一实施例中,未压缩数据实例可包括明文实例。
此外,方法500可继续进行操作504,其中响应于确定经压缩数据实例的大小小于预定阈值而加密经压缩数据实例。在一个实施例中,可以将经压缩数据实例的大小与预定阈值进行比较。在另一实施例中,预定阈值可以包括阈值数据大小。在又一实施例中,响应于确定压缩数据实例的大小大于预定阈值,可以放弃、删除或移除压缩数据实例。
例如,经压缩数据实例可以被丢弃并由未来的压缩引擎输出重写。然后,可以响应于确定没有另外的数据进入或者已经检测到或即将发生掉电,删除被放弃的数据。
此外,在一个实施例中,预定阈值可以包括长度字段的大小、预定最小零填充长度和消息认证码(MAC)字段的总和。例如,长度字段、预定零填充和消息认证码(MAC)字段可以各自具有预定大小。在另一实施例中,加密经压缩数据实例可以导致经加密的经压缩数据实例。
此外,在一个实施例中,可以利用宽块加密来加密经压缩数据实例。例如,利用宽块加密来加密经压缩数据实例可以包括将宽块加密算法应用于经压缩数据实例。在另一示例中,宽块加密算法可包括EME2-AES加密算法、XCB-AES加密算法等。
另外,在一个实施例中,宽块加密算法可以表现为单块密码,并且可以将经压缩数据实例作为输入。在另一实施例中,宽块加密算法可以在加密压缩数据实例的同时在内部使用窄块密码(例如,高级加密标准(AES)密码)。在又一实施例中,宽块加密算法可以输出经加密的经压缩数据实例。在又一实施例中,利用宽块加密来加密经压缩数据实例可以包括将宽块加密算法应用于经压缩数据实例。
此外,在一个实施例中,可以利用包括初始化向量的扩展加密模式(例如,计数器模式加密等)来加密经压缩数据实例。例如,可以利用经压缩数据实例和秘密密钥来创建初始化向量。在另一示例中,秘密密钥可包括不可公开获得的用于加密的数据实例(例如,由执行数据实例的加密的实体持有)。在又一示例中,秘密密钥也可被称为私钥。
此外,在一个实施例中,初始化向量可以包括带密钥的散列。在另一实施例中,带密钥的散列可由将散列函数应用于秘密密钥和经压缩数据实例而产生。在又一实施例中,散列函数可以任何次序(例如,首先是秘密密钥,其次是数据的经压缩实例,或首先是数据的经压缩实例,其次是秘密密钥)应用于秘密密钥和明文。
此外,在一个实施例中,散列函数可以将秘密密钥和压缩数据实例映射到构成带密钥的散列的固定大小的散列值。在另一个实施例中,散列函数可以包括安全散列算法-256(SHA-256)密码散列函数。在又一实施例中,初始化向量可包括涉及散列密钥和明文的带密钥散列消息认证码/基于散列的消息认证码(HMAC)计算。在另一方面,散列密钥可以与用于对数据进行加密的秘密密钥相同,或者可以通过密钥推导与该秘密密钥相关,并且可以使用加密算法来计算带密钥的散列。
另外,在一个实施例中,可以从秘密密钥导出用于散列的密钥,并且可以使用加密算法来计算带密钥的散列。例如,可以通过利用散列加密密钥对明文的散列进行加密来确定带密钥的散列。散列加密密钥是一种类型的散列密钥,因此可以与用于对数据进行加密的秘密密钥相同,或者可以通过密钥推导与该秘密密钥相关。当使用散列加密密钥时,所使用的加密算法可以与使用128位密钥的高级加密标准(AES)加密算法(即,ECB-AES-128)的电子码本(ECB)模式一样简单。在另一方面,散列密钥也可独立于秘密密钥生成,并且如果是,则需要被保持,使得它可与秘密密钥一起用于在相同密钥下执行进一步加密以允许数据去重复。独立生成的散列密钥有助于初始化向量(IV)的唯一性。如果IV将被检查为匹配通过使用该IV创建的密文的解密的明文结果,则独立生成的散列密钥也将必须被保留。
此外,在一个实施例中,可以利用初始化向量、秘密密钥和压缩数据实例来加密压缩数据实例。例如,加密压缩数据实例可以导致加密的压缩数据实例。在另一示例中,加密经压缩数据实例可包括利用初始化向量和秘密密钥将加密模式(例如,加密算法)应用于经压缩数据实例。
此外,在一个实施例中,加密模式可以包括依赖于IV或诸如CBC、PCBC、CFB、OFB、OCB、CTR、CCM或GCM的随机数的加密模式。举例来说,基于计数器的加密模式(例如,CTR、GCM等)可将初始化向量与任意计数器值组合以产生第一值。然后,只要需要,就可以递增该第一值以创建计数流。然后,可以利用秘密密钥对计数流进行块密码加密(例如,高级加密标准(AES)加密等),以创建密码流。然后,数据实例可以与密码流组合(例如,使用异或(XOR)运算)以创建加密的数据实例。
此外,在一个实施例中,加密模式可以包括伽罗瓦计数器模式(GCM)加密模式。例如,GCM加密模式可以确定压缩数据实例内的块数。在另一实例中,块的数目可与初始化向量组合以产生第一值。然后,只要需要,就可以递增该第一值以创建计数流。然后,可以利用秘密密钥对计数流进行块密码加密(例如,高级加密标准(AES)加密等),以创建密码流。然后,数据实例可以与密码流组合(例如,使用XOR运算)以创建加密的数据实例。
此外,在一个实施例中,经加密的经压缩数据实例可以包括密文的实例(例如,通过将加密算法应用于经压缩数据实例而产生的经加密的文本等)。
此外,方法500可继续进行操作506,其中为数据的经加密压缩实例创建消息认证码(MAC)。在一个实施例中,MAC可以包括用于在数据的加密压缩实例被发送到接收方之后对其进行认证的数据。在另一实施例中,MAC可以使用相同的秘密密钥来生成和验证。在又一实施例中,密钥生成算法可从密钥空间选择秘密密钥(例如,以随机方式等)。
此外,在一个实施例中,密钥生成算法可以选择预定的秘密密钥。在另一实施例中,当给定选定秘密密钥和经加密压缩数据实例作为输入时,签名算法可输出标记(例如,MAC)。在又一实施例中,验证算法可以利用标签和所选择的秘密密钥来接受或拒绝包含数据的加密压缩实例和标签(例如,密文串)的消息。
以此方式,可以利用MAC来验证数据的加密压缩实例的真实性。
另外,在一个实施例中,MAC可以包括作为GCM加密模式的一部分创建的伽罗瓦消息认证码(GMAC或GCM-MAC)。例如,可以使用GCM加密模式来加密经压缩数据实例,并且可以作为相同加密计算的一部分来创建MAC(例如,使用相同的秘密密钥等)。
此外,在一个实施例中,MAC可以包括密钥控制的散列消息认证码或基于散列的消息认证码(例如,HMAC)。例如,HMAC可以基于底层的加密散列函数(例如,SHA2-256或SHA3-256散列函数等)来创建。在另一示例中,可以使用两遍散列计算来创建HMAC。
例如,秘密密钥可以从加密的压缩数据实例计算两个密钥(内部密钥和外部密钥)。在另一实施例中,密码散列函数的第一遍可使用经加密的经压缩数据实例和内部密钥来产生内部散列。在又一实施例中,密码散列函数的第二传递可以使用内部散列和外部密钥来产生最终HMAC。
此外,方法500可继续进行操作508,其中将零填充和MAC添加到经加密的经压缩数据实例以创建格式化的串。在一个实施例中,长度字段也可被添加到经加密压缩数据实例,其中长度字段可包括具有指示经加密压缩数据实例的长度的预定长度(例如,两个字节等)的字段。在另一实施例中,可以确定加密的压缩数据实例的长度,并且可以将该长度编码到长度字段中,该长度字段被串接到加密的压缩数据实例。
在另一实施例中,长度字段的大小可以基于经加密压缩数据实例的大小来计算。在一个实施例中,可以在将长度字段和零填充中的一个或多个添加到加密的压缩数据实例之后计算HMAC。
此外,在一个实施例中,最小零填充可包括具有一些高度可压缩且可容易检测的值的预定最小数目的字节,例如所有字节被设置为零。在另一实施例中,零焊盘可以具有大于预定阈值的长度。例如,预定阈值可以包括具有最小长度的可变数量的字节。在又一实施例中,零填充可被串接至数据的经加密压缩实例、长度字段等。
此外,在一个实施例中,MAC可以包括具有预定长度的字段。在另一个实施例中,MAC可以被连接到数据的加密压缩实例、长度字段、零填充等。在又一实施例中,密文串的长度(例如,长度字段、经加密压缩数据实例、零填充和MAC的长度)可等于未经压缩数据实例的长度。在又一实施例中,如果使用初始化向量(IV)来加密经压缩数据实例,则IV可被串接至经加密的经压缩数据实例、长度字段、零填充、MAC等。
此外,在一个实施例中,长度字段、经加密压缩数据实例、零填充、MAC和IV的长度可等于未经压缩数据实例的长度。这样,可以在对数据实例进行压缩、加密和提供完整性保护的同时实现长度保持压缩(LPC)。
此外,在一个实施例中,格式化的串可被存储和/或发送。例如,格式化的串可以存储在数据库、分布式存储系统、云计算环境等中。在另一实施例中,格式化的串可经由一个或多个网络发送到一个或多个用户、一个或多个设备、一个或多个远程存储系统等。
此外,在一个实施例中,零填充可以用于标识数据的加密压缩实例(例如,响应于接收数据的加密压缩实例或从存储装置读取数据的加密压缩实例)。例如,在接收到格式化的串时,接收实体可以搜索该串以寻找零填充(例如,在密文串内的预定位置处等)。在另一示例中,如果标识了零填充,则格式化的串可被标识为数据的经加密的经压缩实例。在又一示例中,如果未标识零填充,则格式化的串可被标识为经加密的未经压缩数据实例。
另外,在一个实施例中,MAC可以用于验证密文串的数据完整性和真实性。例如,在接收到密文串时,可以从密文串中提取MAC。例如,可以将密文字符串内的MAC的位置提供给接收方,并且可以使用该位置来提取MAC。在另一示例中,验证算法(与秘密密钥一起提供)可以利用密文字符串和秘密密钥(例如,用于创建MAC的秘密密钥等)来确定MAC。
此外,在一个实施例中,可以将所确定的MAC与所提取的MAC进行比较。在另一实施例中,如果确定的MAC与提取的MAC相同,则密文可被确认为有效。在又一实施例中,如果确定的MAC与提取的MAC不同,则密文可作为无效而被拒绝。
这样,可以为数据实例创建和存储完全确定性的密文串。密文串是完全确定性的,因为使用上述宽分组加密技术,如果第一数据实例与第二数据实例相同并且第一密钥与第二密钥相同,则使用第一密钥为第一数据实例创建的第一密文串可以与使用第二密钥为第二数据实例创建的第二密文串相同。结果,复制密文串可以在硬件存储装置内被识别并且可以被移除,从而增加硬件存储装置内的可用存储空间,并且改进硬件存储装置的性能,同时经由鲁棒加密来维持所存储的数据的安全性。
另外,通过在密文字符串中包括MAC,密文字符串可以在接收时被校验以查看它是否已经被破坏(例如,经由传输错误、经由恶意软件等)。这可以在密文串存储和传输期间提供端到端完整性保护。
现在参考图6,示出了根据一个实施例的用于加密未压缩数据实例的方法600的流程图。在各种实施例中,方法600可以根据本发明在图1-4和9-10中所描绘的任何环境中执行。当然,如本领域技术人员在阅读本说明书时将理解的,方法600中可以包括比图6中具体描述的操作更多或更少的操作。
方法600的每个步骤可以由操作环境的任何合适的组件来执行。例如,在各种实施例中,方法600可以部分地或完全地由一个或多个服务器、计算机或其中具有一个或多个处理器的某个其他设备来执行。可以在任何设备中利用处理器(例如,以硬件和/或软件实现的并且优选地具有至少一个硬件组件的处理电路、芯片和/或模块)来执行方法600的一个或多个步骤。说明性处理器包括但不限于中央处理单元(CPU)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)等、其组合或本领域已知的任何其它合适的计算设备。附加的示例性组件包括一个或多个协处理器或加速器,其可以与CPU在同一芯片上或者可以不与CPU在同一芯片上或者封装在同一基板或模块上。
如图6所示,方法600可以开始于操作602,其中确定经压缩数据实例的大小大于预定阈值。在一个实施例中,未压缩数据实例可以包括被标识为要加密的数据。例如,可以从应用、从用户等接收加密未压缩数据实例的请求。
另外,在一个实施例中,未压缩数据实例可以包括明文实例。例如,明文可以包括期望经由一个或多个加密算法加密的未加密信息。在另一实施例中,未压缩数据实例可以利用一个或多个压缩算法来压缩以创建经压缩数据实例。
此外,在一个实施例中,可以将经压缩数据实例的大小与预定阈值进行比较。在另一实施例中,预定阈值可以包括阈值数据大小。在又一实施例中,预定阈值可包括用于长度字段和预定最小零填充长度之和的空间。在又一实施例中,响应于确定压缩数据实例的大小大于预定阈值,可以放弃(例如,移除、删除等)压缩数据实例。
此外,方法600可以继续进行操作604,其中未压缩数据实例被加密以创建密文串,而不首先压缩未压缩数据实例。在一个实施例中,加密未压缩数据实例可产生加密的未压缩数据实例。在另一实施例中,经加密的未压缩数据实例可具有与未压缩数据实例相同的大小/长度。
而且,在一个实施例中,可以利用高级加密标准(AES)加密来加密未压缩数据实例。在另一实施例中,可以利用宽块加密来加密未压缩数据实例。例如,利用宽块加密来加密未压缩数据实例可以包括将宽块加密算法应用于未压缩数据实例。
另外,在一个实施例中,宽块加密算法可包括EME2-AES加密算法、XCB-AES加密算法等。在另一实施例中,宽块加密算法可以表现为单块密码,并且可以将未压缩数据实例作为输入。在又一实施例中,宽块加密算法可在加密未压缩数据实例的同时在内部使用窄块密码(例如,高级加密标准(AES)密码)。
此外,在一个实施例中,宽块加密算法可以输出经加密的未压缩数据实例。在另一实施例中,经加密的未经压缩数据实例可包括密文实例(例如,通过将加密算法应用于未经压缩明文实例而产生的经加密文本等)。
此外,在一个实施例中,密文串可以被存储和/或传输。例如,密文字符串可以存储在数据库、分布式存储系统、云计算环境等中。在另一个示例中,密文字符串可以经由一个或多个网络发送到一个或多个用户、一个或多个设备、一个或多个远程存储系统等。
现在参考图7,根据一个实施例示出了用于加密和机会性地验证数据实例的方法700的流程图。在各种实施例中,方法700可以根据本发明在图1-4和9-10中所描述的任何环境中执行。当然,如本领域技术人员在阅读本说明书时将理解的,方法700中可以包括比图7中具体描述的操作更多或更少的操作。
方法700的每个步骤可以由操作环境的任何合适的组件来执行。例如,在各种实施例中,方法700可以部分地或完全地由一个或多个服务器、计算机或其中具有一个或多个处理器的一些其他设备来执行。可以在任何设备中利用处理器(例如,以硬件和/或软件实现的并且优选地具有至少一个硬件组件的处理电路、芯片和/或模块)来执行方法700的一个或多个步骤。说明性处理器包括但不限于中央处理单元(CPU)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)等、其组合或本领域已知的任何其它合适的计算设备。附加的示例性组件包括一个或多个协处理器或加速器,其可以与CPU在同一芯片上或者可以不与CPU在同一芯片上或者封装在同一基板或模块上。
如图7所示,方法700可以开始于操作702,其中压缩未压缩数据实例以创建经压缩数据实例。另外,方法700可继续进行操作704,其中响应于确定经压缩数据实例的大小小于预定阈值,加密经压缩数据实例,为经加密的经压缩数据实例创建消息认证码(MAC),并且将零填充和MAC添加到经加密的经压缩数据实例以创建格式化的串。
此外,方法700可继续进行操作706,其中响应于确定经压缩数据实例的大小大于预定阈值,经压缩数据实例被丢弃,并且未压缩数据实例被加密以创建格式化的串。
现在参考图8,示出了根据一个实施例的用于执行数据去重复的方法800的流程图。在各种实施例中,方法800可以根据本发明在图1-4和9-10中描述的任何环境中执行。当然,如本领域技术人员在阅读本说明书时将理解的,方法800中可以包括比图8中具体描述的操作更多或更少的操作。
方法800的每个步骤可以由操作环境的任何合适的组件来执行。例如,在各种实施例中,方法800可以部分地或完全地由一个或多个服务器、计算机或其中具有一个或多个处理器的某个其他设备来执行。可以在任何设备中利用处理器(例如,以硬件和/或软件实现的并且优选地具有至少一个硬件组件的处理电路、芯片和/或模块)来执行方法800的一个或多个步骤。说明性处理器包括但不限于中央处理单元(CPU)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)等、其组合或本领域已知的任何其它合适的计算设备。附加的示例性组件包括一个或多个协处理器或加速器,其可以与CPU在同一芯片上或者可以不与CPU在同一芯片上或者封装在同一基板或模块上。
如图8所示,方法800可以开始于操作802,其中分析数据存储装置中的多个密文串。在一个实施例中,数据存储装置可以包括数据库、分布式存储系统、云计算环境等。在另一个实施例中,分析可以包括将数据存储器内的单个密文串与数据存储器内的其他密文串进行比较,以确定数据存储器内是否存在任何匹配(例如,副本)。
在又一实施例中,可通过对未压缩明文实例执行宽区块加密以产生具有与所述未压缩明文实例的长度匹配的长度的经加密未压缩明文实例来产生多个密文串中的一者或一者以上。在又一实施例中,可通过对经压缩明文实例执行宽区块加密以创建经加密的经压缩明文实例来创建多个密文串中的一者或一者以上。可将长度字段和可变长度零填充添加到经加密的经压缩明文实例以创建具有与未经压缩明文实例的长度匹配的长度的密文串。
此外,方法800可以继续进行操作804,其中基于该分析,从数据存储器中移除一个或多个冗余密文串。在一个实施例中,响应于确定在数据存储器内找到给定密文串的一个或多个匹配/副本,可以从数据存储器中移除(例如,删除、迁移等)给定密文串的一个或多个实例。在另一个实施例中,可以从数据存储器中移除重复的密文串,使得密文串的单个实例保留在数据存储器中。
结果,可在数据存储内执行去重复,这可使数据存储内的可用存储空间量最大化,由此改进实现数据存储的硬件的性能。
图9示出了根据一个示例性实施例的用于执行明文902的压缩实例的加密906的示例性环境900。如图所示,接收未压缩明文实例904,其具有加密该未压缩明文904的指令。作为响应,压缩914未压缩明文实例904以创建经压缩明文实例902。
另外,将经压缩的明文实例902的大小与预定大小阈值(例如,未经压缩的明文实例904的大小小于零填充912的大小和长度字段910的大小)进行比较,并且发现其小于预定大小阈值。响应于该确定,对经压缩明文实例902执行加密906以创建具有与经压缩明文实例902相同大小的经加密经压缩明文实例908。
此外,确定经压缩明文实例902的长度并将其作为长度字段910添加到经加密经压缩明文实例908。MAC 916是针对明文908的经加密压缩实例计算的,并且被附加到明文908的经加密压缩实例。创建具有预定最小长度的可变长度零填充912,并将其附加到MAC 916。
在另一实施例中,可以首先将零填充912附加到明文908的加密压缩实例,并且可以针对零填充912和明文908的加密压缩实例两者计算MAC 916。
以此方式,通过组合长度字段910、明文的经加密压缩实例908和零填充912来创建密文串。该密文串的长度与维持长度保持压缩(LPC)的明文904的未压缩实例相同。
图10示出了根据一个示例性实施例的用于执行未压缩明文实例1004的加密1008的示例性环境1000。如图所示,接收未压缩明文1004实例,并结合对该未压缩明文1004进行加密的指令。作为响应,压缩1002未压缩的明文实例1004以创建经压缩的明文实例1006。
另外,将经压缩的明文实例1006的大小与预定大小阈值进行比较,并且发现其大于预定大小阈值。响应于该确定,丢弃经压缩明文实例1006并对未压缩明文实例1004执行加密1008以创建具有与未压缩明文实例1004相同大小的经加密未压缩明文实例1010。
这样,保持了长度保持压缩(LPC)。
扩展LPC加密的机会认证
在一个实施例中,将消息认证码(MAC)插入到可充分压缩的数据的格式中。MAC的添加使得所存储的数据对于操纵更具弹性,因为密文不再是可延展的。更具体地说,替换受该MAC保护的加密扇区的部分密文变得不可行。
MAC的插入是机会性的,因为仅在数据可被充分压缩以允许用于插入MAC的空间时才插入MAC。
在一个实施例中,可以对明文单独计算MAC(例如,在加密之前)。这被称为认证然后加密(AtE)。在另一个实施例中,可以基于由加密产生的密文来单独地计算MAC。这被称为加密然后认证(EtA)。
在另一个实施例中,MAC可以通过使用诸如GCM的认证加密算法作为加密的一部分来计算。在又一实施例中,当单独计算MAC时,HMAC计算可用于创建安全MAC。
在一个实施例中,一种验证数据单元的方法包括:将每个数据单元压缩成压缩数据;计算所述经压缩数据长度并将其与阈值进行比较,其中如果所述经压缩数据长度小于所述阈值,则所述数据是充分可压缩的;如果所述单元的数据可被充分压缩,则加密所述数据并将消息认证码插入到所述数据单元的格式中;以及如果数据单元不能被充分压缩,则对数据进行加密而不插入消息认证码。
在另一实施例中,加密可以采取多种形式。例如,对充分可压缩的数据进行加密的第一种方式是使用初始化向量(IV)字段并使用IV相关加密模式,并且数据单元的格式化包括IV字段和MAC两者;对充分可压缩的数据进行加密的第二种方式是用宽块加密码对压缩数据进行加密,并且数据单元的格式化包括MAC字段而非IV字段。
这样,可以通过向压缩数据(可以加密或不加密)添加认证来提高数据完整性。
本发明可以是任何可能的技术细节集成水平的系统、方法和/或计算机程序产品。计算机程序产品可以包括其上具有计算机可读程序指令的计算机可读存储介质(或多个介质),所述计算机可读程序指令用于使处理器执行本发明的实施例。
计算机可读存储介质可以是能够保留和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质可以是例如但不限于电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或前述的任何合适的组合。计算机可读存储介质的更具体示例的非穷举列表包括以下:便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式光盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、诸如上面记录有指令的打孔卡或凹槽中的凸起结构的机械编码装置,以及上述的任何适当组合。如本文所使用的计算机可读存储介质不应被解释为暂时性信号本身,诸如无线电波或其他自由传播的电磁波、通过波导或其他传输介质传播的电磁波(例如,通过光纤线缆的光脉冲)、或通过导线传输的电信号。
本文描述的计算机可读程序指令可以从计算机可读存储介质下载到相应的计算/处理设备,或者经由网络,例如因特网、局域网、广域网和/或无线网络,下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光传输光纤、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或网络接口从网络接收计算机可读程序指令,并转发计算机可读程序指令以存储在相应计算/处理设备内的计算机可读存储介质中。
用于执行本发明的操作的计算机可读程序指令可以是汇编指令、指令集架构(ISA)指令、机器相关指令、微代码、固件指令、状态设置数据、集成电路的配置数据,或者以一种或多种编程语言(包括面向对象的编程语言,例如Smalltalk、C++等)和过程编程语言(例如“C”编程语言或类似的编程语言)的任意组合编写的源代码或目标代码。计算机可读程序指令可以完全在用户的计算机上执行,部分在用户的计算机上执行,作为独立的软件包执行,部分在用户的计算机上并且部分在远程计算机上执行,或者完全在远程计算机或服务器上执行。在后一种情况下,远程计算机可以通过任何类型的网络连接到用户的计算机,包括局域网(LAN)或广域网(WAN),或者可以连接到外部计算机(例如,使用因特网服务提供商通过因特网)。在一些实施例中,为了执行本发明的实施例,包括例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA)的电子电路可以通过利用计算机可读程序指令的状态信息来执行计算机可读程序指令以使电子电路个性化。附加的示例性电路包括一个或多个协处理器或加速器,其可以与CPU在同一芯片上或者可以不与CPU在同一芯片上或者封装在同一基板或模块上。
在此参考根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明的实施例。将理解,流程图和/或框图的每个框以及流程图和/或框图中的框的组合可以由计算机可读程序指令来实现。
这些计算机可读程序指令可以被提供给计算机或其他可编程数据处理装置的处理器以产生机器,使得经由计算机或其他可编程数据处理装置的处理器执行的指令创建用于实现流程图和/或框图的一个或多个框中指定的功能/动作的装置。这些计算机可读程序指令还可以存储在计算机可读存储介质中,其可以引导计算机、可编程数据处理装置和/或其他设备以特定方式工作,使得其中存储有指令的计算机可读存储介质包括制品,该制品包括实现流程图和/或框图的一个或多个框中指定的功能/动作的实施例的指令。
计算机可读程序指令还可以被加载到计算机、其他可编程数据处理装置或其他设备上,以使得在计算机、其他可编程装置或其他设备上执行一系列操作步骤,以产生计算机实现的过程,使得在计算机、其他可编程装置或其他设备上执行的指令实现流程图和/或框图的一个或多个框中指定的功能/动作。
附图中的流程图和框图示出了根据本发明的各种实施例的系统、方法和计算机程序产品的可能实现的架构、功能和操作。在这点上,流程图或框图中的每个框可以表示指令的模块、段或部分,其包括用于实现指定的逻辑功能的一个或多个可执行指令。在一些替代实施方案中,框中所注明的功能可不按图中所注明的次序发生。例如,连续示出的两个框实际上可以作为一个步骤来实现,同时、基本同时、以部分或全部时间重叠的方式执行,或者这些框有时可以以相反的顺序执行,这取决于所涉及的功能。还将注意,框图和/或流程图图示的每个框以及框图和/或流程图图示中的框的组合可以由执行指定功能或动作或执行专用硬件和计算机指令的组合的专用的基于硬件的系统来实现。
此外,根据各种实施例的系统可以包括处理器和与处理器集成和/或可由处理器集成的逻辑,该逻辑被配置为执行本文所述的过程步骤中的一个或多个。所谓与其集成,是指处理器具有与其一起嵌入的逻辑作为硬件逻辑,诸如专用集成电路(ASIC)、FPGA等。通过可由处理器执行,意味着逻辑是硬件逻辑;软件逻辑,例如固件、操作系统的一部分、应用程序的一部分;等等,或者硬件和软件逻辑的某种组合,其可由处理器访问并且被配置成使处理器在由处理器执行时执行某种功能。软件逻辑可以存储在任何存储器类型的本地和/或远程存储器上,如本领域所公知的。附加的示例性处理器包括一个或多个协处理器或加速器,其可以与CPU在同一芯片上或者可以不在同一芯片上,或者封装在同一基板或模块上
很清楚,前述系统和/或方法的各种特征可以以任何方式组合,从而从以上所呈现的描述中产生多个组合。
还应当理解,本发明的实施例可以以代表客户部署的服务的形式提供,以便按需提供服务。
已经出于说明的目的给出了本发明的各种实施例的描述,但是其不旨在是穷尽的或限于所公开的实施例。在不背离所描述的实施例的范围和精神的情况下,许多修改和变化对于本领域的普通技术人员将是显而易见的。选择本文所使用的术语以最好地解释实施例的原理、实际应用或对市场上存在的技术改进,或使本领域的其他普通技术人员能够理解本文所公开的实施例。

Claims (21)

1.一种计算机实现的方法,包括:
对未压缩数据实例进行压缩以创建经压缩数据实例;
响应于确定所述经压缩数据实例的大小小于预定阈值,对所述经压缩数据实例进行加密;
针对经加密的所述经压缩数据实例创建消息认证码(MAC);以及
将零填充和所述MAC添加到经加密的所述经压缩数据实例以创建格式化串。
2.根据权利要求1所述的计算机实现的方法,其中,所述未压缩数据实例包括明文实例。
3.根据权利要求1所述的计算机实现的方法,其中,响应于确定所述经压缩数据实例的所述大小大于所述预定阈值,放弃所述经压缩数据实例。
4.根据权利要求1所述的计算机实现的方法,其中,所述预定阈值包括长度字段、预定最小零填充量和所述MAC的总和的大小。
5.根据权利要求1所述的计算机实现的方法,其中,所述经压缩数据实例是利用宽块加密来加密的。
6.根据权利要求1所述的计算机实现的方法,其中,所述经压缩数据实例是利用包括初始化向量的扩展加密模式来加密的。
7.根据权利要求1所述的计算机实现的方法,还包括将长度字段添加到经加密的所述经压缩数据实例,其中,所述长度字段包括指示经加密的所述经压缩数据实例的长度的字段。
8.根据权利要求1所述的计算机实施的方法,其中,所述零填充包含某一高度可压缩且容易检测的数据模式的可变数目个字节,例如每一字节具有零值。
9.根据权利要求1所述的计算机实现的方法,其中,长度字段、经加密的所述经压缩数据实例、所述零填充和所述MAC的长度等于所述未压缩数据实例的长度。
10.根据权利要求1所述的计算机实现的方法,还包括存储或传输所述格式化串。
11.根据权利要求1所述的计算机实现的方法,其中,所述MAC包括作为伽罗瓦计数器模式(GCM)加密模式的一部分创建的伽罗瓦消息认证码(GMAC)。
12.根据权利要求1所述的计算机实现的方法,其中,所述MAC包括带密钥的散列消息认证码或基于散列的消息认证码。
13.根据权利要求1所述的计算机实现的方法,还包括使用所述MAC来验证所述格式化串的数据完整性和真实性。
14.一种计算机程序产品,包括一个或多个计算机可读存储介质以及共同存储在所述一个或多个计算机可读存储介质上的程序指令,所述程序指令包括被配置为使一个或多个处理器执行方法的指令,所述方法包括:
由所述处理器对未压缩数据实例进行压缩以创建经压缩数据实例;
由所述处理器响应于确定所述经压缩数据实例的大小小于预定阈值而对所述经压缩数据实例进行加密;
由所述处理器针对经加密的所述经压缩数据实例创建消息认证码(MAC);以及
由所述处理器将零填充和所述MAC添加到经加密的所述经压缩数据实例以创建格式化串。
15.根据权利要求14所述的计算机程序产品,其中,所述未压缩数据实例包括明文实例。
16.根据权利要求14所述的计算机程序产品,其中,响应于确定所述经压缩数据实例的所述大小大于所述预定阈值,放弃所述经压缩数据实例。
17.根据权利要求14所述的计算机程序产品,其中,所述预定阈值包括长度字段、预定最小零填充量和所述MAC的总和的大小。
18.根据权利要求14所述的计算机程序产品,其中,所述经压缩数据实例是利用宽块加密来加密的。
19.根据权利要求14所述的计算机程序产品,其中,所述经压缩数据实例是利用包括初始化向量的扩展加密模式来加密的。
20.一种计算机实现的方法,包括:
对未压缩数据实例进行压缩以创建经压缩数据实例;
响应于确定所述经压缩数据实例的大小小于预定阈值:
对所述经压缩数据实例进行加密,
针对经加密的经压缩数据实例创建消息认证码(MAC),以及
将零填充和所述MAC添加到经加密的所述经压缩数据实例以创建格式化串;以及
响应于确定所述经压缩数据实例的所述大小大于所述预定阈值:
放弃经压缩数据实例,以及
对所述未压缩数据实例进行加密以创建所述格式化串。
21.一种系统,包括:
处理单元;以及
存储器,耦接到所述处理单元且其上存储有指令,所述指令在由所述处理单元执行时执行根据权利要求1至13、20中的任一项所述的方法。
CN202111422945.9A 2020-12-03 2021-11-26 实现对经加密的数据的机会认证 Pending CN114595466A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/111,312 US11917072B2 (en) 2020-12-03 2020-12-03 Implementing opportunistic authentication of encrypted data
US17/111,312 2020-12-03

Publications (1)

Publication Number Publication Date
CN114595466A true CN114595466A (zh) 2022-06-07

Family

ID=79163984

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111422945.9A Pending CN114595466A (zh) 2020-12-03 2021-11-26 实现对经加密的数据的机会认证

Country Status (5)

Country Link
US (1) US11917072B2 (zh)
JP (1) JP2022089190A (zh)
CN (1) CN114595466A (zh)
DE (1) DE102021130812A1 (zh)
GB (1) GB2601906B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115758434A (zh) * 2023-01-06 2023-03-07 深圳奥联信息安全技术有限公司 一种数据高效编码加密方法

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11695541B2 (en) * 2020-12-07 2023-07-04 International Business Machines Corporation Implementing resilient deterministic encryption
US12088572B2 (en) * 2021-09-22 2024-09-10 Bank Of America Corporation Email verification using injected tokens for message authentication

Family Cites Families (60)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5642421A (en) * 1995-09-15 1997-06-24 International Business Machines Corporation Encryption of low data content ATM cells
US5778395A (en) 1995-10-23 1998-07-07 Stac, Inc. System for backing up files from disk volumes on multiple nodes of a computer network
JP2000048230A (ja) * 1998-07-27 2000-02-18 Toshiba Corp 無線料金収受システム
US20050015608A1 (en) 2003-07-16 2005-01-20 Pkware, Inc. Method for strongly encrypting .ZIP files
US6983365B1 (en) 2000-05-05 2006-01-03 Microsoft Corporation Encryption systems and methods for identifying and coalescing identical objects encrypted with different keys
US9143546B2 (en) * 2000-10-03 2015-09-22 Realtime Data Llc System and method for data feed acceleration and encryption
JP2004184516A (ja) * 2002-11-29 2004-07-02 Canon Inc デジタルデータ送信端末
JPWO2004093446A1 (ja) * 2003-04-17 2006-07-13 富士通株式会社 圧縮データと非圧縮データを同時転送する場合のタスクスケジューリング方法
US7746866B2 (en) * 2005-05-13 2010-06-29 Intel Corporation Ordered and duplicate-free delivery of wireless data frames
CN1905554A (zh) 2005-07-29 2007-01-31 华为技术有限公司 一种认证授权计费协议消息传输方法
US7725927B2 (en) * 2005-10-28 2010-05-25 Yahoo! Inc. Low code-footprint security solution
WO2007138601A2 (en) 2006-05-31 2007-12-06 Storwize Ltd. Method and system for transformation of logical data objects for storage
US8656186B2 (en) * 2007-05-01 2014-02-18 International Business Machines Corporation Use of indirect data keys for encrypted tape cartridges
US8494166B2 (en) * 2007-05-01 2013-07-23 International Business Machines Corporation Use of indirect data keys for encrypted tape cartridges
EP2153340A4 (en) 2007-05-08 2015-10-21 Riverbed Technology Inc HYBRID SEGMENT ORIENTED FILE SERVER, AND WAN ACCELERATOR
US9324361B2 (en) * 2007-08-14 2016-04-26 Seagate Technology Llc Protecting stored data from traffic analysis
JP2010050616A (ja) * 2008-08-20 2010-03-04 Sony Corp 記録装置および記録方法、再生装置および再生方法、プログラム、並びに記録再生装置
US8555053B1 (en) 2008-08-29 2013-10-08 Crossroads Systems, Inc. System and method for adjusting to drive specific criteria
US8218759B2 (en) 2009-04-17 2012-07-10 Oracle America, Inc. System and method for encrypting data
US20100303229A1 (en) * 2009-05-27 2010-12-02 Unruh Gregory Modified counter mode encryption
US8731190B2 (en) 2009-06-09 2014-05-20 Emc Corporation Segment deduplication system with encryption and compression of segments
US8401181B2 (en) 2009-06-09 2013-03-19 Emc Corporation Segment deduplication system with encryption of segments
US8706727B2 (en) * 2009-06-19 2014-04-22 Sybase, Inc. Data compression for reducing storage requirements in a database system
US8560848B2 (en) * 2009-09-02 2013-10-15 Marvell World Trade Ltd. Galois/counter mode encryption in a wireless network
JP5240151B2 (ja) * 2009-09-30 2013-07-17 富士通株式会社 画像処理装置、および画像処理制御プログラム
US8862902B2 (en) * 2011-04-29 2014-10-14 Seagate Technology Llc Cascaded data encryption dependent on attributes of physical memory
CN102364949A (zh) 2011-11-10 2012-02-29 中山大学深圳研究院 一种基于h.264_avc视频流完整性认证脆弱水印的方法
WO2013159112A1 (en) 2012-04-20 2013-10-24 The Board Of Regents Of The University Of Texas System Systems and methods for simultaneous compression and encryption
US9197607B2 (en) 2013-08-15 2015-11-24 Yahoo! Inc. Enhancing network security
JP6631989B2 (ja) * 2013-10-24 2020-01-15 鈴木 秀一 暗号化装置、制御方法、及びプログラム
US9407437B1 (en) 2014-03-25 2016-08-02 Amazon Technologies, Inc. Secure initialization vector generation
US9990502B2 (en) * 2014-04-28 2018-06-05 Topia Technology, Inc. Systems and methods for security hardening of data in transit and at rest via segmentation, shuffling and multi-key encryption
US10164772B2 (en) 2014-05-30 2018-12-25 Apple Inc. Permutation composition based hash function
US20150379276A1 (en) 2014-06-27 2015-12-31 Freescale Semiconductor, Inc. System on a chip, controller and method for securing data
US9397833B2 (en) 2014-08-27 2016-07-19 International Business Machines Corporation Receipt, data reduction, and storage of encrypted data
CN105808151B (zh) 2014-12-29 2019-09-27 华为技术有限公司 固态硬盘存储设备和固态硬盘存储设备的数据存取方法
US9904807B2 (en) * 2015-01-09 2018-02-27 Toshiba Memory Corporation Memory system and information processing system
US10540504B2 (en) 2015-05-12 2020-01-21 Datrium, Inc. Distributed data method for encrypting data
US10514986B2 (en) 2015-09-30 2019-12-24 Commvault Systems, Inc. Dynamic triggering of block-level backups based on block change thresholds and corresponding file identities in a data storage management system
US20180034787A1 (en) 2016-08-01 2018-02-01 Vormetric, Inc. Data encryption key sharing for a storage system
KR102563888B1 (ko) * 2016-09-30 2023-08-09 한국전기연구원 네트워크 환경에서 데이터 프레임 중복 제거 방법, 그 방법을 수행하는 장치 및 컴퓨터 프로그램
CN108184118A (zh) * 2016-12-08 2018-06-19 中兴通讯股份有限公司 云桌面内容编码与解码方法及装置、系统
US20180191492A1 (en) 2017-01-04 2018-07-05 International Business Machines Corporation Decryption-Side Initialization Vector Discovery
US10387661B2 (en) 2017-01-09 2019-08-20 Pure Storage, Inc. Data reduction with end-to-end security
US10304155B2 (en) * 2017-02-24 2019-05-28 Advanced Micro Devices, Inc. Delta color compression application to video
US10509733B2 (en) * 2017-03-24 2019-12-17 Red Hat, Inc. Kernel same-page merging for encrypted memory
US10944568B2 (en) * 2017-10-06 2021-03-09 The Boeing Company Methods for constructing secure hash functions from bit-mixers
AU2018369585A1 (en) 2017-11-14 2020-06-18 Pii Guard Aps A computer-implemented method of performing format-preserving encryption of a data object of variable size
JP6988394B2 (ja) * 2017-11-15 2022-01-05 住友電気工業株式会社 映像伝送システム、映像送信装置、映像受信装置、映像送信方法、映像受信方法およびコンピュータプログラム
US10505715B2 (en) 2017-11-17 2019-12-10 Marpex, Inc. Method and system of synchronous encryption to render computer files and messages impervious to pattern recognition and brute force attacks
US10666435B2 (en) * 2018-01-09 2020-05-26 Vmware, Inc. Multi-tenant encryption on distributed storage having deduplication and compression capability
US10958416B2 (en) * 2018-11-26 2021-03-23 International Business Machines Corporation Encrypted and compressed data transmission with padding
US11323548B2 (en) 2019-01-20 2022-05-03 Arilou Information Security Technologies Ltd. System and method for data compression based on data position in frames structure
JP7499775B2 (ja) * 2019-02-06 2024-06-14 ヒタチ・エナジー・リミテッド 資源が限られているシステムにおいてメッセージを認証するための方法
US11588829B2 (en) * 2020-05-07 2023-02-21 Mcafee, Llc Methods and apparatus for network detection of malicious data streams inside binary files
US11301344B2 (en) * 2020-06-16 2022-04-12 Intel Corporation Aggregate GHASH-based message authentication code (MAC) over multiple cachelines with incremental updates
JP7225175B2 (ja) * 2020-09-17 2023-02-20 株式会社日立製作所 ストレージ装置及びデータ処理方法
US11582025B2 (en) * 2020-09-29 2023-02-14 Amazon Technologies, Inc. Efficient deduplication using block-based convergent encryption
US11329803B2 (en) * 2020-09-29 2022-05-10 Amazon Technologies, Inc. Redundancy controls in convergent encryption using dynamic salt values
US11507292B2 (en) * 2020-10-15 2022-11-22 Dell Products L.P. System and method to utilize a composite block of data during compression of data blocks of fixed size

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115758434A (zh) * 2023-01-06 2023-03-07 深圳奥联信息安全技术有限公司 一种数据高效编码加密方法

Also Published As

Publication number Publication date
GB2601906A (en) 2022-06-15
US20220182242A1 (en) 2022-06-09
DE102021130812A1 (de) 2022-06-09
JP2022089190A (ja) 2022-06-15
US11917072B2 (en) 2024-02-27
GB2601906B (en) 2023-01-25
GB202116629D0 (en) 2022-01-05

Similar Documents

Publication Publication Date Title
US9824233B2 (en) Posixly secure open and access files by inode number
TWI773960B (zh) 用於以加密金鑰指令計算數位簽章驗證標記之電腦程式產品、電腦系統及電腦實施方法
US11917072B2 (en) Implementing opportunistic authentication of encrypted data
US11930099B2 (en) Implementing resilient deterministic encryption
US11836267B2 (en) Opaque encryption for data deduplication
US11757659B2 (en) Post-quantum certificate binding
US11108567B2 (en) Compute digital signature authentication verify instruction
US11601257B2 (en) Creating deterministic ciphertext using wide-block encryption
CN115668860B (zh) 用于识别加密对象的创建者的方法和系统
TWI811514B (zh) 用於計算數位簽章認證標記指令之電腦程式產品、電腦系統及電腦實施方法
WO2023052869A1 (en) Secure encryption of partial blocks
JP2024507647A (ja) ロックされたフィンガープリントを使用する複数鍵の安全な重複排除
CN113424491B (zh) 执行加密计算标量乘法指令
CN116158055B (zh) 用于软件部署配置的签名的实施
CN116158055A (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