热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

SPN:代换置换网络简述

基本技术:代换和置换迭代密码方案安全需求:混乱性:密钥和明文密文间有复杂的依赖扩散:单个密钥或明文的变化影响到更多的密文迭代密码使用密钥扩展算法将输入的一个密钥扩展为多个子密钥(

  • 基本技术:代换和置换
  • 迭代密码方案
  • 安全需求:
    1. 混乱性:密钥和明文密文间有复杂的依赖
    2. 扩散:单个密钥或明文的变化影响到更多的密文



迭代密码


  • 使用密钥扩展算法将输入的一个密钥扩展为多个子密钥(Subkey)
  • 每轮使用一个子密钥进行加密
  • 上一轮的输入作为下一轮的输出,也就是自身迭代

代换置换网络


代换-置换网络是一系列被应用于分组密码中相关的数学运算,高级加密标准(英语:AES)、3-Way(英语:3-Way)、Kuznyechik(英语:Kuznyechik)、PRESENT(英语:PRESENT_(cipher))、SAFER(英语:SAFER)、SHARK、Square都有涉用。这种加密网络使用明文块和密钥块作为输入,并通过交错的若干“轮”(或“层”)代换操作和置换操作产生密文块。代换(Substitution)和置换(Permutation)分别被称作S盒(替换盒,英语:S-boxes)和P盒(排列盒,英语:P-boxes)。由于其实施于硬件的高效性,SPN的应用十分广泛。


在这里插入图片描述
该网络的加密过程由n轮组成.对于每一轮:


白化

就是和子密钥异或以消除明文的统计特征.
注意:由于S(a⊕b)=S(a)⊕S(b)S(a\oplus b)=S(a)\oplus S(b)S(ab)=S(a)S(b),在解密过程中反代换和反白化可以不分先后.


代换

在这里插入图片描述
将明文分为m组,每组长度为l,按照一定规则πs(z)\pi_s (z)πs(z)进行代换.代换规则称为S盒.


置换

代换后进行置换操作,存放置换规则的称为P盒.



S,P盒规则如下:
πs:{0,1}→{0,1}lπp:{1,2,...,lm}→{1,2,...,lm}\pi_s :\{ 0,1\}\rightarrow \{0,1\}^l\\ \pi_p:\{1,2,...,lm\}\rightarrow\{1,2,...,lm\}\\ πs:{0,1}{0,1}lπp:{1,2,...,lm}{1,2,...,lm}
也就是说,代换过程是分为m组,每组长度为lll分组改线;而置换过程则是整个明文l×ml\times ml×m进行置换.

对于NNN组长度为l×ml\times ml×m的密钥
K∈({0,1}l×m)NK\in (\{0,1\}^{l\times m})^N K({0,1}l×m)N
按如下顺序加密NNN轮:

XOR(u,k0);
Round = 0;
if(Round != N){w=S(x);u=P(w);x_nextroundXOR(u,k_Round);Round+1;}

被选作高级加密标准的Rijndael使用的就是8比特映射到8比特的S盒,密钥长度最小为128比特,最小轮数为10,分组长度同样为128比特。该大小的S盒和密钥长度保证了安全性。常用的变种包括使用不止一个S盒,或者在每一轮中增加或替换一个可逆的线性变换,这可在高级加密标准中看到。



推荐阅读
  • Windows操作系统提供了Encrypting File System (EFS)作为内置的数据加密工具,特别适用于对NTFS分区上的文件和文件夹进行加密处理。本文将详细介绍如何使用EFS加密文件夹,以及加密过程中的注意事项。 ... [详细]
  • H5技术实现经典游戏《贪吃蛇》
    本文将分享一个使用HTML5技术实现的经典小游戏——《贪吃蛇》。通过H5技术,我们将探讨如何构建这款游戏的两种主要玩法:积分闯关和无尽模式。 ... [详细]
  • Docker安全策略与管理
    本文探讨了Docker的安全挑战、核心安全特性及其管理策略,旨在帮助读者深入理解Docker安全机制,并提供实用的安全管理建议。 ... [详细]
  • Uniswap 与 MoonPay 合作,引入法币交易功能。本文探讨这一合作对用户进入加密货币领域的安全性及便利性的影响。 ... [详细]
  • 流处理中的计数挑战与解决方案
    本文探讨了在流处理中进行计数的各种技术和挑战,并基于作者在2016年圣何塞举行的Hadoop World大会上的演讲进行了深入分析。文章不仅介绍了传统批处理和Lambda架构的局限性,还详细探讨了流处理架构的优势及其在现代大数据应用中的重要作用。 ... [详细]
  • 吴石访谈:腾讯安全科恩实验室如何引领物联网安全研究
    腾讯安全科恩实验室曾两次成功破解特斯拉自动驾驶系统,并远程控制汽车,展示了其在汽车安全领域的强大实力。近日,该实验室负责人吴石接受了InfoQ的专访,详细介绍了团队未来的重点方向——物联网安全。 ... [详细]
  • OpenCV中的霍夫圆检测技术解析
    本文详细介绍了如何使用OpenCV库中的HoughCircles函数实现霍夫圆检测,并提供了具体的代码示例及参数解释。 ... [详细]
  • 本文介绍了如何利用OpenCV库进行图像的边缘检测,并通过Canny算法提取图像中的边缘。随后,文章详细说明了如何识别图像中的特定形状(如矩形),并应用四点变换技术对目标区域进行透视校正。 ... [详细]
  • 七大策略降低云上MySQL成本
    在全球经济放缓和通胀压力下,降低云环境中MySQL数据库的运行成本成为企业关注的重点。本文提供了一系列实用技巧,旨在帮助企业有效控制成本,同时保持高效运作。 ... [详细]
  • Maven + Spring + MyBatis + MySQL 环境搭建与实例解析
    本文详细介绍如何使用MySQL数据库进行环境搭建,包括创建数据库表并插入示例数据。随后,逐步指导如何配置Maven项目,整合Spring框架与MyBatis,实现高效的数据访问。 ... [详细]
  • 使用TabActivity实现Android顶部选项卡功能
    本文介绍如何通过继承TabActivity来创建Android应用中的顶部选项卡。通过简单的步骤,您可以轻松地添加多个选项卡,并实现基本的界面切换功能。 ... [详细]
  • 本文介绍了SIP(Session Initiation Protocol,会话发起协议)的基本概念、功能、消息格式及其实现机制。SIP是一种在IP网络上用于建立、管理和终止多媒体通信会话的应用层协议。 ... [详细]
  • 在OpenCV 3.1.0中实现SIFT与SURF特征检测
    本文介绍如何在OpenCV 3.1.0版本中通过Python 2.7环境使用SIFT和SURF算法进行图像特征点检测。由于这些高级功能在OpenCV 3.0.0及更高版本中被移至额外的contrib模块,因此需要特别处理才能正常使用。 ... [详细]
  • 如何在PHP中安装Xdebug扩展
    本文介绍了如何从PECL下载并编译安装Xdebug扩展,以及如何配置PHP和PHPStorm以启用调试功能。 ... [详细]
  • 深入理解云计算与大数据技术
    本文详细探讨了云计算与大数据技术的关键知识点,包括大数据处理平台、社会网络大数据、城市大数据、工业大数据、教育大数据、数据开放与共享的应用,以及搜索引擎与Web挖掘、推荐技术的研究及应用。文章还涵盖了云计算的基础概念、特点和服务类型分类。 ... [详细]
author-avatar
hytyj_989
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有