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

1. 前言

2. 流密码的基本原理

流密码:也称序列密码 (Stream Cipher) ,是指明文消息按字符(如二元数字)逐位地、对应地加密的一类密码算法。

006tKfTcly1g1il51nd1aj31fe08q421.jpg

006tKfTcly1g1il7wrl47j30os06ajt5.jpg

流密码的强度依赖于密钥序列,什么样的密钥序列是安全的?

随机,周期性大,统计特性良好。

随机数的性质:

006tKfTcly1g1ilcerz4sj30ra0n0dp8.jpg

伪随机序列:

流密码的密钥序列应该是变长、随机、 不可预测的。

关键技术:通信双方的精确同步。

伪随机数生成器:

006tKfTcly1g1ilesge66j30ow0e6wib.jpg

3. 密钥流生成器

1.伪随机数生成器(prng):

线性同余法伪随机数发生器; 线性反馈移位寄存器。

2.线性同余法

要生成的伪随机数列R1,R2,R3....

R1=(A×种子+C) mod M

A、C、M是常量, A和C小于M

R2=(A×R1+C) mod M

......... Rn+1=(A×Rn+C) mod M

3. 线性同余法伪随机数发生器

006tKfTcly1g1ilmxjfi5j30ti0dwju7.jpg

例:A=3,C=0,M=7,种子为6

伪随机数:451326...451326

R1=4,R2=5,R3=1,R4=3,周期6 谨慎选择A、C、M的值

4. 线性反馈移位寄存器

易于硬件实现,速度快,典型应用:A5,GSM语音加密标准。

006tKfTcly1g1ilpa97enj30r607o76r.jpg

006tKfTcly1g1ilpuk888j30v2092wik.jpg

反馈函数f(a1,a2,...an)为n元布尔函数,自变量和因变量只能取0,1值

f(a1,a2,...an)=cna1⊕ cn-1a2⊕ ...⊕ c1an

c1,c2,...cn为反馈系数,取值0、1,表示开关断开和闭合

若当前状态Si=(ai,ai+1,...ai+n-1)

则:an+i=cnai⊕ cn-1ai+1⊕ ...⊕ c1an+i-1,i=1,2,...,移位寄存器的输入 Si+1=(ai+1,ai+2,...ai+n)

流密码优点:

实现简单;

加解密速度快;

没有或者有限的错误传播;

典型的应用领域包括无线通信、外交通信。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值