9、密码学基础:确定性与概率加密、哈希函数及轻量级算法

密码学基础:确定性与概率加密、哈希函数及轻量级算法

1. 确定性加密算法的概率化处理

在加密算法领域,概率性公钥加密算法是可以设计出来的,但概率性对称密钥加密算法却很难设计。这是因为对称密钥加密算法通常要考虑硬件实现,而随机逻辑在对称密钥算法设计中并未得到充分应用。不过,我们可以让确定性加密算法表现出概率性行为,而且不需要改变加密算法本身,只需改变使用算法的方式。

假设 $E$ 是一个确定性的对称密钥加密算法,其块大小为 $n$。对于消息 $m$,为了使密文具有概率性行为,可将消息分割成更小的块,比如 $k$ 位($k < n$)。具体的加密和解密过程如下:
- 加密过程
1. 生成一个 $n - k$ 位的随机数 $r$。
2. 计算 $c = E(k, m∥r)$,这里的 $m∥r$ 是 $m$ 和 $r$ 的字符串拼接。
3. 将 $c$ 作为 $m$ 的密文输出。
- 解密过程
1. 使用解密算法 $D$ 对 $c$ 进行解密,得到 $m′ = D(k, c)$。
2. 取 $m′$ 的最高 $k$ 位作为 $m$,这就是解密后的消息。

通过上述加密过程生成的密文具有概率性,即相同的明文消息 $m$ 在不同时间加密会得到不同的密文,这是因为引入了随机数 $r$。但密文的随机性是有限的,在相同加密密钥下,相同明文最多可能有 $2^{n - k}$ 种不同的密文。如果 $n - k$ 较大,那么 $k$ 相对较小,这会降低加密效率,额外的处理开销也会进一步降低算法效率,这是为了实现随机性行为所做出的牺牲。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值