当前位置: 首页 > news >正文

[密码学]入门篇——加密方式

一、概述

加密方法主要分为两大类:

  • 单钥加密(private key cryptography):加密和解密过程都用同一套密码
  • 双钥加密(public key cryptography):加密和解密过程用的是两套密码

历史上,人类传统的加密方法都是前一种,比如:二战期间德军用的Enigma电报密码、之后的莫尔斯电码

  • 单钥加密的情况下,密钥只有一把,所以密钥的保存变得很重要。一旦密钥泄漏,密码也就被破解。
  • 双钥加密的情况下,密钥有两把,一把是公开的公钥,还有一把是不公开的私钥。

目前,两者通用的算法都产生于上个世纪70年代,如下所示:

  • 单钥加密算法:DES(Data Encryption Standard)
  • 双钥加密算法:RSA( Rivest-Shamir-Adleman)

二、双钥加密原理

a. 每一对双钥都是不同的。
b. 双钥<Key1,Key2>是一一对应的关系,有一把Key1就必然有一把与之对应的、独一无二的Key2,反之亦成立。
c. 双钥同时生成是容易的,但是从Key1推算出Key2是很困难或者是不可能的,反之亦成立。
d. 用Key1可以解开Key2加密的信息,反之亦成立。
一般在双钥体系中,公钥用来加密信息,私钥用来数字签名。

三、数字签名&数字证书

因为任何人都可以生成自己的双钥对,所以为了防止有人散布伪造的公钥骗取信任,就需要一个可靠的第三方机构来生成经过认证的双钥对。
目前,世界上最主要的数字服务认证商是位于美国加州的Verisign公司,它的主要业务就是分发RSA数字证书。

  • 数字签名(signature) :多数情况是使用未公开的key对内容的“摘要”进行加密,加密后的内容称为“数字签名”
  • 数字证书(Digital Certificate) :证书中心用自己未公开的key,对内容公开的key和一些相关信息一起加密,生成“数字证书”。

加深理解可以阅读这个小故事 http://www.youdzone.com/signature.html
在这里插入图片描述

http://www.lryc.cn/news/313582.html

相关文章:

  • 构建前后端分离项目常用的代码
  • 2575. 找出字符串的可整除数组(Go语言)
  • Redis与 Memcache区别
  • #QT(智能家居界面-界面切换)
  • js拓展-内置对象
  • 【李沐精读系列】GPT、GPT-2和GPT-3论文精读
  • Libevent的使用及reactor模型
  • 查看Linux服务器配置
  • 【机器学习】包裹式特征选择之递归特征添加法
  • 解决cs不能生成Linux木马的问题
  • vue3组件通信方式
  • 前端实现生成图片并批量下载,下载成果物是zip包
  • android 快速实现 圆角矩形控件 及 圆形控件
  • 【Python】外网远程登录访问jupyter notebook+pycharm使用ipython
  • error:0308010C:digital envelope routines::unsupported
  • Vue前端的工作需求
  • 97. 常用的HTTP服务压测工具
  • 活动预告|听云猿生数据创始人 CEO 曹伟分享云数据库行业十余年经验总结
  • 数仓实战——京东数据指标体系的构建与实践
  • Alias许可配置
  • 【读书笔记】针对ICS的ATTCK矩阵详解(一)
  • Rust多线程访问数据,推荐使用mutex还是channel?
  • 基于pytorch的手写体识别
  • Leetcode 56. 合并区间
  • C++:List的使用和模拟实现
  • 20个Python函数程序实例
  • Wireshark——获取捕获流量的前N个数据包
  • 006-浏览器输入域名到返回
  • 【kubernetes】关于k8s集群如何将pod调度到指定node节点?
  • 【框架】React和Vue的异同