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

原创 采用环形首尾互联互控的雪崩效应极好的Hash算法/杂凑函数RING-512设计原理详解
什么是Hash算法?Hash算法,又称为哈希算法、杂凑函数、散列函数、消息摘要算法。它可以将相当长(一般不大于2^64Bit)的输入数据经过计算生成固定长度的Hash值,不同的输入数据对应不同的Hash值(产生碰撞的概率很小)。同时Hash计算的过程是不可逆的,也就是说,由Hash值无法逆推出输入数据。Hash算法的应用非常多,分别是安全加密、唯一标识、数据校验、散列函数、负载均衡、数据分片、分布式存储、区块链等。
2024-01-01 19:03:23
1812
原创 SHA-3(Keccak)算法5比特S盒的双射性质证明
SHA-3(Keccak)为美国第三代Hash算法标准,其整体结构创新性的采用了海绵结构。对Keccak的分析表明,海绵结构能够抵抗现有的各种攻击方法,比如生日攻击,碰撞攻击,原像攻击,第二原像攻击等。海绵结构的安全性久经考验,至今未发现有效的攻击方法。Keccak的置换函数Keccak-f[1600]共24轮,每轮置换Keccak-p包含以下5个步骤(顺序为θ→ρ→π→χ→ι)。
2025-03-01 15:01:17
593
原创 基于流密码的认证加密算法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
200
原创 基于流密码的认证加密算法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
862
原创 轻量级认证加密算法ASCON
认证加密算法ASCON是CAESAR竞赛胜出算法之一,并为轻量级资源受限环境的首选方案,其工作模式基于MONKEYDUPLEX。接下来给出ASCON的算法描述。算法状态大小为320比特(5个64比特长的字x0,⋯,x4),属于类SPONGE结构。
2025-02-26 10:24:52
548
原创 基于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
568
原创 基于32位字的流密码算法SNOW3G
SNOW3G序列密码算法在SNOW2.0的基础上发展而来,是3GPP(3GPartnershipProject,第三代合作伙伴计划)中实现数据保密性和数据完整性的标准算法——UEA2&UIA2的核心。SNOW3G算法是面向字(32比特)实现的流密码,密钥规模为128比特.密钥流序列的产生包含初始化过程和密钥流生成过程。
2025-02-25 10:39:54
147
原创 国产流密码算法祖冲之算法(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
782
原创 微型分组加密算法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
523
原创 十分简单的流密码算法RC4
RC4算法是一种流加密算法,由罗纳德·李维斯特(Ron Rivest)在1987年开发。RC4算法因其速度快、简单易用,曾广泛应用于加密通信协议、安全套接字层(SSL)、传输层安全性(TLS)等网络安全协议中。然而,由于安全性问题,现在已不再被推荐使用。
2025-02-24 15:49:52
219
原创 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
799
原创 SHA-3(第三代Hash算法竞赛)候选算法之一BLAKE
BLAKE算法由瑞士的Aumasson等人设计,采用了HAIFA算法迭代结构,其中的压缩算法基于流密码ChaCha提出,内部结构采用Davies-Meyer模式,在压缩函数中,采用模余232加法运算与XOR运算,实现计算的非线性。针对MD结构的弱点,BLAKE算法的压缩函数中加入了随机盐(salt)与计数器,使整个算法具有良好安全性和硬件性能,可适用于多种应用平台。
2025-02-23 11:10:23
344
原创 十分经典的密码杂凑算法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
173
原创 轻量级密码杂凑函数族PHOTON
PHOTON杂凑函数族是由郭建等人设计的一族轻量级杂凑函数,正式发布于2011年美洲密码年会。PHOTON采用了两个主要技术:扩展的海绵结构和AES类置换。海绵函数是一种由固定置换构建杂凑函数的新选择。为了增加灵活性,PHOTON采用了扩展的海绵结构。它允许每次置换P之后的“比特榨取”时析出比特的个数可以与“比特吸收”时吸收的比特个数不相同,这样可以减少“比特榨取”过程的时间。
2025-02-22 09:13:58
433
原创 美国第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
988
原创 美国第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
379
原创 美国第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
802
原创 美国第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
368
原创 韩国哈希散列算法DHA-256
DHA-256是在2005年11月由NIST举行的Hash研讨会(Cryptographic Hash Workshop)上提出的。DHA-256压缩函数将长度为512比特的分组,压缩成长度为256比特的串,总共迭代64步,扩展的消息字在步函数中使用了两次。
2025-02-19 18:14:39
313
原创 国产密码杂凑算法SM3
SM3是中华人民共和国政府采用的一种密码散列函数标准,由国家密码管理局于2010年12月17日发布。相关标准为“GM/T0004-2012《SM3密码杂凑算法》”。在商用密码体系中,SM3主要用于数字签名及验证、消息认证码生成及验证、随机数生成等,其算法公开。据国家密码管理局表示,其安全性及效率与SHA-256相当。
2025-02-19 18:10:29
613
原创 基于SHA-256的分组密码算法SHACAL-2
SHACAL-2为分组加密算法,其基于Hash算法SHA-256设计,该算法沿袭单向Hash函数的形式来描述算法。SHACAL-2算法的分组长度为256比特,包括64步,密钥长度最大为512比特,建议使用长度不小于128比特的密钥。
2025-02-18 11:31:00
260
原创 基于SHA-1的分组密码算法SHACAL-1
SHACAL-1为分组加密算法,其基于Hash算法SHA-1设计。SHACAL-1加密算法是160比特的分组密码,密钥长度最长为512比特(建议使用长度不小于128比特的密钥),迭代次数为80轮,迭代函数包括异或、模加、循环移位、非线性布尔函数等操作。
2025-02-18 11:24:57
191
原创 日本分组加密算法MISTY1
MISTY1算法是由日本学者M.Matsui设计的一个分组密码算法,它是第一个基于抵抗差分密码分析和线性密码分析的可证安全性理论而设计的实用分组密码。MISTY1算法被NESSIE选定为过渡型的建议分组密码,同时也被国际组织在ISO和IEC列为分组密码标准之一。MISTY1算法的分组长度是64比特,密钥长度是128比特,轮数是可变的,但必须是8的倍数,一般使用的是八轮MISTY1算法。
2025-02-17 11:22:13
506
原创 轻量级分组密码算法 ITUbee
ITUbee是基于Feistel结构设计且面向软件实现的轻量级分组密码算法,ITUbee的分组长度和密钥长度均为80bit。为了减少算法运行时的功耗,ITUbee没有密钥扩展。ITUbee的轮函数在设计时采用了新的方法,轮密钥在每轮的两个非线性操作之间被注入。ITUbee的轮函数共迭代执行20轮,且在顶层和底层都有密钥白化层。
2025-02-17 11:16:57
204
原创 轻量级分组加密算法RECTANGLE
轻量级分组加密算法RECTANGLERECTANGLE轻量级分组密码算法是Wentao Zhang,Zhenzhen Bao,Dongdai Lin等学者于2014年提出的,该算法是SPN结构的,采用了线性移位的置换层以及4×4bit的S盒。RECTANGLE是一个迭代分组密码,分组长度为64比特,密钥长度可选80比特或者128比特。
2025-02-16 21:29:13
444
原创 欧洲分组加密算法之Kasumi
欧洲分组加密算法之KasumiKasumi分组密码算法是由欧洲标准机构ETSI(European Telecommunications Standards Institute)下属的安全算法组于1999年设计的,被用于构造A5/3、GEA3、f8和f9算法,参与移动通信系统无线链路上的用户数据机密性或信令消息完整性保护。
2025-02-16 21:21:40
425
原创 欧洲分组加密算法标准之Camellia
欧洲分组加密算法标准之CamelliaCamellia算法由日本三菱电气公司和日本信息处理开发中心共同开发,并在1999年首次公布。它在2000年被选定为NESSIE(欧洲密码学研究项目)的推荐算法之一,随后在2002年被遴选为普通型分组密码标准。Camellia的诞生部分是为了提供AES(高级加密标准)之外的替代方案,以满足当时对加密算法多样性的需求。
2025-02-14 08:52:50
736
原创 美国分组加密算法SkipJack
美国分组加密算法SkipJackSkipjack算法是由美国国家安全局(NSA)设计的一款用于Clipper芯片的分组密码算法。在Skipjack算法设计之初,其整个算法都是保密的,历经近十年之后才解密。Skipjack算法采用两类非平衡Feistel结构作为其密码结构,分别称为RuleA和RuleB。
2025-02-14 08:47:50
365
原创 韩国分组密码算法ARIA
ARIA密码是2003年由韩国学者提出,并在2004年被选为韩国分组密码标准的新的分组密码算法。ARIA密码算法采用了和AES算法相似的SPN结构。它的分组大小为128bit,密钥长度分别为128bit、192bit和256bit,对应的加解密轮数为12轮、14轮和16轮。轮密钥生成算法使用了一个256比特的3轮Feistel密码函数,函数中使用了1/π作为公开的无陷门常数。
2025-02-13 08:18:00
1086
原创 国际分组加密算法IDEA
IDEA(International Data Encryption Algorithm)即国际数据加密算法是1991年由Lai和Massey提出的,是应用最广泛的分组密码算法之一,最初版本于1990年公布,称为PES(建议加密标准).IDEA算法是8.5轮的分组密码算法,分组长度为64bit,密钥长度为128bit.
2025-02-13 08:13:04
416
原创 高级加密标准AES候选算法之一Twofish
高级加密标准AES候选算法之一TwofishTwofish算法,由BruceSchneier、JohnKelsey、DougWhiting、DavidWagner、ChrisHall、和NielsFerguson在1998年设计,是作为高级加密标准(AES)的候选算法之一。它的总体结构是16轮的Feistel结构,主要特点是S盒由密钥控制。Twofish的分组大小为128比特(可以扩展到256比特),密钥长度分别为128、192、256比特。
2025-02-11 14:44:36
541
原创 高级加密标准AES候选算法之一MARS
高级加密标准AES候选算法之一MARSMARS是IBM公司提交的一个AES候选算法,它的特点是充分使用非平衡的Feistel结构。为了保证加解密的强度相当,MARS用结构类似的两部分组成。该算法是面向字运算的,所有内部操作均以32比特字为单位。
2025-02-11 14:37:32
338
原创 高级加密标准AES候选算法之一Crypton
高级加密标准AES候选算法之一CryptonCrypton算法是由Chae Hoon Lim于1998年设计的,它是被接受为AES侯选者的15种分组密码之一。该算法是面向字节的一种Square结构的分组密码,它的建议轮数是12轮,长度为128比特的明文被分为16个字节,这16个字节按照Square算法的形式排放如下图所示: 其中aij表示状态矩阵A的(i,j)位置的元素。R[i]和C[j]分别表示其对应的行或列。
2025-02-10 20:17:39
886
原创 高级加密标准AES候选算法之一CAST-256
高级加密标准AES候选算法之一CAST-256CAST-256算法是于1998年发表的首轮的AES候选算法,也是CAST-128算法的扩展版本。CAST-128和CAST-256都是依照Adams设计的"CAST"设计方法,该设计方法用3种不同的基于8X32的S盒的轮函数。CAST-256的分组长度为128比特,密钥长度可为128、160、192、224和256比特,对于所有的密钥版本轮数都统一为48轮。
2025-02-10 20:10:31
227
原创 分组加密算法SAFER-K64
分组加密算法SAFER-K64SAFER-K64是分组长度为64bit,种子密钥K为64bit,轮数r=6的迭代密码算法。初始密钥K由密钥扩展算法生成2r+1个子密钥,也就是说,每轮用到2个子密钥,最后输出再用到1个子密钥。以下对SAFER-K64的轮函数结构的描述同样适用于SAFER-SK40,SAFER-SK64和SAFER-SK128,它们只是在密钥生成算法上不同。
2025-02-09 16:44:14
480
原创 分组加密算法CLEFIA
分组加密算法CLEFIACLEFIA分组密码算法由日本Sony(索尼)公司设计开发,接口对应于128比特分组密码技术例如ISO/IEC18033-3国际标准和高级加密标准(AES)。算法的分组长度是128比特,密钥长度为128、192和256比特可变。
2025-02-09 16:37:39
815
原创 国产分组密码算法SM4
国产分组密码算法SM4SM4(原SMS4)加密算法是公开的国产分组密码算法,主要用于对大量数据进行加密。SM4采用4分支非平衡Feistel结构设计,轮函数为SP结构,分组长度和密钥长度均为128bit,加密算法与密钥扩展算法都采用32轮非线性迭代结构,解密算法和加密算法的流程大同小异,只是轮密钥的使用顺序相反,S盒为固定的8比特输入8比特输出。SM4的主要操作包括异或运算、合成置换、非线性置换、反序变换、循环移位以及S盒变换等。它的安全强度与AES(高级加密标准)相当,适用于各类应用场景。
2025-02-08 14:49:21
766
原创 高级加密标准AES候选算法之一RC6
高级加密标准AES候选算法之一RC6作为AES(AdvancedEncryptionStandard)的侯选算法RC6是在RC5的基础上改进的,其目的是为了更好地符合AES的要求。RC5设计简单,运算速度快,使用灵活,易于软硬件实现。RC6不但继承了RC5的这些优点,同时可以抵抗任何已知的攻击,满足AES的安全要求。
2025-02-08 14:40:46
473
原创 高级加密标准AES候选算法之一Serpent
高级加密标准AES候选算法之一Serpent1997年,美国国家标准和技术研究所(NIST)发布公告在全世界范围内征集新的加密标准。值的一提的是,在征集过程的最后一轮五个算法的评选中,Rijndael得87票,Serpent得59票,排名第二。Serpent是一个非常经典的SPN式分组密码体制,同时它的安全强度非常高。与Rijndael一样,Serpent尚未有重大安全漏洞被发现。
2025-02-07 18:35:04
1103
原创 RC5分组加密算法
RC5分组加密算法RC5分组密码算法是1994年RSA实验室的RonaldL.Rivest教授发明的。它是参数可变的分组密码算法,三个可变的参数是:分组大小、密钥大小和加密轮数。在此算法中使用了三种运算:异或、模加和循环移位。RC5算法有一个面向字的结构:RC5-w/r/b,这里w是字长其值可以是16、32或64对于不同的字长明文和密文块的分组长度为2w位,r是加密轮数,b是密钥字节长度。Rivest推荐的RC5安全版本是RC5-32/12/16。
2025-02-07 18:28:58
277
S盒密码指标自动评估软件sboxAssessment
2025-02-25
对称加密算法(分组加密算法 - 序列密码算法 - 密码杂凑算法)4X4S盒分量布尔函数计算工具
2025-02-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人