密码学基础

一、理论知识

科尔霍夫原则

1、对于一个密码学系统,应当仅有密钥是保密的,其余算法和一切参数都应该是公开的

2、并不一定要数学上完全不可破解,只要在现实中不可能破解即可

对称加密

加密解密都使用相同的密钥

非对称加密

1、加密解密使用的密钥不同

2、公钥、私钥

缺点:效率较低

传统方式:通过非对称交换密钥,再用对称加密通信

二、加解密和数字签名

加解密

1、Alice 给 Bob传信息,Alice用Bob的公钥加密,Bob用自己的私钥解密

2、在没有私钥的情况下,无法获取到明文相关信息

数字签名

1、Alice想证明某个消息是自己发的

2、Alice用自己的私钥签名,其他人可以用Alice的公钥验证签名有效性

3、在没有私钥的情况下,无法伪造签名

4、ECDSA

三、哈希算法

消息摘要

1、把无穷空间内的消息映射到有限空间内的摘要

2、H(M) = x (H就是hash算法,M就是Massage,x就是摘要,hash的结果值)

3、确定性算法

4、消息一旦改变,摘要也会改变

hash算法的重要性质

1、不可逆(单向性),拿到哈希值的人,无法知道原始明文是什么

2、抗碰撞,无法找到两个不同的消息,但是摘要相同

3、确定性

4、混淆性

5、不可预测性

相关推荐
Brilliantwxx12 小时前
【Linux】 第一个程序终端进度条
linux·运维·服务器
AI创界者12 小时前
【网络安全运维】Kali Linux 下 Medusa(美杜莎)工具的高效部署、故障排查与安全测试实战
linux·运维·web安全
要开心吖ZSH12 小时前
公钥加密,私钥解密?私钥加密,公钥解密?哪个对?
密码学·aes·sha·rsa·sm2·sm3·签名验签
FinelyYang12 小时前
CentOS 7.6 自建 LiveKit 部署指南
linux·运维·centos
Huangjin007_12 小时前
【Linux 系统篇(十四)】进程 (二) :PCB、task_struct、fork系统调用
linux·运维·服务器
HiDev_12 小时前
【非标自动化】硬核阅读理解620行梯形图(70~619行)
运维·自动化
雨田言炎13 小时前
十、QThread多线程
linux·服务器·开发语言·前端·qt
向上的车轮13 小时前
GitHub Actions 自动化运维实战:Java + TypeScript 全栈项目 CI/CD 至阿里云
运维·自动化·github
重庆小透明13 小时前
深入探寻微服务【第三篇微服务的组件】
运维·微服务·架构
哎呦,帅小伙哦13 小时前
Linux 系统监控核心:/proc/stat 文件全解析
linux·服务器