GHASH函数在网络加密算法GCM的应用

目前的数据加密技术根据加密密钥类型可分私钥加密(对称加密)系统和公钥加密(非对称加密)系统。对称加密算法是较传统的加密体制,通信双方在加/解密过程中使用他们共享的单一密钥,鉴于其算法简单和加密速度快的优点,目前仍然是主流的密码体制之一。对称加密中的分组密码具有速度快、易于标准化和便于软硬件实现等特点,通常是信息与网络安全中实现数据加密、数字签名、认证及密钥管理的核心体制,它在计算机通信和信息系统安全领域有着最广泛的应用。其中GCM是一种任二元Galois域使用泛散列提供认证加密的分组加密算法。

一、GCM基本结构

GCM是建立于128位比特分组密钥的基础t的。GCM是AES加密算法的运算模式。GCM利用计数器模式提供对保密的数据进行加密,同时利用定义在伽罗华域的泛散hash函数提供认证加密。特别的GCM也能提供对特殊数据进行鉴权加密。如果GCM的输入被限制在不是对数据加密,则GCM输出的数据叫做GMAC。GMAC足简单的鉴权模式。

GCM的两个操作叫做认证加密和认证解密。每一个操作都是高效并行处理的,同时大数据的输出应运在硬件或者软件实现上是可行的。

同时GCM还有一些很多特征:GCM是“实时”的,也就是需要保密的数据长度以及特别的和不需要保密的数据的长度都不用事先知道。相反,数据的长度在数据到达时就可以计算出来。GCM是一种有方向的分组加密,也就是反方向是不允许的。被保护的数据的鉴权能被独立的从解密形式中识别出来。如果一些不需要的加密的数据或者特别的数据是同定的。那么对应的GCM鉴权体系可以被事先计算。

1、GCM基本元素

GCM中包括两个基本的操作就是认证加密和认证解密,这两个操作构成了GCM全部的功能。这两个操作具体步骤如下:

认证加密操作由以下等式定义:

使用函数生incr()成连续的计数器值,它把变量中最右边的32比特视为右边最少的有效位的非负整数,增加以232为模的值。正常来讲,incr(F||I)的值是P||(I+1mod232)。

解密操作如下:

只是散列与加密的步骤顺序相反。正常情况下,它由以下方程定义:

2、GCM的输入与输出

认证加密操作有4个输入,每个输入都是一个比特串:

密钥K,它的长度匹配于根本的分组密码。

初始化向量IV,它可有1到264之间的任意比特数。对于固定值的密钥,每个IV值必须不同,但是不要求有相同的长度。96比特IV值处理起来更加有效,以至于该长度被推荐于在急需功效的状态时使用。

明文P,它可以具有0--239-256之间的任意比特数。附加认证数据(AAD),用A表示。数据可被认证,但不能被加密,它可以具有0-264之间的任意比特数。

附加认证数据(AAD),用A表示。数据可被认证,但不能被加密,它可以具有0-264之间的任意比特数。

认证解密操作有四个输入,每个输入部是一个比特串:

密文C,它的长度与明文P的长度相同。

认证标签T,它的长度可以是64至128之间的任何值。标签的长度表示为t,基于该部分提供适当的值进行指导。

明文P,它可以具有o~239-256之间的任意比特效。

FAIL,无论何时,只要输入不是通过具有相同密钥的加密操作生成的,认证解密操作都会有很高的概率返回FAIL符号。

二、Ghash函数在GCM加密算法中的作用

GCM加密算法实现的关键在于AES算法的设计实现和GHASH函数的实现。因此Gbash是GCM加密算法最重要的一部分。值得注意的足GCM算法的GHASH函数基于GF(2128)域,由图1可见GCM硬件实现中Ghashi是其核心的模块。

