![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
密码学
朝歌1122
计算机科学与技术
展开
-
DES原理学习以及C语言实现(五)
五、十六轮循环以及IP逆置换循环十六次上一篇中的步骤。IP逆置换表如下(其置换方法与IP置换一样):逆置换的数据就是最终的加密密文。C语言代码:(完整的,未整理)#include<stdio.h>#include<stdlib.h>//要使用malloc是要包含此头文件#include <memory.h>//要使用memset是要...原创 2020-03-16 20:09:29 · 381 阅读 · 0 评论 -
DES原理学习以及C语言实现(四)
四 、密码函数F密码函数F的输入接收两个输入,32位的用户输入的需要加密的数据和48位对应的子密钥。F函数过程如下:1、先将数据的右半部分Ri通过扩展置换E从32位扩展道48位。2、扩展后48位与48位的密钥进行异或运算。3、异或运算后在进行S盒置换,将48位的数据变为32位的数据。4、经过(3)后的32位数据进行一个P盒置换。5、再将这个32位的数据与左边的数据进行异或运...原创 2020-03-16 19:16:21 · 597 阅读 · 0 评论 -
DES原理学习以及C语言实现(三)
三、子密钥Ki及获取子密钥的获取主要通过置换和移位运算得到。DES的密钥长度时64位,由用户输入。但参与加密的只有56位。用户输入的64位按照8*8矩阵排列,把其中每行的第8个用于奇偶检验。经过一系列的置换和移位得到K1~K16共16个子密钥。每个密钥长度是48位(压缩过后的)。其每个子密钥实现过程如下:1、首先将输入的64位密钥按照8*8排列,将每行第8个去掉。2、然后对剩下...原创 2020-03-16 12:17:48 · 497 阅读 · 0 评论 -
DES原理学习以及C语言实现(二)
二、初始置换函数IP以下就是置换表。是一个8*8矩阵。其中数字代表第一个,从一排从左向右数。比如58就是第58个。它的意思就是将用户的输入矩阵中的第58个放在第一个(与第一个置换位置),第1个则放在第58位。下表的第58个数字就是1。58,50,42,34,26,18,10,2,60,52,44,36,28,20,12,4,62,54,46,38,30,22,14,6,64,5...原创 2020-03-15 23:14:44 · 435 阅读 · 0 评论 -
DES原理学习以及C语言实现(一)
DES算法是一种最通用的对称密钥算法,属于分组密码算法。主要用于民用敏感信息加密,该算法是IBM公司在1975年发布。在1977年7月15日得到美国国家标准局认可。一、DES算法简单描述。DES的输入是8个字节64位明文和64位密钥,输出是64位密文。明文和密钥都是用户输入。64位明文 ======> 64位密文64位密钥其加密有四个步骤完成。...原创 2020-03-15 19:58:16 · 732 阅读 · 0 评论 -
椭圆曲线加密算法
ECC 椭圆曲线加解密算法一、为什么叫椭圆曲线首先回忆一下直线方程式 y=ax+b ,在坐标系中表示一条直线,是一次方程,圆锥曲线可以用二次方程表示。椭圆曲线是用三次方程表示,如下:其中,a 和 b 的取值不同,椭圆曲线的形状会有所改变,经典的形状如下图所示:这时有读者会有疑问了,“上图中不是一个椭...转载 2020-03-11 12:28:16 · 2804 阅读 · 0 评论 -
什么是Base64算法
A:为什么在进行Http传输的时候,需要把Byte数组进行Base64编码呢?B:这很简单呀,因为Http协议是文本协议,不同于二进制协议(如Thrift)那样直接进行二进制传输。A:那么,直接把Byte数组转换成String不就行了吗?类似newString(bytes)这样。为什么非要用Base64呢?B:首先,Base64是一种编码算法。为什么叫左Base64呢?因为这种算法只支...转载 2019-05-12 20:05:12 · 1983 阅读 · 0 评论 -
区块链-Base58Check编码
目录:https://blog.csdn.net/qq_40452317/article/details/89646633A=RIPEMD160(SHA256(K)),其中K是公钥,A是地址。平时所见的比特币地址就是A经过Base58Check编码过后得来的。Base编码是一种二进制转可视的字符串的算法,主要是用来把大的整数转换成字符串的形式,计算机系统中传输的数据是二进制的...原创 2019-05-12 20:29:19 · 2520 阅读 · 0 评论