文章目录

  • 1、分组密码的概念
  • 2、密码体制
    • 2.1、密码体制的概念
    • 2.2、密码体制的三要素
    • 2.3、密码体制的组成
    • 2.4、密码体制的基本模式
  • 3、Feistel 密码
    • 3.1、Feistel密码的核心
    • 3.2、Feistel密码构造过程
    • 3.3、Feistel密码解密过程
    • 3.4、影响Feistel 结构的因素
    • 3.5、Feistel结构的特点

1、分组密码的概念

分组密码(block cipher) 的数学模型是:将明文消息编码表示后的数字(简称明文数字)序列,划分成长度为n的组(可看成长度为n的矢量),每组分别在密钥的控制下变换成等长的输出数字(简称密文数字)序列

2、密码体制

2.1、密码体制的概念

密码体制也叫密码系统,是指能完整地解决信息安全中的机密性、数据完整性、认证、身份识别、可控性及不可抵赖性等问题中的一个或几个的一个系统。对一个密码体制的正确描述,需要用数学方法清楚地描述其中的各种对象、参数、解决问题所使用的算法等

2.2、密码体制的三要素

  • 算法
  • 密钥个数
  • 加密方式( 分组加密 流式加密)

2.3、密码体制的组成

通常情况下,一个密码体制由五元组{M,C,K,E,D}五个部分

  • 明文信息空间Message:它是全体明文M的集合
  • 密文信息空间Ciphertext:它是全体密文C的集合
  • 密钥空间Key:它是全体密钥K的集合。其中每一个密钥K均由加密密钥Ke和解密密钥Kd组成,即K=(Ke,Kd)
  • 加密算法Encryption Algorithm:它是由M到C的加密变换,即 M→C; 也就是 C = ( M,Ke)
  • 解密算法Decryption Algorithm:它是由C到M的加密变换,即 C→M; 也就是 M = ( C,Kd)

2.4、密码体制的基本模式

通常的密码体制采用移位法、代替法和代数方法来进行加密和解密的变换
可以采用一种或几种方法结合的方式作为数据变换的基本模式
下面举例说明:
移位法也叫置换法。移位法把明文中的字符重新排列,字符本身不变但其位置改变了。

例如最简单的例子:把文中的字母和字符倒过来写
或将密文以固定长度来发送
5791ECNI SYLDIPAT DEVLOBES AHYTIRUC ESATAD**

3、Feistel 密码

Feistel 密码结构,在密码学研究中,Feistel 密码结构是用于分组密码中的一种对称结构

3.1、Feistel密码的核心

Feistel密码的核心是代替和置换

  • 代换:每个明文元素或元素被唯一地替换为相应的密文元素或元素组
  • 置换:明文元素的序列被替换为该序列的一个置换。也就是说,序列里没有元素被添加进去,删除或替换,但序列里的元素出现的顺序改变了

3.2、Feistel密码构造过程

令F 为轮函数;令K1,K2,……,Kn 分别为第1,2,……,n 轮的子密钥。那么基本构造过程如下:
(1)将明文信息均分为两块:(L0,R0);
(2)在每一轮中,进行如下运算(i 为当前轮数):

Li+1 = Ri;
Ri+1 = Li ⊕F (Ri,Ki)。(其中⊕为异或操作)

所得的结果即为:(Ri+1,Li+1)

3.3、Feistel密码解密过程

对于密文(Rn+1,Ln+1),我们将i 由n 向0 进行,即, i = n,n-1,……,0。然后对密文进行加密的逆向操作,如下:

(1)Ri = Li+1;
(2)Li = Ri+1⊕F (Li+1,Ki)。(其中⊕为异或操作)

所得结果为(L0,R0),即原来的明文信息。

Feistel密码加解密过程

3.4、影响Feistel 结构的因素

(1)块的大小:大的块会提高加密的安全性,但是会降低加密、解密的速度。截止至2013年,比较流行的这种方案是64 bit。而128 bit 的使用也比较广泛。
(2)密钥的大小:同上。而 128 bit 正逐渐取代64 bit ,成为主流。
(3)循环次数(轮次数):每多进行一轮循环,安全性就会有所提高。现阶段比较流行的是16轮。
(4)子密钥的生成算法:生成算法越复杂,则会使得密码被破译的难度增强,即,信息会越安全。
(5)轮函数的复杂度:轮函数越复杂,则安全性越高。

3.5、Feistel结构的特点

1、加解密算法相同;
2、16轮加密(16轮解密);
3、子密钥产生越复杂,密码分析就越困难;
4、轮函数越复杂,抗攻击能力就越强;
5、密钥长度越长,安全性增强;
6、分组越长,安全性越高。

