现代密码学导论-20-流密码
创始人
2024-02-20 17:42:47
0

目录

3.6 实际操作和加密方式

3.6.1 流密码

CONSTRUCTION 3.30 使用伪随机函数构造流密码

3.6.2 流密码的同步模式

CONSTRUCTION 3.31 流密码的异步模式


3.6 实际操作和加密方式

现代密码学导论-14-基于伪随机发生器的EAV安全_南鸢北折的博客-CSDN博客

CONSTRUCTION 3.17 一种基于伪随机发生器的私钥加密方案

现代密码学导论-19-基于伪随机函数的CPA安全_南鸢北折的博客-CSDN博客

CONSTRUCTION 3.28 构造基于伪随机函数的CPA安全的加密方案

以上两种方案有一些缺点,使得它们不适合在现实中应用

其中,方案3.17只是EAV安全的,不能抵御选择明文攻击。此外,这两种方案都只定义用于对固定长度的消息进行加密

以下这里所讨论的操作模式即在使用流密码或者块密码加密长的明文时所采用的加密流程


3.6.1 流密码

现代密码学导论-12-伪随机发生器_南鸢北折的博客-CSDN博客

上文中的 DEFINITION 3.14 伪随机发生器的定义,我们从中不难看出

伪随机发生器G是相当不灵活的,因为它的输出长度是固定的。具体来讲,我们假设G的膨胀系数是l,对于一个长度为l’>l的消息,我们就不能简单地使用单个n位长度的密钥对该消息进行加密。对于一个长度为l’

形式上,流密码是一对确定性算法(Init,Next),其中:

  1. Init将一个种子s和一个可选的初始化向量IV作为输入,并输出一些初始状态st。
  2. Next将当前状态st作为输入,并输出一个比特y,以及更新状态为st

(当然,在现实中,Next可能输出一个字节甚至更多的随机位,而不是一次输出单个位。为了简单起见,我们假设它每次被调用时只输出一位)

从某个初始状态st0开始,我们可以通过多次重复调用Next来生成任何所需的位数。

我们定义了一个GetBits算法,以初始状态st0和一个期望长度1^l作为输入,然后:

对于i,从1一直到l,计算

返回长度为l的比特串和最终状态st_l。其中返回的比特串为

 

GetBits算法的输出有两个,第一个是长度为l的比特串,第二个是最终状态

我们规定GetBits_1表示运行GetBits并只返回其第一个输出,即长度为l的比特串的输出


CONSTRUCTION 3.30 使用伪随机函数构造流密码

设F是一个伪随机函数。定义流密码(Init,Next),其中Init接受一个3n/4位的初始化向量,Next在每个调用中输出n位:

Init:输入为s∈{0,1}^nIV∈{0,1}^(3n/4),输出st =(s, IV, 0)

Next: 输入为st = (s, IV, i),输出y := Fs(IV‖),并更新状态为st = (s, IV, i+1)


3.6.2 流密码的同步模式

流密码的操作模式有两种:同步模式异步模式

同步模式。假设发送方S接收方R已经共享了密钥k,会话过程如下:

双方都调用Init (k)来获得相同的初始状态st0

st_S为S的当前状态,如果S想加密一个消息m,S就计算

S将密文c := m⊕y发送给接收方R,并更新自身状态为st_S

st_R为R的当前状态,当R从发送方接收到一个密文c时,计算

得到消息m := c⊕y,并将自身状态更新为st_R

请注意,对于同步模式,流密码不需要使用初始化向量IV。没有密文扩展,因为从发送方到接收方的总通信长度完全等于被加密的消息的总长度。


CONSTRUCTION 3.31 流密码的异步模式

设(Init,Next)为一个接受n位IV的流密码,为任意长度的消息定义一个私钥加密方案,如下所述:

Gen:输入为1^n。随机均匀选择一个k∈{0,1}^n并输出

Enc:输入为k∈{0,1}^n和一个消息m∈{0,1}∗,随机均匀选择一个初始化向量IV∈{0, 1}^n,计算并输出密文

Dec:输入为k∈{0,1}^n和密文,得到消息m

 

相关内容

热门资讯

监控摄像头接入GB28181平... 流程简介将监控摄像头的视频在网站和APP中直播,要解决的几个问题是:1&...
Windows10添加群晖磁盘... 在使用群晖NAS时,我们需要通过本地映射的方式把NAS映射成本地的一块磁盘使用。 通过...
protocol buffer... 目录 目录 什么是protocol buffer 1.protobuf 1.1安装  1.2使用...
Fluent中创建监测点 1 概述某些仿真问题,需要创建监测点,用于获取空间定点的数据࿰...
educoder数据结构与算法...                                                   ...
MySQL下载和安装(Wind... 前言:刚换了一台电脑,里面所有东西都需要重新配置,习惯了所...
MFC文件操作  MFC提供了一个文件操作的基类CFile,这个类提供了一个没有缓存的二进制格式的磁盘...
在Word、WPS中插入AxM... 引言 我最近需要写一些文章,在排版时发现AxMath插入的公式竟然会导致行间距异常&#...
有效的括号 一、题目 给定一个只包括 '(',')','{','}'...
【Ctfer训练计划】——(三... 作者名:Demo不是emo  主页面链接:主页传送门 创作初心ÿ...