密码学基本概念
创始人
2024-05-19 12:49:49
0

密码学简介

密码是经过加密过后的口令,是指用特定的变换对数据信息进行加密保护或者安全身份认证的物质和技术,密码学是对安全通信技术的研究,要能够有效的防范潜在攻击,也就是对信息加密解密的过程。

密码基本性质

在这里插入图片描述

密码学的发展

古典密码到近代密码再到我们现在现在使用的公钥密码,密码学经历了四个阶段,每个阶段都以新技术的出现做为分界点。
在这里插入图片描述

加密与解密

在这里插入图片描述
加密:由明文转换为密文的过程。
解密:由密文恢复出明文的过程。
在这里插入图片描述

这里以古典密码为例:受算法保密性限制,如著名的凯撒密码就是古典密码一种,通过密码的位移进行加密,但是一旦公开算法,这种密码很容易被人破解。

凯撒密码:加密admin
from random import randintimport string
#凯撒加密
#加密
def kaisa(s, k):  # 定义函数 接受一个字符串s 和 一个偏移量klower = string.ascii_lowercase  # 小写字母upper = string.ascii_uppercase  # 大写字母before = string.ascii_letters  # 无偏移的字母顺序 小写+大写after = lower[k:] + lower[:k] + upper[k:] + upper[:k]  # 偏移后的字母顺序 还是小写+大写# 分别把小写字母和大写字母偏移后再加到一起table = ''.maketrans(before, after)  # 创建映射表return s.translate(table)  # 对s进行偏移 即加密s = input('请输入一个字符串:')k = randint(0,26) #从0-25中挑选随机一个数字当做偏移量
print(kaisa(s, k))

在这里插入图片描述
解密脚本

LETTERS="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"
LETTERS1="ABCDEFGHIJKLMNOPQRSTUVWXYZ"
LETTERS2="abcdefghijklmnopqrstuvwxyz"text=input("请输入密文:")
for key in range(len(LETTERS)):str=""for i in text:if i in LETTERS:if i.isupper():  #密文字母为大写num = LETTERS1.find(i)  #在字母里搜索到密文字符的位置num = num - keyif num<0:num = num + len(LETTERS1)str = str + LETTERS1[num]  #将解密后字符追加到字符串末尾elif i.islower():  #密文字母为小写num = LETTERS2.find(i)  #在字母里搜索到密文字符的位置num = num - keyif num<0:num = num + len(LETTERS2)str = str + LETTERS2[num]  #将解密后字符追加到字符串末尾else:str = str + i  #如果密文中内容不在字母里则不解密,直接追加print('第%d把钥匙的结果是%s' %(key, str))  #显示每一个可能的值

这里通过穷举的方式得到明文admin

在这里插入图片描述

对称密码算法

对称密码算法(也称单钥或私钥密码算法):加密密钥和解密密钥相或实质上等同,即从一个易于推出另一个。

特点:

  • DES、3DES、IDEA、AES
  • 密钥相对较短,一般采用128,192或256比特大小
  • 传输时采用安全信道传输密钥
    优点:
  • 效率高,算法简单,系统开销小
  • 适合加密大量数据
  • 明文长度与密文长度相等
    缺点:
  • 需要以安全方式进行密钥交换
  • 密钥管理复杂
  • 无法解决消息的篡改、否认等问题

在这里插入图片描述

非对称密码算法

非对称密码算法:加密密钥和解密密钥不同,从一个很难推出另一个。其中,对外公开的密钥,称为公开密钥(public key),简称公钥;必须保密的密钥,称为私有密钥( private key) ,简称私钥。又叫公钥密码算法( Public-keycipher)。
特点

  • RSA、ECC、ElGamal
  • 公钥加密 私钥解密
  • 私钥加密 公钥解密
  • 密钥长度512-2048位

优点:

  • 密钥分发数目与参与者数目相同
  • 在有大量参与者的情况下易于密钥管理
  • 安全
  • 支持数字签名和不可否认性
  • 无需事先与对方建立关系,交换密钥
    缺点:
  • 速度相对较慢
  • 可能比同等强度的对称密码算法慢10倍到100倍
  • 加密后,密文变长

在这里插入图片描述

混合加密

混合加密结合对称和非对称算法的特点进行组合而成,先是接收方将生成的公钥共享给发送方一份,发送方使用此公钥将生成的会话秘钥进行加密,同时发送方使用会话秘钥对明文内容进行加密,完成加密后,将两份加密过的内容一起发送给接收方,接收方接收到消息,先通过配对的私钥解密出会话秘钥,然后使用会话秘钥对密文进行解密,得到明文内容。

加密传输过程:

在这里插入图片描述

解密过程:

在这里插入图片描述

哈希函数

  • 对称密码和非对称密码算法主要解决信息的机密性问题,而实际系统和网络还可能受到消息篡改等攻击。
  • 篡改攻击主要包括:修改信息内容,改变程序使其不能正确·运行等。哈希函数可以用来保证信息的完整性。
  • 哈希(Hash)函数(也称为杂凑函数或单向散列函数)接受一个消息作为输入,产生一个称为哈希值的输出。输出的哈希值也可称为散列值、消息摘要(MessageDigest, MD)

实验

哈希函数比较常用与下载的文件校验,通过文件算出哈希值进行比对文件是否被篡改。
创建一个index.html文件计算哈希值,对比修改后的哈希值,是否有变化。
在这里插入图片描述
在这里插入图片描述
修改前
在这里插入图片描述
在这里插入图片描述
修改后发现有明显改变
在这里插入图片描述

MD5

MD: Message Digest
消息摘要

  • 输入:任意长度的消息
  • 输出: 128位消息摘要
  • 处理:以512位输入数据块为单位

