加密算法-流密码加密

带妹妹学密码系列4---流密码(ZUC) 粗略介绍ZUC算法 阅读详情

什么是流密码

流密码是一种常见的加密算法,基于异或(XOR)操作,每次只操作一个字节,常见的流密码加密算法有:RC4、ORYX、SEAL。

 

流密码隐藏的问题

因为异或加密的本质,最常见的错误就是多次使用同一个密钥进行加解密。攻击者甚至不需要知道密钥就能成功破解密文。原理如下:

缺陷

/* A、B为明文,C为密钥 */

E(A) = A XOR C ;

E(B) = B XOR C ;

/* 相同的值想异或结果为0 */

E(A) XOR E(B) = (A XOR C) XOR (B XOR C) = A XOR B XOR (C XOR C) = A XOR B ;

E(A) XOR E(B) XOR B = A XOR B XOR B = A;

因此我们只要构建一个明文B并获得他的密文,通过其他途径获得A的密文(密文一般容易得到),通过这三个值就能获取到A的明文!这里的前提是两次加密的密钥是一致的!

因此对于流密码方式的加密,密钥的随机性就至关重要了!!

在Ucenter中,有一个加密算法,他是如何获取密钥的呢。

$ckey_length = 4; /* 密钥的长度默认为4 !*/

$keyc = substr(md5(microtime()),-$ckey_length);

这里密钥是随机生成的,具有一定随机性,这样导致相同的字符串每次加密后的结果一般都不相同,那不同的密文算法又是如何解密的呢,原因就是需要将每次使用的密钥添加到加密后的密文中,形成最终的密文。

流加密返回的密文内容

$result = decrypt($keyc,$string);

return $keyc.$result;

 

这样如果密钥随机性不高,就给了攻击者暴力破解的机会,比如说上面的密钥长度为4,完成可以通过暴力破解。

流密码暴力破解

$A_crypt = $A XOR $C;

/* 密文前4位就是密钥 */

$c_private = substr($A_crypt,0,3);

for(;;){

$keyc = substr(md5(microtime()),-4);

if($c_private == $keyc){

$B_crypt = decrypt($keyc,$B);

$A = $B_crypt XOR $A_crypt XOR $B;

return $A;

}

}

经测算,4个字的密钥大概几十秒就给破解出来了!因此密钥的随机性对于流密码至关重要!!

了解流式加密(CK)(二) 对流式加密(CK)的原理和C++代码实现进行了较详细地介绍。 阅读详情

相关推荐

基于流密码的认证加密算法FASER

FASER流密码是Chaza等人提交到CAESAR竞赛的在线认证加密方案。它是一个认证密码族,包含了两个密码算法:FASER128和FASER256.FASER使用了两个长度相同的状态寄存器,一个用来加密一个用来认证.状态寄存器可以看作反馈移位寄存器(feedback shift register,FSR)并进行更新.加密函数使用FSR作为一个流密码而认证函数则把它作为一个计数器.此外,在FASER128和FASER256中FSR分别是由8个核12个子FSR组成.这些子FSR独立更新状态的不同部分.

HuangJinLong2的博客 1060

密码学:流密码.(对称密码)

流密码(Stream Cipher)属于对称密码算法中的一种,其基本特征是加解密双方使用一串与明文长度相同的密钥流,与明文流组合来进行加解密密钥流通常是由某一确定状态的伪随机数发生器所产生的比特流,双方将伪随机数生成器的种子 (seed) 作为密钥,而组合函数通常为按位异或 (xor)运算。

网络安全领域___专研者. 5685

爬虫逆向实战:Rabbit流密码加密算法原理与破解指南

在数据采集与网络安全领域,对称加密算法是保障数据传输机密性的核心技术之一。其原理是使用相同的密钥进行加密和解密,具有运算效率高的特点。流密码作为对称加密的重要分支,通过生成密钥流并与明文进行按位异或操作实现加密,特别适合对实时性要求高的场景。Rabbit算法作为一种高性能流密码,凭借其极快的加密速度和适中的安全性,在Web应用和移动端API的反爬体系中日益常见。对于从事网络爬虫和JS逆向的开发者而言,掌握Rabbit等加密算法的识别、分析与复现能力,是应对数据加密传输挑战、实现高效数据采集的关键技术。本文将