密码体制Feistel 密码的相关知识相关推荐

  1. shell的相关知识(变量、脚本定义)

    一.shell的相关知识: 1.对于shell编程语言大体分为:机器语言.汇编语言.高级语言 2.shell变量类型:事先确定数据的存储格式和长度 shell变量分为:字符型.数值型 数值型又分为:整 ...

  2. 详细图文演示——排除启动类故障以及Linux操作系统引导、运行级别和优化启动等相关知识

    详细图文演示--排除启动类故障以及Linux操作系统引导.运行级别和优化启动等相关知识 一.Linux操作系统引导过程 1.开机自检 2.MBR 引导 3.GRUB菜单 4.加载Linux内核 5.i ...

  3. 操作系统:SFTP相关知识介绍

    今天给大家分享SFTP相关知识,希望对大家能有所帮助! 1.SFTP是什么? SFTP(SSH File Transfer Protocol)是一种基于SSH(安全外壳)的安全的文件传输协议,使用SF ...

  4. [Redis6]Redis相关知识介绍

    Redis介绍相关知识 端口6379 6379 是 "MERZ " 九宫格输入法对应的数字.Alessia Merz 是一位意大利舞女.女演员. Redis 作者 Antirez ...

  5. SQL注入 基础概述及相关知识

    SQL注入 基础概述及相关知识 SQL注入概述 SQL注入攻击简介 SQL注入攻击原理 SQL注入攻击来源 SQL注入攻击主要特点 SQL注入攻击危害 SQL注入攻击 SQL注入攻击基础概述 SQL注 ...

  6. 4G模块加网流程_4G拨号上网相关知识

    随着物联网技术的广泛应用,移动端联网变得越来越普遍.这里我们一起分享4G网络相关知识,以高通平台 data call 管理库dsi_netctrl,移远EC20通信模组进行讲解. 1.首先介绍一下相关 ...

  7. 国家助学贷款还款方式、还款流程等相关知识

    当我们的借款学生成功申请国家助学贷款之后,就会面临还款的问题.那么在国家助学贷款的还款方面,我们的借款学生需要注意些什么呢?今天小编就系统的为大家讲讲国家助学贷款还款的相关知识,如国家助学贷款的还款方 ...

  8. Redis数据库相关知识总结

    Redis数据库相关知识总结 1.NoSQL概述 1.1 为什么用NoSQL 1.单机MySQL的美好年代 在90年代,一个网站的访问量一般不大,用单个数据库完全可以轻松应付! 在那个时候,更多的都是 ...

  9. alin的学习之路:加密相关知识(加密和解密,常见加密算法,消息验证码HMAC,数字签名)

    alin的学习之路:加密相关知识(加密和解密,常见加密算法,消息验证码HMAC,数字签名) 1. 加密和解密 1.1 加密的三要素 原始数据 加密操作: 明文 -> 密文 解密操作: 密文 -& ...

最新文章

  1. 接口测试——postman
  2. 在c 语言中stdio,C语言中,什么时候用到stdio.h之外的解释文件
  3. python函数图像平移_[Python图像处理]六.图像缩放,图像旋转,图像翻转与图像平移...
  4. 与php有区别_php://output和php://stdout的区别
  5. zencart 如何修改在线人数和订单编号
  6. Async/Await异步
  7. 谈谈var变量提升以及var,let,const的区别
  8. android之sqlite操作
  9. 把计算机怎么连接手机的网络助手在哪里,怎么将手机网络通过USB共享给电脑
  10. 【VBA】Str与CStr辨析
  11. 决策树的特性及优缺点
  12. 解决springboot的pom.xml文件第一行报错问题
  13. 谷歌浏览器好用的复制粘贴插件_chrome浏览器好用的插件
  14. origin常用函数
  15. 机器学习—模型估计与优化—线性模型—最小二乘估计
  16. 重定向和转发的概念及区别
  17. (译)对利物浦来说杰拉德仍适用吗? is Steven Gerrard good for Liverpool?
  18. 面试轻松讲清楚 Java 面向对象的问题与知识(类与对象,封装,继承,多态,接口,内部类...)
  19. cobbler批量装机系统centos 6.4下安装配置
  20. onedrive电脑手机不同步_Win10 OneDrive 无法同步文件怎么办?一个命令搞定

热门文章

  1. c# npoi 2.5版本设置字体加粗_巨巨巨巨推荐:SCI翻译神器,大版本更新来了
  2. AI:Algorithmia《2021 enterprise trends in machine learning 2021年机器学习的企业趋势》翻译与解读
  3. 成功解决ERROR: Could not find a version that satisfies the requirement xgboost (from versions: none) ERR
  4. 成功解决PermissionError: [WinError 5] 拒绝访问 \lib\\site-packages\\h5py\\_errors.cp38-win_amd64.pyd‘
  5. 成功解决ValueError: setting an array element with a sequence.
  6. HighNewTech—AI界消息:2019年3月,贾扬清(Caffe框架作者)被曝从Facebook离职,入职Alibaba硅谷研究院
  7. Py之cython:python库之cython的简介、安装、使用方法之详细攻略
  8. Matlab之DNN:基于Matlab利用神经网络模型(epochs=10000000)预测勒布朗詹姆斯的2018年总决赛(骑士VS勇士)第一场得分、篮板、助攻
  9. oracle用户管理的完全恢复5:控制文件损坏(控制文件前后内容未改变)
  10. 翻译:如何用Cocos2d来开发简单的IPhone游戏教程