GCM加密中的数据关系。因为流水线式结构的冷启动,对于重复式和流水线式AES实现都需要10个周期对用户密钥K计算Ho通常在给定的安全会话中,单个密钥用于全部信息包的处理。密钥由初始会话决定。因此密钥和在信息包传送前就已准备好。当接收到代表附加认证数据(A)的头文件时,GCM开始计算临时hash值。需要m个周期柬生成墨。然后hash计算将停止11+r个周期,直到生成第一个密文。根据IEEE和IETF建议标准,IV为96bit长时,可无延时生成Yo。否则,如果IV具有r个128bit消息,则还需要r各周期生成Yo。生成后的十个周期是GCM加密的密钥流。一旦AESICM流水线全满,每周期将生成128bit密文CI。当CI生成后,hash计算最新开始。在最后的密文Cn和最后的hash值xm+n+1之间有一个周期用于计算(length(A)_length(C))H。

三、Ghash函数逻辑描述

这里描述的Ghash函数以及算法是局限于GCM里的。

1、Ghash算法描述前的符号解释

给定一个实数X,[X]表示取不小于X实数值的最小整数。比如[2.1]=3,[4J=4。

给定一个字符串X符号表示连接符,比如00110111=00110111。

X和y的相加表示为X+y。域中的加法相当于异或位运算操作,比如10011010101=00110。

给定一个字符串X,Len(X)表示字符串的长度,比如Len(oooio)=5。

给定一个字符串X,和一个无符号数S。LSBs(X)表示取最右端的s位数,比如LSB3(111011010)=010,MSBs(X)表示取最左端s位教,比如MSB4(111011010)=1110。

给定一个字符串X,和一个无符号数S.LSBs(X)表示取最右端的s位数,比如LSB3(111011010)=010,MSBs(X)表示取最左端s位教,比如MSB4(111011010)=1110。

给定一个字符串X,>>右移或者<<左移符号比如0110111>>I=0011011。对于移位后的位数补零。在这里我们要定义伽罗华域的乘法X.Y,其定义如下:

输入字符串X,Y。

输出字符串X,Y。

步骤:

2、Ghash函数的算法描述

首要条件

blockH,thehashsubkey.

输入

bitstringXsuchtlwlen(X)=128mforsomepositiveintegcrm.

输出

blockGHASHH(X).

Ghash函数的详细步骤在下图中有说明:没有初始矩阵o,Yo和X1的异或运算并不改变X1的值。

由此可见Ghash函数在GCM加密算法中的作用是显然的。

小知识之伽罗华域

仅含有限多个元素的域。它首先由E.伽罗华所发现,因而又称为伽罗华域。它和有理数域、实数域比较,有着许多不同的性质。

欢迎访问夏冰加密软件技术博客,您的数据安全知识库和加密技术资讯平台。我们致力于提供最新的加密技术动态、深入的行业资讯以及实用的软件使用技巧,帮助您在数字时代中保护好每一比特的数据。

THE END
1.15个应用嘲的算法实现(可套用)算法应用时常,在项目中会遇到算法问题,多数人也就在面试时背背算法题,工作中也用的比较少,常见的算法也有封装好的实现,比如JDK封装的Arrays工具类中的二分查找。 那我们还需要去研究算法吗,答案是需要,在很多业务场景中,成熟的算法可以提高效率,减少不必要的问题出现,规避风险。 https://blog.csdn.net/qq_38566465/article/details/138206290
2.这就是算法:日常生活中的算法应用当我们一听到“算法”这个词,脑海里可能立刻浮现出数学公式和复杂计算的画面。但事实上,算法并不总是那么高深莫测,很多算法其实是基于我们日常生活中随处可见的基本逻辑。在深入讨论算法之前,我想先分享一个让人好奇的事实:你可能已经无意识地掌握了一些算法,并且在日常生活中自然而然地使用它们。接下来,我会通过https://baijiahao.baidu.com/s?id=1802799591805078324&wfr=spider&for=pc
3.无处不在的算法,让算法充分发挥作用,提升社会效率在上面的例子中,订单分配的结果实际上就是算法应用的结果。后台根据骑手当前位置、手头已有订单数量等数据,计算当前送餐距离和送餐路线,预估新的送餐距离和送餐路线,最终把订单分配给时间充裕且最为顺路的骑手,实际上就是通过一系列明确的计算步骤来进行判别和预测,这也是算法的本质。 http://www.idataway.com/cmscontent/5354.html
4.算法应用(精选十篇)大素数生成速度问题是影响RSA运算速率的主要因素。仿真实验发现, PSO及其改进算法可以大大提高RSA加密算法的大素数生成速度, 从而达到提高RSA算法的加解密速度, 使RSA加密算法的应用范围更加广泛。 参考文献 [1]Niel Ferguson, Bruce Schneier, 著.张振峰, 徐静, 李红达, 译.密码学实践[M].北京:电子工业出版社, https://www.360wenmi.com/f/cnkey2w51lax.html
5.哈希算法的七种应用哈希算法的应用非常多,本文介绍最常见的七个,分别是安全加密、唯一标识、数据校验、散列函数、负载均衡、数据分片、分布式存储。 安全加密 最常用于加密的哈希算法是 MD5(MD5 Message-Digest Algorithm,MD5 消息摘要算法)和 SHA(Secure Hash Algorithm,安全散列算法)。除了这两个之外,当然还有很多其他加密算法,比如 DEShttps://www.jianshu.com/p/3227b2568b63
6.用图形解释10种图形算法快速介绍10种基本图形算法以及示例和可视化 在现实世界中,例如社交媒体网络,网页和链接以及GPS中的位置和路线,图形已经成为一种强大的建模和捕获数据的手段。 如果您有一组相互关联的对象,则可以使用图形来表示它们。 > Image by Author 在本文中,我将简要说明10种基本图形算法,这些算法对于分析及其应用非常有用。 https://www.51cto.com/article/628420.html
7.遗传算法算法软件开发一、遗传算法的应用 函数优化(遗传算法的经典应用领域); 组合优化(实践证明,遗传算法对于组合优化中的NP完全问题,如0-1背包问题,TSP等,非常有效); 自动控制; 机器人智能控制; 组合图像处理和模式识别; 人工生命; 遗传程序设计; 二、遗传学基本概念与术语 https://www.open-open.com/lib/view/open1389594522398.html
8.算法工程师的分类关键技术要求及应用领域(6) 熟悉基于GPU的算法设计与优化和并行优化经验者优先;(7) 【音/视频领域】熟悉H.264等视频编解码标准和FFMPEG,熟悉rtmp等流媒体传输协议,熟悉视频和音频解码算法,研究各种多媒体文件格式,GPU加速; 应用领域:(1) 互联网:如美颜app (2) 医学领域:如临床医学图像(3) 汽车领域(4) 人工智能 相关术语:(1) https://maimai.cn/article/detail?fid=1193393813&efid=2X-wHOW7uO7hYGeB9S_g5w
9.人工智能之GBM算法GBM算法应用: GBM 算法可以用于回归模型,同样它也可以用于分类和排名模型。GBM 算法现已被广泛应用于众多领域。 GBM 算法近年来被提及比较多的一个算法,这主要得益于其算法性能,及该算法在各类数据挖掘以及机器学习比赛中的卓越表现。 结语: GBM梯度提升机(或梯度推进机)是一种集成学习法(Ensemble),就是使用一系列https://mp.ofweek.com/ai/a645673021216
10.版权前沿大规模微侵权算法侵权的司法应对版权资讯由此所导致的法律规制的难点在于,自动驾驶产品缺陷的技术及法律责任认定的困难、自动驾驶对于现行保险制度的冲击(自动驾驶对于传统保险机制下投保主体、保险对象、保险内容以及责任分担等形成系统性的挑战)、被动接管规则的应用困境等。 基于自动驾驶算法的场景化特征,在自动驾驶汽车设计缺陷的认定上,应通过“理性算法”标准http://www.ccct.net.cn/html/bqzx/2024/0110/4878.html
11.共达地李苏南:0代码自动化,让AI算法赋能千行百业商业模式鲸解通过算法商城,即把市场上常见的、可复用的算法生产出来,让客户可以即买即用,就像在商城里买现成商品一样,是一个扩大算法的应用广度的好方法。但与其他算法商城相比,共达地基于自动化机器学习的算法商城,里面的算法是“活的”,并不会像一个实体的超市,好像商品摆在那里可能一年到头就不会动了。 https://www.cls.cn/detail/1154839
12.详解C++实现匈牙利算法C语言对于每个左部节点,寻找增广路最多遍历整张二分图一次,因此,该算法时间复杂度为O(MN) 四、匈牙利算法的应用 一些题目,乍一看与上面这个男女配对的问题没有任何相似点,其实都可以用匈牙利算法。例如: 4.1、(洛谷P1129) [ZJOI2007]矩阵游戏 题目描述 小Q是一个非常聪明的孩子,除了国际象棋,他还很喜欢玩一个电脑益https://www.jb51.net/article/215059.htm
13.徐伟琨自动化行政中相对人算法决策拒绝权的实现路径随着图像识别等人工智能技术的发展,算法决策应用场景得到了极大的提升和拓展。2022年1月,国务院办公厅印发了《“十四五”数字经济发展规划》,明确要求“加快构建算力、算法、数据、应用资源协同的全国一体化大数据中心体系”。这为算法决策嵌入政府公共行政提供了有力支持和方向指引。 https://www.jfdaily.com/sgh/detail?id=1118205
14.国产密码算法为地理信息应用保驾护航以国产密码算法应用为核心,充分利用国产的密码技术和产品,创新国产密码在自然资源关键基础设施保护中的应用。(1)数据保护处理在涉密内网对原始涉密数据进行脱敏处理,然后调用测绘数据密码机对矢量数据进行透明加密处理。对切片数据采用国产密码对切片的栅格位置信息进行文件保护。(2)数据集中存储对数据进行统一、集中管理,https://www.hnup.com/sys-nd/394.html
15.基于加权动态网络的频繁模式挖掘研究AET挖掘加权动态网络的频繁子图困难在于产生的候选子图数量过多,而且子图同构检测问题也会影响算法的效率。对此,本文算法利用支持度的反单调性对搜索空间进行裁剪,并采用参考文献[7]的策略将挖掘图划分成挖掘路径、树和循环图的三个子问题,减少了候选子图数量和子图同构检测次数,提高了算法效率。而且将算法应用于实际的股http://www.chinaaet.com/article/167593
16.深度学习在NLP中的应用——TextCNN腾讯云开发者社区卷积神经网络(Convolutional Neural Networks,CNN)的提出使得深度学习在计算机视觉领域得到了飞速的发展,大量基于CNN的算法模型被提出,同时深度学习算法在多个视觉领域实现了突破。最初在文本领域,主要使用的深度学习模型是RNN,LSTM等,既然CNN在图像领域得到广泛的应用,能否将CNN算法应用于文本分类中呢?Kim在2014的文章《Conhttps://cloud.tencent.com/developer/article/1951509
17.“九章”刷屏的背后:万字长文解析,量子计算机和电子计算机各有何算法研究是一个非常非常复杂艰深的领域,特别是我需要横跨量子和经典两大部分,而且涉及到的应用涵盖了组合优化,密码学,生物学,科学计算,理论计算机等各个领域,以个人水平很难涵盖完整。而且考虑到受众,我有必要模糊化和简化一些概念,而只保证核心思想是正确的。因此如果过程中有差错,请多多包涵。 https://www.thepaper.cn/newsDetail_forward_10381047
18.算法的乐趣数组、链表、栈和队列是四种最常见的线性表,其外部行为和接口都各有特色,本节就简单介绍一下这四种基本数据结构的特点及其在算法设计中的应用。 1. 数组 数组(array)是一种相对比较简单的数据组织关系,所有数据元素存储在一片连续的区域内。对数组的访问方式一般是通过下标直接访问数组元素,除此之外,对数组的基本https://www.ituring.com.cn/book/tupubarticle/5656
19.BoostKit大数据业界趋势鲲鹏大数据组件增强特性和典型配置聚焦大数据查询效率低、性能优化难等挑战,提供大数据组件的开源使能和调优、IO智能预取等基础加速软件包、Spark算法加速库等应用加速软件包,开源openLooKeng查询引擎,提升大数据分析效率。 了解详细:https://www.hikunpeng.com/developer/boostkit/big-data 2、BoostKit分布式存储 https://developer.huawei.com/consumer/cn/blog/topic/03898238728230088