weixin_33795743的博客 372

密码学:流加密法与块加密法

文章目录基础流加密法算法描述破解 基础 现代加密法与经典加密法最主要的不同之处在于其主要是基于计算机特征(二进制)而非语言结构(字母) 流加密法 算法描述 一个简单的流加密法需要一个“随机”的二进制位流作为密钥,将明文与此密钥流进行XOR逻辑运算,就可生成密文,密文再与密钥进行XOR逻辑运算,就可还原成明文。 主要的一个问题是密钥的设计,如果密钥流是重复的位序列,则其容易被记住但不安全,如果密钥流与明文一样长,则很难被记住。 线性反馈移位寄存器是比较常用的生成同步密钥流的硬件设备。 破解 插入攻击法:要求

无名J0kзr的博客 7634

C语言实现混沌加密算法:从Logistic映射到流密码实践

加密技术是信息安全的核心基础,其原理在于通过数学变换将可读信息转换为不可读的密文,确保数据在传输和存储过程中的机密性。传统加密算法如AES依赖于复杂的数学难题,而混沌加密则另辟蹊径,利用确定性混沌系统对初始条件极端敏感的“蝴蝶效应”来生成伪随机密钥流,实现高强度的数据混淆。这种技术将非线性动力学的理论应用于密码学,其产生的序列具有类噪声、非周期的特性,非常适合构建流密码。在工程实践中,C语言因其高效的执行效率和精细的内存控制能力,成为实现此类需要大量数值计算算法的理想选择。通过实现Logistic映射等经典

weixin_29323551的博客 300

【项目实战】流加密(Stream Ciphers)

流加密(Stream Ciphers),是对称加密算法的一种。流加密(Stream Ciphers),通过将数据以流的形式,逐位地进行加密和解密。

奶爸的编程之路,也就一周冷个三天 1120

对称加密算法总结 – 流密码与块密码

随机数 在对称加密的流密码算法和块密码算法中,都需要生成随机的密钥流,明文通过密钥加密得到密文,所以随机数生成算法显得十分重要,它决定加密密钥,密钥决定了加密算法的安全性。 随机数的类型分有三种,伪随机数生成器,密码学伪随机数生成器和真正的随机数生成器,前两者生成随机数通过软件实现,真正的随机数生成器通过硬件实现。 1、伪随机数生成器:软件实现,随机性。 2、密码学伪随机数生成器:软件实现...

大力海棠的博客 1万+

20、对称加密算法与流密码技术解析

本文深入解析了多种对称加密算法与流密码技术,包括Rijndael的密钥扩展算法、Serpent算法的结构与特性、RC4流密码的原理与问题,以及其他相关算法如Square、SHARK、SAFER、KHAZAD和NESSIE项目。内容涵盖了从密钥调度、S盒设计到流密码生成机制,为读者提供了全面的对称加密知识体系,并分析了不同算法的优缺点及适用场景。

swift5iosmith的博客 56

【网络安全02】对称加密和消息机密性(对称加密原理 、对称分组加密算法 、DES、随机数和伪随机数 、流密码和RC4、分组密码工作模式)

文章目录2.1 对称加密原理2.1.1 密码体制2.1.2 密码分析2.1.3 Feistel 密码结构2.2 对称分组加密算法2.2.1 数据加密标准 (DES)2.2.2 三重DES2.2.3 高级加密标准2.3 随机数和伪随机数2.3.1 随机数的应用2.3.2 真随机数发生器、伪随机数生成器和伪随机函数2.3.3 算法设计2.4 流密码和RC42.4.1 流密码结构2.4.2 RC4算法2.5 分组密码工作模式2.5.1 电子密码本模式 (ECB)2.5.2 密码分组链接模式 (CBC)2.5.3

weixin_43209177的博客 5838

20、对称加密算法与流密码的深入解析

本文深入解析了多种对称加密算法与流密码技术,涵盖Rijndael的密钥扩展机制、Serpent的高安全性设计、Square与SHARK等早期算法的发展脉络,以及RC4、FISH等流密码的工作原理与安全缺陷。文章还介绍了LFSR在密钥流生成中的应用,对比分析了各类算法的块大小、密钥长度、轮数及性能特点,并探讨了其在不同场景下的适用性与未来发展趋势,为信息安全领域的算法选择提供了全面参考。

