吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 4559|回复: 33
上一主题 下一主题
收起左侧

[Android 分享] DES加密算法

  [复制链接]
跳转到指定楼层
楼主
宸道移动安全 发表于 2020-11-16 17:42 回帖奖励
对称加密算法


  1)定义
  在对称加密算法中,数据发信方将明文(原始数据)和加密密钥一起经过特殊加密算法处理后,使其变成复杂的加密密文发送出去。收信方收到密文后,若想解读原文,则需要使用加密用过的密钥及相同算法的逆算法对密文进行解密,才能使其恢复成可读明文。在对称加密算法中,使用的密钥只有一个,发收信双方都使用这个密钥对数据进行加密和解密,这就要求解密方事先必须知道加密密钥。

2)优缺点
优点:算法公开、计算量小、加密速度快、加密效率高。
缺点:
(1)交易双方都使用同样钥匙,安全性得不到保证。
(2)每对用户每次使用对称加密算法时,都需要使用其他人不知道的惟一钥匙,这会使得发收信双方所拥有的钥匙数量呈几何级数增长,密钥管理成为用户的负担。对称加密算法在分布式网络系统上使用较为困难,主要是因为密钥管理困难,使用成本较高。

3)常用对称加密算法
基于“对称密钥”的加密算法主要有DES、3DES(TripleDES)、AES、RC2、RC4、RC5和Blowfish等。

DES算法


  1)DES 算法介绍
   DES算法全称为Data Encryption Standard,即数据加密算法,它是IBM公司于1975年研究成功并公开发表的。DES算法的入口参数有三个:Key、Data、Mode。其中Key为8个字节共64位,是DES算法的工作密钥;Data也为8个字节64位,是要被加密或被解密的数据;Mode为DES的工作方式,有两种:加密或解密。

2)算法原理
DES算法把64位的明文输入块变为64位的密文输出块,它所使用的密钥也是64位,其算法主要分为两步:
(1)初始置换
其功能是把输入的64位数据块按位重新组合,并把输出分为L0、R0两部分,每部分各长32位,其置换规则为将输入的第58位换到第一位,第50位换到第2位……依此类推,最后一位是原来的第7位。L0、R0则是换位输出后的两部分,L0是输出的左32位,R0是右32位,例:设置换前的输入值为D1D2D3……D64,则经过初始置换后的结果为:L0=D58D50……D8;R0=D57D49……D7。
(2)逆置换
经过16次迭代运算后,得到L16、R16,将此作为输入,进行逆置换,逆置换正好是初始置换的逆运算,由此即得到密文输出。

分组模式


1)为什么需要分组模式?
明文的长度不固定,而分组密码只能处理特定长度的一块数据,这就需要对分组密码的算法进行迭代,以便将一段很长的明文全部加密,而迭代的方法就是分组的模式。
常见的分组模式:
EBC模式:Electronic Code Book, 电子密码本模式
特点: 简单, 效率高, 密文有规律, 容易被破解

CBC模式:Cipher Block Chaining, 密码块链模式(推荐使用)
特点: 密文没有规律, 经常使用的加密方式

CFB模式:Cipher FeedBack, 密文反馈模式
特点: 密文没有规律, 明文分组是和一个数据流进行的按位异或操作, 最终生成了密文

OFB模式:Output-Feedback, 输出反馈模式
特点: 密文没有规律, 明文分组是和一个数据流进的按位异或操作, 最终生成了密文

CTR模式:CounTeR, 计数器模式(重点,推荐使用)
特点: 密文没有规律, 明文分组是和一个数据流进行的按位异或操作, 最终生成了密文

常用的填充模式


Java进行DES、3DES和AES三种对称加密算法时,常采用的是NoPadding(不填充)、Zeros填充(0填充)、PKCS5Padding填充。

Eclipse中分析DES算法代码


1)在主类中分析DES加密的地方
在主类Mainactivity里面调用了四种自定义的数据加密算法:
DESCBC、DESedeCBC、DES、DESede
   



2)分别分析DESCBC、DESedeCBC、DES、DESede类
getInstance,通过该方法获取相应的算法
generateSecret:讲加密密钥生成秘密密钥;
generateKey:生成密钥
DESedeKeySpec(byte[] key):创建一个 DESedeKeySpec 对象,使用 key 中的前 24 个字节作内为 DES-EDE 密钥的密钥内容。
IvParameterSpec:获取偏转向量
DECRYPT_MODE:表示加密模式

小结
1、介绍DES相关的算法以及实现原理。
2、在eclipse中分析DES算法代码。

免费评分

参与人数 7吾爱币 +6 热心值 +7 收起 理由
鱼罐头 + 1 + 1 谢谢@Thanks!
熙晓川 + 1 + 1 我很赞同!
PJwuaipojie + 1 热心回复!
AsUWL + 1 + 1 已经处理,感谢您对吾爱破解论坛的支持!
Misaka2020 + 1 + 1 我很赞同!
manstream + 1 + 1 好文分享
MJ_001 + 1 + 1 谢谢@Thanks!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

推荐
tsecond 发表于 2020-11-18 04:03
前几天刚刚把AES CBC (Key 和 IV)和RSA的算法过了一遍  AES是C语言写的 RSA是汇编的。有时间了我也写出来看看。
沙发
zgrm1000 发表于 2020-11-17 11:36
3#
Ylvan 发表于 2020-11-17 12:47
4#
shanmm 发表于 2020-11-17 12:50
不错,来学习一些
5#
chaohen 发表于 2020-11-17 13:58
学到了  谢谢分享
6#
ukyozhou 发表于 2020-11-17 15:03
感谢分享。
头像被屏蔽
7#
lixia2018 发表于 2020-11-17 15:17
提示: 作者被禁止或删除 内容自动屏蔽
8#
JuncoJet 发表于 2020-11-17 15:36
RC4、TEA、XOR路过,只求最快
9#
JHM99705 发表于 2020-11-17 16:39
正好我们开了网络密码
10#
eaglejf 发表于 2020-11-17 17:09
不明觉厉!
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 15:56

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表