密码学基本概念
创始人
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)不可否认性:在签名者否认自己的签名时,签名接收者可以请求可信第二方进行仲裁。

相关内容

热门资讯

安卓系统苹果手机识别,跨界融合... 你知道吗?在科技飞速发展的今天,手机已经成为了我们生活中不可或缺的一部分。而说到手机,安卓系统和苹果...
harmonyos系统是不是安... 亲爱的读者,你是否曾好奇过HarmonyOS系统与安卓系统之间的关系?是不是安卓的“亲戚”?今天,就...
手机怎么装系统安卓,安卓系统安... 手机卡顿了?想给安卓系统来个大变身?别急,跟着我一步步来,保证让你的手机焕然一新!一、准备工作在开始...
安卓Linux系统内网穿透,A... 你有没有想过,你的安卓手机里那些看似普通的APP,其实可能正在悄悄地帮你打通网络世界的任督二脉呢?没...
win怎么安装安卓系统,Win... 亲爱的读者,你是不是对Win系统上的安卓应用垂涎已久,但又苦于不知道如何安装安卓系统呢?别急,今天我...
升级小米平板安卓系统,畅享全新... 你有没有发现,你的小米平板用久了,是不是感觉有点卡呢?别急,今天就来教你怎么给它来个系统升级,让它焕...
捷豹安卓系统车载,捷豹安卓系统... 哇,你有没有想过,当你的手机和汽车融为一体,会是怎样的体验呢?想象你正驾驶着你的捷豹,车窗外的风景如...
安卓1到10系统,安卓1.0至... 你有没有想过,手机里的安卓系统就像是我们生活中的好朋友,从青涩的少年成长为稳重的青年呢?从安卓1.0...
安卓8.0停用系统应用,提升使... 你知道吗?最近安卓系统又来了一次大动作,那就是安卓8.0系统开始停用一些系统应用了。这可真是让人有点...
安卓系统修改mtu值,轻松提升... 你有没有想过,你的安卓手机其实是个小小的电脑呢?它里面藏着许多可以自定义的秘密功能,就像修改MTU值...
安卓平板改window系统,探... 你有没有想过,你的安卓平板其实可以摇身一变,变成一个Windows系统的电脑呢?没错,就是那种可以运...
时空猎人安卓苹果系统,探索无尽... 你知道吗?最近在手机游戏圈里,有一款叫做《时空猎人》的游戏可是火得一塌糊涂呢!不管是安卓用户还是苹果...
安卓9.0系统的电视,新一代电... 亲爱的读者们,你是否也像我一样,对科技新玩意儿充满好奇?今天,我要和你聊聊一个让人眼前一亮的话题——...
小pc安装安卓系统,轻松安装安... 你有没有想过,你的小PC也能变身成为安卓系统的超级玩家呢?没错,就是那个平时默默无闻的小家伙,现在也...
高通备份安卓系统,全方位数据安... 你知道吗?在这个科技飞速发展的时代,手机备份可是个不得不提的话题。尤其是对于安卓用户来说,选择一个靠...
谷歌安卓系统有多少,从诞生到全... 你有没有想过,那个无处不在的谷歌安卓系统,究竟在全球有多少用户呢?它就像一个神秘的数字,每天都在悄悄...
fc黄金传说安卓系统,畅享复古... 你有没有听说最近安卓系统上的一款超酷的游戏——《FC黄金传说》?这款游戏可是让不少玩家都沉迷其中,今...
变小的我安卓系统,安卓系统演变... 你有没有发现,最近你的手机好像变轻了?没错,说的就是你,那个陪伴你多年的安卓系统。它悄无声息地进行了...
vivo安卓系统小彩蛋,体验科... 你知道吗?在vivo的安卓系统中,竟然隐藏着一些超有趣的小彩蛋!这些小彩蛋就像是在手机里埋下的宝藏,...
安卓系统如何强制重启,安卓系统... 手机突然卡壳了,是不是又该给它来个“大保健”了?没错,今天就来聊聊安卓系统如何强制重启。别小看这个看...