ITPub博客

首页 > IT职业 > IT职场 > RSA加密解密算法

RSA加密解密算法

IT职场 作者:hzh98 时间:2021-09-09 09:48:41 0 删除 编辑
加密与解密技术核心思想
	认知
		密码锁,古墓
		天王盖地虎,。。。。。
		美国的摩尔斯在1844年发明的,故也被叫做摩尔斯电码。
		银行,手机,游戏
	安全哈希算法(Secure Hash Algorithm)
SHA-1
		将消息摘要转换成位字符串
			我们以“abc”字符串来说明问题,因为'a'=97, 'b'=98, 'c'=99,所以将其转换为位串后为:
			01100001 01100010 01100011
		对转换后的位字符串进行补位操作
			Sha-1算法标准规定,必须对消息摘要进行补位操作,即将输入的数据进行填充,使得数据长度对512求余的结果为448
,填充比特位的最高位补一个1,其余的位补0,如果在补位之前已经满足对512取模余数为448,也要进行补位,在其后补一位1即可。
总之,补位是至少补一位,最多补512位,我们依然以“abc”为例,其补位过程如下:
			初始的信息摘要:01100001 01100010 01100011
			第一步补位:    01100001 01100010 01100011 1
			..... ......
			补位最后一位:  01100001 01100010 01100011 10.......0(后面补了423个0)
			而后我们将补位操作后的信息摘要转换为十六进制,如下所示:
			61626380 00000000 00000000 00000000
			00000000 00000000 00000000 00000000
			00000000 00000000 00000000 00000000
			00000000 00000000
		附加长度值
			在信息摘要后面附加64bit的信息,用来表示原始信息摘要的长度,在这步操作之后,信息报文便是512bit的倍数。通常来说用一个64位的数据表示原始消息的长度,如果消息长度不大于2^64,那么前32bit就为0,在进行附加长度值操作后,其“abc”数据报文即变成如下形式:
			61626380 00000000 00000000 00000000
			00000000 00000000 00000000 00000000
			00000000 00000000 00000000 00000000
			00000000 00000000 00000000 00000018
			因为“abc”占3个字节,即24位 ,换算为十六进制即为0x18。
		初始化缓存
			一个160位MD缓冲区用以保存中间和最终散列函数的结果。它可以表示为5个32位的寄存器(H0,H1,H2,H3,H4)。初始化为:
			H0 = 0x67452301
			H1 = 0xEFCDAB89
			H2 = 0x98BADCFE
			H3 = 0x10325476
			H4 = 0xC3D2E1F0
			大端存储模式:高位数据放在低地址,低位数据放在高地址
		计算消息摘要
			S函数
				循环左移操作符Sn(x),x是一个字,也就是32bit大小的变量,n是一个整数且0>32-n)
			常量字k(0)、k(1)、...k(79)
				Kt = 0x5A827999  (0 

原文链接:http://www.apkbus.com/blog-340477-76755.html

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/4459/viewspace-2812855/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2019-08-19

  • 博文量
    78
  • 访问量
    587