SHA-1

SHA ( Secure Hash Algorithm ,安全哈希算法)由美国国家标准技术研究所开发,1993年作为联邦信息处理标准发布,2008 年又有更新。

  • 输入:最大长度为264位的消息;
  • 输出:160位消息摘要;
  • 处理:输入以512位数据块为单位处理.

比较

  • 散列值长度:MD5 128bits SHA1 160bits
  • 安全性:SHA1算法被视为MD5的替代候选算法
  • 速度:SHA1慢些 (openssl speed md5/sha1)

数字签名

除了保护信息的机密性和完整性,密码学技术也可以解决信息的可鉴别性(真实性或认证性)和不可否认性。
注意:数字签名是对文件的哈希值进行签名而不是对文件本身。
传统签名的基本特点:

  • 能与被签的文件在物理上不可分割
  • 签名者不能否认自己的签名
  • 签名不能被伪造
  • 容易被验证
    数字签名是传统签名的数字化,基本要求:
  • 能与所签文件“绑定”
  • 签名者不能否认自己的签名
  • 签名不能被伪造
  • 容易被验证

数字签名应用

  • (1)可信性:签名让文件的接收者相信签名者是慎重地在文件上签名的。
  • (2)不可重用性:签名不可重用,即使同一消息在不同时刻的签名也是有区别的。如果将签名部分提取出来,附加在别的消息后面,验证签名会失败。这是因为签名和所签名消息之间是一一对应的,消息不同签名内容也不同,因此签名无法重复使用。
  • (3)数据完整性:在文件签名后,文件不能改变。
  • (4)不可伪造性:签名能够证明是签名者而不是其他人在文件上签名,任何人都不能伪造签名。
  • (5)不可否认性:在签名者否认自己的签名时,签名接收者可以请求可信第二方进行仲裁。

相关内容

热门资讯

安卓子系统windows11,... 你知道吗?最近科技圈可是炸开了锅,因为安卓子系统在Windows 11上的兼容性成了大家热议的话题。...
电脑里怎么下载安卓系统,电脑端... 你有没有想过,你的电脑里也能装上安卓系统呢?没错,就是那个让你手机不离手的安卓!今天,就让我来带你一...
索尼相机魔改安卓系统,魔改系统... 你知道吗?最近在摄影圈里掀起了一股热潮,那就是索尼相机魔改安卓系统。这可不是一般的改装,而是让这些专...
安卓系统哪家的最流畅,安卓系统... 你有没有想过,为什么你的手机有时候像蜗牛一样慢吞吞的,而别人的手机却能像风一样快?这背后,其实就是安...
安卓最新系统4.42,深度解析... 你有没有发现,你的安卓手机最近是不是有点儿不一样了?没错,就是那个一直在默默更新的安卓最新系统4.4...
android和安卓什么系统最... 你有没有想过,你的安卓手机到底是用的是什么系统呢?是不是有时候觉得手机卡顿,运行缓慢,其实跟这个系统...
平板装安卓xp系统好,探索复古... 你有没有想过,把安卓系统装到平板上,再配上XP系统,这会是怎样一番景象呢?想象一边享受着安卓的便捷,...
投影仪装安卓系统,开启智能投影... 你有没有想过,家里的老式投影仪也能焕发第二春呢?没错,就是那个曾经陪你熬夜看电影的“老伙计”,现在它...
安卓系统无线车载carplay... 你有没有想过,开车的时候也能享受到苹果设备的便利呢?没错,就是那个让你在日常生活中离不开的iOS系统...
谷歌安卓8系统包,系统包解析与... 你有没有发现,手机更新换代的速度简直就像坐上了火箭呢?这不,最近谷歌又发布了安卓8系统包,听说这个新...
微软平板下软件安卓系统,开启全... 你有没有想过,在微软平板上也能畅享安卓系统的乐趣呢?没错,这就是今天我要跟你分享的神奇故事。想象你手...
coloros是基于安卓系统吗... 你有没有想过,手机里的那个色彩斑斓的界面,背后其实有着一个有趣的故事呢?没错,我要说的就是Color...
安卓神盾系统应用市场,一站式智... 你有没有发现,手机里的安卓神盾系统应用市场最近可是火得一塌糊涂啊!这不,我就来给你好好扒一扒,看看这...
黑莓平板安卓系统升级,解锁无限... 亲爱的读者们,你是否还记得那个曾经风靡一时的黑莓手机?那个标志性的全键盘,那个独特的黑莓体验,如今它...
安卓文件系统采用华为,探索高效... 你知道吗?最近安卓系统在文件管理上可是有了大动作呢!华为这个科技巨头,竟然悄悄地给安卓文件系统来了个...
深度系统能用安卓app,探索智... 你知道吗?现在科技的发展真是让人惊叹不已!今天,我要给你揭秘一个超级酷炫的话题——深度系统能用安卓a...
安卓系统的分区类型,深度解析存... 你有没有发现,你的安卓手机里藏着不少秘密?没错,就是那些神秘的分区类型。今天,就让我带你一探究竟,揭...
安卓系统铠无法兑换,揭秘无法兑... 最近是不是有很多小伙伴在玩安卓系统的游戏,突然发现了一个让人头疼的问题——铠无法兑换!别急,今天就来...
汽车安卓系统崩溃怎么刷,一键刷... 亲爱的车主朋友们,你是否曾遇到过汽车安卓系统崩溃的尴尬时刻?手机系统崩溃还能重启,但汽车系统崩溃了,...
miui系统可以刷安卓p系统吗... 亲爱的手机控们,你是否对MIUI系统情有独钟,同时又对安卓P系统的新鲜功能垂涎欲滴?今天,就让我带你...