- 博客(86)
- 收藏
- 关注

原创 采用环形首尾互联互控的雪崩效应极好的Hash算法/杂凑函数RING-512设计原理详解
什么是Hash算法?Hash算法,又称为哈希算法、杂凑函数、散列函数、消息摘要算法。它可以将相当长(一般不大于2^64Bit)的输入数据经过计算生成固定长度的Hash值,不同的输入数据对应不同的Hash值(产生碰撞的概率很小)。同时Hash计算的过程是不可逆的,也就是说,由Hash值无法逆推出输入数据。Hash算法的应用非常多,分别是安全加密、唯一标识、数据校验、散列函数、负载均衡、数据分片、分布式存储、区块链等。
2024-01-01 19:03:23
1859
原创 基于海绵结构的密码杂凑算法Master
海绵结构(Sponge Construction)是一种新型杂凑算法结构,该结构以其灵活性和安全性著称,最早被创新性的使用于SHA3(Keccak)算法的构建。目前使用了海绵结构的密码算法有Ketje,Keyak,SPONGENT,PHOTON等。它通过“吸收”(absorb)和“挤压”(squeeze)两个阶段处理输入数据,类似于海绵吸水后挤出的过程。基于海绵结构的密码算法使用相同的置换(Permutation)函数来处理每一个内部状态。
2025-05-20 14:52:54
464
原创 基于经典MD结构的密码杂凑算法Orange256
Orange256为基于经典MD(Merkle Damgard)结构的密码杂凑算法,与SAH256和SM3极其类似,但是由于前者在压缩函数中使用1个32位消息字来更新4个寄存器的值,这使得Orange256算法达到雪崩效应的轮数比后者更少,速度更快,其压缩函数只需要迭代更少的轮数就可以达到与SAH256和SM3算法相同的安全程度。
2025-05-20 14:49:25
480
原创 基于128比特大S盒(ARX结构)的序列密码算法Elephant
Elephant (大象)为基于128比特大S盒(ARX结构)设计的序列密码算法,其根据密钥长度的不同,分别可以记为Elephant 128和Elephant 256,对应的初始向量IV长度为256比特。Elephant的512比特内部状态可以用4X4的状态矩阵来表示,其算法可以分为初始化阶段和工作阶段2部分。从这里可以看出,Elephant算法与RotateRing很类似。
2025-05-15 08:30:00
499
原创 基于大状态表驱动的序列密码算法Snowball
Snowball (滚雪球)为基于大状态表驱动的序列密码算法,其根据密钥长度的不同,分别可以记为Snowball 128和Snowball 256,对应的初始向量IV长度为128和256比特。Snowball的内部状态为两个基于32位字的状态表K1[256]和K2[256],其算法可以分为初始化阶段和工作阶段2部分。
2025-05-15 08:30:00
958
原创 基于分组密码结构的序列密码算法RotateRing
RotateRing(旋环)为基于分组密码结构(16分支非平衡Feistel结构)设计的序列密码算法,其根据密钥长度的不同,分别可以记为RotateRing128和RotateRing256,对应的初始向量IV长度为256比特。RotateRing的512比特内部状态可以用4X4的状态矩阵来表示,其算法可以分为初始化阶段和工作阶段2部分。
2025-05-13 08:24:01
711
原创 基于动态S盒的序列密码算法Sparrow
Sparrow(麻雀)属于序列密码算法,与RC4算法类似,但是Sparrow使用了AES算法的列混合变换来作为密钥生成函数,这使得其实现过程比RC4算法稍显复杂。但是瑕不掩瑜,牺牲的效率换来了安全上的提升也是值得的。Sparrow算法整体基于一个时刻动态变化的S盒置换表,整个算法的安全性也依赖于S盒。根据密钥的长度不同,Sparrow算法分别可以记为Sparrow128和Sparrow256,其对应的初始IV值的长度也分别为128和256比特。
2025-05-13 08:18:32
901
原创 AES算法的积分分析
积分攻击是一种选择明文攻击方法,它是继差分密码分析和线性密码分析后,密码学界公认的最有效的密码分析方法之一。这种攻击方法更多地与算法的结构有关,而与算法部件的具体取值关系不大,适用于每一个模块均为双射的分组密码。这一攻击方法对大多以字节为变换单位的减轮密码是有效的。该方法被提出后,已经成功对AES、Camellia和FOX等著名密码进行了不同程度的攻击。
2025-05-05 06:51:55
1183
原创 AES算法4轮差分分析
AES算法是由NIST(美国国家标准与技术研究院)在2001年发布的分组密码算法,分组大小为128比特,支持128比特,192比特,256比特3种密钥长度,对应的轮数分别为10轮,12轮,14轮,它们分别记为AES128,AES192,AES256。AES算法的每一轮可以分为4步:SubByte(字节替换),ShiftRow(行移位),MixColumn(列混合),AddKey(轮秘钥加)。
2025-05-05 06:47:05
867
原创 SHA256算法魔改版GMN256算法设计原理详解
SHA256算法为美国第二代哈希算法标准,关于该算法的介绍和设计细节详见美国第2代哈希散列算法之SHA-256。为防止SHA256算法不能抵抗未知的攻击方法(未来有可能会出现新的攻击方法),本文提出了SHA256算法的改进版本GMN256。在不改变SHA256算法的整体结构和其它参数的情况下,通过对其消息扩展算法和压缩函数进行相应修改。相比较于SHA256算法,GMN256算法的安全性得到较大提升,同时两者的运算效率相差无几。
2025-05-02 08:58:17
307
原创 分组密码算法ShengLooog设计原理详解
ShengLooog(升龙)为基于Feistel结构设计的分组密码算法,分组大小为128比特,密钥长度分别为128,192,256比特,对应的算法轮数分别为32,36,40,其可以分别表示为ShengLooog128/32,ShengLooog192/36,ShengLooog256/40。
2025-04-30 19:18:27
405
原创 序列密码算法ShanLooog512设计原理详解
ShanLooog512(闪龙512)为序列密码算法,内部状态为512比特,密钥长度为128或256比特,轮函数为FFFFFFFF,循环轮数为24轮,输出密钥流为512比特的状态。与Salsa20类似,内部状态为4X4的矩阵形式排列,字大小为32比特。
2025-04-28 23:01:44
616
原创 密码杂凑算法HaoLooog512设计原理详解
HaoLooog512算法相当于一个大的压缩算法,它的输入为相当长的一段消息(不大于2^64位),输出为固定的512位杂凑值。压缩函数的输入为当前链接变量(512位)和当前消息分组(512位),输出为更新后的链接变量(512位)。HaoLooog512可以用于数据完整性验证,高效数据存储与检索,密码安全保护,加密与数字签名,区块链技术,文件校验与版本控制。
2025-04-28 22:53:11
777
原创 SHA-3(Keccak)算法5比特S盒的双射性质证明
SHA-3(Keccak)为美国第三代Hash算法标准,其整体结构创新性的采用了海绵结构。对Keccak的分析表明,海绵结构能够抵抗现有的各种攻击方法,比如生日攻击,碰撞攻击,原像攻击,第二原像攻击等。海绵结构的安全性久经考验,至今未发现有效的攻击方法。Keccak的置换函数Keccak-f[1600]共24轮,每轮置换Keccak-p包含以下5个步骤(顺序为θ→ρ→π→χ→ι)。
2025-03-01 15:01:17
680
原创 基于流密码的认证加密算法MORUS
MORUS算法是由Hong jun Wu和Tao Huang设计的一个基于流密码的认证加密算法,目前已进入CAESAR竞赛的第二轮评选中.根据内部状态和密钥长度的不同,设计者推荐了3个MORUS子算法:MORUS-640-128、MORUS-1280-128和MORUS-1280-256.MORUS算法的设计采用了分组密码的思想,内部状态置于5个等长的寄存器中,依次对各内部状态分组进行运算.算法的内部状态更新函数仅使用异或(⊕)、逻辑与(&)和循环左移(<<<)三种运算,通过将明文和密钥流进行异或操作来实现
2025-02-27 10:29:29
231
原创 基于流密码的认证加密算法FASER
FASER流密码是Chaza等人提交到CAESAR竞赛的在线认证加密方案。它是一个认证密码族,包含了两个密码算法:FASER128和FASER256.FASER使用了两个长度相同的状态寄存器,一个用来加密一个用来认证.状态寄存器可以看作反馈移位寄存器(feedback shift register,FSR)并进行更新.加密函数使用FSR作为一个流密码而认证函数则把它作为一个计数器.此外,在FASER128和FASER256中FSR分别是由8个核12个子FSR组成.这些子FSR独立更新状态的不同部分.
2025-02-27 10:22:19
901
原创 轻量级认证加密算法ASCON
认证加密算法ASCON是CAESAR竞赛胜出算法之一,并为轻量级资源受限环境的首选方案,其工作模式基于MONKEYDUPLEX。接下来给出ASCON的算法描述。算法状态大小为320比特(5个64比特长的字x0,⋯,x4),属于类SPONGE结构。
2025-02-26 10:24:52
741
原创 基于LFSR和NFSR的密码杂凑算法QUARK
在2010年CHES会议上,Aumasson等提出了一个轻量级杂凑函数族算法QUARK。QUARK算法的形成受到了eSTREAM流密码算法Grain和分组密码算法KATAN设计的启发。在最初的设计文档中,QUARK包含了三个版本:U-QUARK、D—QUARK和S-QUARK。对这三个版本,设计者选择的消息摘要长度n分别为136、176和256比特。QUARK算法的整体设计采用了一个海绵结构,可以被用来实现消息认证、流密码加密或者认证加密功能。
2025-02-26 10:17:20
608
原创 基于32位字的流密码算法SNOW3G
SNOW3G序列密码算法在SNOW2.0的基础上发展而来,是3GPP(3GPartnershipProject,第三代合作伙伴计划)中实现数据保密性和数据完整性的标准算法——UEA2&UIA2的核心。SNOW3G算法是面向字(32比特)实现的流密码,密钥规模为128比特.密钥流序列的产生包含初始化过程和密钥流生成过程。
2025-02-25 10:39:54
273
原创 国产流密码算法祖冲之算法(ZUC)
ZUC算法是加密算法128-EEA3和完整性算法128-EIA3的核心,由中国科学院数据保护和通信安全研究中心(DACAS)研制。ZUC算法是于2011年9月在第53次第三代合作伙伴计划(3GPP)系统架构组(SA)会议上被正式通过的,它是第一个成为国际标准的由我国自主研制的加密算法。经过安全算法专家组(SAGE)、学术专家和社会公开这3轮的评估之后,ZUC正式被第3代合作项目(3GPP)选为加密标准算法,将用于4G的传输数据加密和完整性验证。
2025-02-25 10:33:11
1076
原创 微型分组加密算法TEA、XTEA、XXTEA
TEA(Tiny Encryption Algorithm)算法是一种分组加密算法,由剑桥大学计算机实验室的David Wheeler和Roger Needham于1994年发明。TEA、XTEA、XXTEA算法采用64位的明文分组和128位的密钥。它使用Feistel分组加密框架,并建议进行32轮迭代(尽管设计者认为32轮已经足够,但算法可以支持更多轮次以提高安全性)。
2025-02-24 15:55:50
652
原创 十分简单的流密码算法RC4
RC4算法是一种流加密算法,由罗纳德·李维斯特(Ron Rivest)在1987年开发。RC4算法因其速度快、简单易用,曾广泛应用于加密通信协议、安全套接字层(SSL)、传输层安全性(TLS)等网络安全协议中。然而,由于安全性问题,现在已不再被推荐使用。
2025-02-24 15:49:52
267
原创 SHA-3(第三代Hash算法竞赛)候选算法之一Skein
2007年,NIST面向全世界征集新的Hash算法标准SHA-3,许多国家和组织都积极地参加了这次SHA-3竞赛,共有64个算法提交,经过两轮的筛选,目前有5个算法成为最终的候选算法,分别为源自瑞士的BLAKE,Graz理工大学和丹麦理工大学合作的Grøstl,新加坡华裔信息安全专家伍宏军的JH,Joan Daemen为主要成员的Keccak,以及Bruce Schneier为负责人的Skein。
2025-02-23 11:15:18
863
原创 SHA-3(第三代Hash算法竞赛)候选算法之一BLAKE
BLAKE算法由瑞士的Aumasson等人设计,采用了HAIFA算法迭代结构,其中的压缩算法基于流密码ChaCha提出,内部结构采用Davies-Meyer模式,在压缩函数中,采用模余232加法运算与XOR运算,实现计算的非线性。针对MD结构的弱点,BLAKE算法的压缩函数中加入了随机盐(salt)与计数器,使整个算法具有良好安全性和硬件性能,可适用于多种应用平台。
2025-02-23 11:10:23
408
原创 十分经典的密码杂凑算法HAVAL
杂凑函数HAVAL是由Y.Zheng等在Auscrypto92提出的,该体制可以在3、4或5圈压缩任意长度的报文并输出长度为128-比特、160-比特、192-比特、224-比特或256-比特的杂凑值。HAVAL是一个杂凑算法,它可以在3、4或5圈压缩任意长度的报文并输出长度为128-比特、160-比特、192-比特或224-比特的杂凑值。
2025-02-22 09:19:53
205
原创 轻量级密码杂凑函数族PHOTON
PHOTON杂凑函数族是由郭建等人设计的一族轻量级杂凑函数,正式发布于2011年美洲密码年会。PHOTON采用了两个主要技术:扩展的海绵结构和AES类置换。海绵函数是一种由固定置换构建杂凑函数的新选择。为了增加灵活性,PHOTON采用了扩展的海绵结构。它允许每次置换P之后的“比特榨取”时析出比特的个数可以与“比特吸收”时吸收的比特个数不相同,这样可以减少“比特榨取”过程的时间。
2025-02-22 09:13:58
489
原创 美国第3代哈希散列算法之SHA3(Keccak)
(1)Keccak算法简介Keccak算法是美国国家标准与技术研究院(NIST)发起的SHA3竞赛的获胜算法,采用的是新型的海绵结构。根据摘要值长度的不同可以分为Keccak224、Keccak256、Keccak384、Keccak512共4个版本。海绵结构的状态被分为两部分:第一部分长度为r比特,称为比特率(bitrate):第二部分长度为c比特,称为填充数(capacity),因此海绵结构的状态大小为b=r+c。
2025-02-21 15:39:20
1088
原创 美国第2代哈希散列算法之SHA-512
SHA-2(SecureHashAlgorithm2),第二代散列函数算法标准,由美国国家安全局研发,由美国国家标准与技术研究院(NIST)在2001年发布,属于SHA-1算法的增强版本,用于在有安全需求的环境中替代SHA-1。其下又分为4个不同的算法标准,包括:SHA-224、SHA-256、SHA-384、SHA-512。本文主要介绍SHA-512算法。
2025-02-21 15:33:34
507
原创 美国第2代哈希散列算法之SHA-256
SHA-2(SecureHashAlgorithm2),第二代散列函数算法标准,由美国国家安全局研发,由美国国家标准与技术研究院(NIST)在2001年发布,属于SHA-1算法的增强版本,用于在有安全需求的环境中替代SHA-1。其下又分为4个不同的算法标准,包括:SHA-224、SHA-256、SHA-384、SHA-512。本文主要介绍SHA-256算法。
2025-02-20 17:57:08
888
原创 美国第1代哈希散列算法SHA-1
SHA-1(英语:Secure Hash Algorithm 1,中文名:安全散列算法1)是一种密码散列函数,美国国家安全局设计,并由美国国家标准技术研究所(NIST)发布为联邦数据处理标准(FIPS)。SHA-1是SHA家族的第一个成员,后续还有SHA-224、SHA-256、SHA-384、SHA-512等版本。SHA-1与SHA-0几乎相同,除了前者比后者多了个循环移位。SHA-1采用了MD结构,其压缩函数的输入为512比特的消息块和160比特的链接变量。
2025-02-20 17:52:01
427
原创 韩国哈希散列算法DHA-256
DHA-256是在2005年11月由NIST举行的Hash研讨会(Cryptographic Hash Workshop)上提出的。DHA-256压缩函数将长度为512比特的分组,压缩成长度为256比特的串,总共迭代64步,扩展的消息字在步函数中使用了两次。
2025-02-19 18:14:39
335
原创 国产密码杂凑算法SM3
SM3是中华人民共和国政府采用的一种密码散列函数标准,由国家密码管理局于2010年12月17日发布。相关标准为“GM/T0004-2012《SM3密码杂凑算法》”。在商用密码体系中,SM3主要用于数字签名及验证、消息认证码生成及验证、随机数生成等,其算法公开。据国家密码管理局表示,其安全性及效率与SHA-256相当。
2025-02-19 18:10:29
661
原创 基于SHA-256的分组密码算法SHACAL-2
SHACAL-2为分组加密算法,其基于Hash算法SHA-256设计,该算法沿袭单向Hash函数的形式来描述算法。SHACAL-2算法的分组长度为256比特,包括64步,密钥长度最大为512比特,建议使用长度不小于128比特的密钥。
2025-02-18 11:31:00
307
原创 基于SHA-1的分组密码算法SHACAL-1
SHACAL-1为分组加密算法,其基于Hash算法SHA-1设计。SHACAL-1加密算法是160比特的分组密码,密钥长度最长为512比特(建议使用长度不小于128比特的密钥),迭代次数为80轮,迭代函数包括异或、模加、循环移位、非线性布尔函数等操作。
2025-02-18 11:24:57
226
原创 日本分组加密算法MISTY1
MISTY1算法是由日本学者M.Matsui设计的一个分组密码算法,它是第一个基于抵抗差分密码分析和线性密码分析的可证安全性理论而设计的实用分组密码。MISTY1算法被NESSIE选定为过渡型的建议分组密码,同时也被国际组织在ISO和IEC列为分组密码标准之一。MISTY1算法的分组长度是64比特,密钥长度是128比特,轮数是可变的,但必须是8的倍数,一般使用的是八轮MISTY1算法。
2025-02-17 11:22:13
570
原创 轻量级分组密码算法 ITUbee
ITUbee是基于Feistel结构设计且面向软件实现的轻量级分组密码算法,ITUbee的分组长度和密钥长度均为80bit。为了减少算法运行时的功耗,ITUbee没有密钥扩展。ITUbee的轮函数在设计时采用了新的方法,轮密钥在每轮的两个非线性操作之间被注入。ITUbee的轮函数共迭代执行20轮,且在顶层和底层都有密钥白化层。
2025-02-17 11:16:57
239
原创 轻量级分组加密算法RECTANGLE
轻量级分组加密算法RECTANGLERECTANGLE轻量级分组密码算法是Wentao Zhang,Zhenzhen Bao,Dongdai Lin等学者于2014年提出的,该算法是SPN结构的,采用了线性移位的置换层以及4×4bit的S盒。RECTANGLE是一个迭代分组密码,分组长度为64比特,密钥长度可选80比特或者128比特。
2025-02-16 21:29:13
538
原创 欧洲分组加密算法之Kasumi
欧洲分组加密算法之KasumiKasumi分组密码算法是由欧洲标准机构ETSI(European Telecommunications Standards Institute)下属的安全算法组于1999年设计的,被用于构造A5/3、GEA3、f8和f9算法,参与移动通信系统无线链路上的用户数据机密性或信令消息完整性保护。
2025-02-16 21:21:40
501
原创 欧洲分组加密算法标准之Camellia
欧洲分组加密算法标准之CamelliaCamellia算法由日本三菱电气公司和日本信息处理开发中心共同开发,并在1999年首次公布。它在2000年被选定为NESSIE(欧洲密码学研究项目)的推荐算法之一,随后在2002年被遴选为普通型分组密码标准。Camellia的诞生部分是为了提供AES(高级加密标准)之外的替代方案,以满足当时对加密算法多样性的需求。
2025-02-14 08:52:50
802
原创 美国分组加密算法SkipJack
美国分组加密算法SkipJackSkipjack算法是由美国国家安全局(NSA)设计的一款用于Clipper芯片的分组密码算法。在Skipjack算法设计之初,其整个算法都是保密的,历经近十年之后才解密。Skipjack算法采用两类非平衡Feistel结构作为其密码结构,分别称为RuleA和RuleB。
2025-02-14 08:47:50
460
密码学+Hash算法+Hash计算工具+文件完整性校验
2025-05-05
S盒密码指标自动评估软件sboxAssessment
2025-02-25
对称加密算法(分组加密算法 - 序列密码算法 - 密码杂凑算法)4X4S盒分量布尔函数计算工具
2025-02-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人