moss5的博客 63

6、对称加密算法:流密码、RC4 及分组密码模式解析

本文深入解析了对称加密算法中的流密码与分组密码操作模式。重点介绍了RC4流密码的原理、结构及安全性,分析了其在SSL/TLS、WPA等协议中的应用。同时详细阐述了分组密码的四种主要操作模式——ECB、CBC、CFB和CTR的工作机制、优缺点及适用场景,并结合安全性、性能和实际应用需求给出了算法与模式的选择建议。文章旨在帮助读者理解不同加密技术的特点,合理选用合适的加密方案以保障数据安全。

i8j9k0l1的博客 61

基于流密码的认证加密算法MORUS

MORUS算法是由Hong jun Wu和Tao Huang设计的一个基于流密码的认证加密算法,目前已进入CAESAR竞赛的第二轮评选中.根据内部状态和密钥长度的不同,设计者推荐了3个MORUS子算法:MORUS-640-128、MORUS-1280-128和MORUS-1280-256.MORUS算法的设计采用了分组密码的思想,内部状态置于5个等长的寄存器中,依次对各内部状态分组进行运算.算法的内部状态更新函数仅使用异或(⊕)、逻辑与(&)和循环左移(<<<)三种运算,通过将明文和密钥流进行异或操作来实现

HuangJinLong2的博客 384

QTableView实现表格加载百万条数据

本文介绍用QTableView实现加载100万条数据显示到表格。 1.创建工程 用Qt Creator创建Qt Widgets Application项目,基类选择QWidget,创建好了,如图: 2.添加QTableView控件 在widget.ui中添加QTableView控件,和QPushButton,采用栅格布局,如图: 3.添加函数 头文件 QT_BEGIN_NAMESPACE namespace Ui { class Widget; } QT_END_NAMESPACE class Wid

丁爸的博客 8272

流密码算法c语言,区块链中的密码学系列之对称加密算法流密码(八)

1. 前言2. 流密码的基本原理流密码:也称序列密码 (Stream Cipher) ,是指明文消息按字符(如二元数字)逐位地、对应地加密的一类密码算法。 流密码的强度依赖于密钥序列,什么样的密钥序列是安全的?随机,周期性大,统计特性良好。随机数的性质: 伪随机序列:流密码的密钥序列应该是变长、随机、 不可预测的。关键技术:通信双方的精确同步。伪随机数生成器: 3. 密钥流生成器1.伪随机数生成...

weixin_31852627的博客 559

【Transformer 相关理论深入理解】注意力机制、自注意力机制、多头注意力机制、位置编码

transformer原理

qq_38253797的博客 2万+

Anaconda安装及配置+pytorch深度学习环境(2024复旦计算机工作站0705)

Pytorch是torch的python版本,是由Facebook开源的神经网络框架,专门针对 GPU 加速的深度神经网络(DNN)编程。Torch 是一个经典的对多维矩阵数据进行操作的张量(tensor )库,在机器学习和其他数学密集型应用有广泛应用。与Tensorflow的静态计算图不同,Pytorch的计算图是动态的,可以根据计算需要实时改变计算图。但由于Torch语言采用 Lua,导致在国内一直很小众,并逐渐被支持 Python 的 Tensorflow 抢走用户。

ZhiYilang的博客 2349

蓝牙加密算法演进——E0 流密码到 AES-CCM 的迁移路径与安全对比

强制 6 位以上 PIN,或用 SSP(Secure Simple Pairing)。:蓝牙 5.1+ 强制最小密钥长度 7 字节,Core Spec 增加规范层防护。:E0 和 AES-CCM 都受影响(密钥长度协商在加密算法之前)。

YsmileTlong的博客 229

【Unity】ABB CRB 15000 外部引导运动实战:从配置到实时控制

本文详细介绍了ABB CRB 15000协作机器人的外部引导运动(EGM)功能在Unity环境中的实战应用。从RobotStudio配置到Unity实时通信架构,再到EGM运动控制技巧和问题排查,全面解析如何实现机器人的高精度实时控制。通过实际案例展示EGM技术在精密装配等场景中的显著效果,帮助开发者快速掌握这一先进技术。

weixin_29057695的博客 445

对称加密算法

在密码学中,用于数据加密的算法主要有两种,分别是对称加密算法(Symmetric-key Algorithms)和非对称加密算法(Asymmetrical Cryptography)。 对称加密算法 一般是通过一个算法和一个密钥(secret key)对明文(plaintext)进行处理,得到的不规则字符就是密文(ciphertext)。 对称加密算法有两种类型,分别是块密码算法(block ciphers)和流密码算法(stream ciphers) 块密码算法 流密码算法 流密码算法 一次性密码本

hehui0316的博客 2365

别再怕非观测区了!手把手教你用移相法搞定PMSM单电阻FOC的电流重构难题

本文详细解析了永磁同步电机(PMSM)单电阻FOC系统中非观测区的电流重构难题,重点介绍了移相法的工程实践。通过STM32平台的具体实现和调试指南,帮助工程师有效解决相电流检测中的采样窗口不足问题,提升系统稳定性和性能。

weixin_27252001的博客 434

告别CMake依赖!在Visual Studio 2022中直接配置VTK 9.4开发环境(附完整项目示例)

本文详细介绍了如何在Visual Studio 2022中直接配置VTK 9.4开发环境,无需依赖CMake。通过图文教程和完整项目示例,帮助C++开发者快速集成VTK库,简化开发流程,提升工作效率。特别适合科学可视化任务的开发者。

weixin_26804345的博客 416

Rivest Cipher 4(RC4加密算法)

流密码(Stream Cipher)是一种对称加密算法,它将明文分割成一个个的位或字节,然后使用一个密钥流(keystream)与明文逐位或逐字节进行运算(通常是异或操作),生成密文。:是Blowfish的后继者,也是可变长度的密钥,支持128、192和256位密钥长度。:流密码的核心是生成一个与明文等长的密钥流,这个密钥流是随机的,并且每次加密时都不同。:流密码可以对数据流进行实时加密和解密,适合于需要即时处理的应用场景,如通信加密。:是DES的一个改进版本,使用三个不同的56位密钥对数据进行三次加密。

2403_87533599的博客 1038

中科蓝讯AB536X/AB892X芯片开发避坑指南:Downloader配置中那些容易忽略的细节

本文详细解析中科蓝讯AB536X/AB892X芯片开发中Downloader配置的关键细节,包括软开关机实现、触摸灵敏度调试、量产校频等常见问题。特别针对无PR口芯片的替代方案、触摸参数优化、校频流程等易忽略环节提供实用解决方案,帮助开发者规避量产风险,提升开发效率。

weixin_30687051的博客 476

区块链中的密码学系列之对称加密算法流密码(八)

1. 前言 2. 流密码的基本原理 流密码:也称序列密码 (Stream Cipher) ,是指明文消息按字符(如二元数字)逐位地、对应地加密的一类密码算法。 流密码的强度依赖于密钥序列,什么样的密钥序列是安全的? 随机,周期性大,统计特性良好。 随机数的性质: 伪随机序列: 流密码的密钥序列应该是变长、随机、 不可预测的。 关键技术:通信双方的精确同步。 伪随机数生成器: 3....

anju1449的博客 601

sas协议(SAS PL-3)之Zoning功能

1 Zoning overview SAS zoning is implemented by a set of zoning expander devices with zoning enabled that define a zoned portion of a service delivery subsystem (ZPSDS)服务子系统. The zoning expander devices control whether a phy is permitted to participate in

sinat_37817094的博客 1533

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

古典密码及现代密码分组密码与流密码总结

古典密码及现代密码分组密码与流密码总结 古典密码大部分加密方式是利用替换式密码或移项式密码,有时是二者的混合。一般情况下,一种古典密码体制包含一个字母表,以及一个操作规则或一种操作设备,到了现代基本不可信赖。 1.凯撒密码 是一种最简单广为人知的加密技术,是一种替换加密技术,明文中所有字母都在字母表上向后(或向前)按照一个固定数目进行偏移后被替换成密文。  加密公式:密文 = (明文 + 位移数) Mod 26    解密公式:明文 = (密文 - 位移数) Mod 26 破解方法:可以使用穷举法轻易破解。

Dr_Woah的博客 5085

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

上一篇: 跨站点请求伪造(CSRF)
下一篇: SSO单点登录
jj_jameholl
博客等级 码龄10年 5粉丝 29原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值