首页 > 其他分享 >一个比喻搞懂非对称加密

一个比喻搞懂非对称加密

时间:2024-10-20 11:20:27浏览次数:10  
标签:文件 公钥 加密 非对称 Alice 钥匙 私钥 Bob 搞懂

【比喻前提】

如果我们把用加密秘钥加密一个文件比喻为上锁,把用解密秘钥解密一个文件比喻为用钥匙开锁

【比喻内容】

那么对于一个敏感文件,

对称加密的做法是
把这个敏感文件上锁,并把钥匙给接收方。所以此时如果窃听者拿到了钥匙,就也可以阅读这个敏感文件。

非对称加密的做法则是,
把制作这把锁的方法公开,任何人都可以按照你说的方法来制造这把锁并且把想要保密的内容锁上,然而只有你自己有这把钥匙打开!所以此时窃听者只能拿到上了锁的文件,根本无法打开,因为打开锁的钥匙从未进行过通信,也就无从窃听了。

【例子前提】

左边是Alice,右边是Bob

Alice有一个自己的公钥和自己的私钥,同时还有Bob的公钥

Bob有一个自己的公钥和自己的私钥,同时还有Alice的公钥

【例子1】Alice给Bob发信息

Alice想给Bob发送一个敏感文件

①Alice用Bob的公钥加密,把文件发给Bob

比喻:Alice用Bob公布的制作锁的方法给文件上锁,而后把文件邮寄给Bob

②Bob用Bob的私钥(也就是自己的私钥)解密

比喻:Bob用自己的钥匙开锁(因为这个锁的制作方法是自己公布的,那么打开锁的钥匙自己也是清楚的)

③Bob阅读自己的文件,其他任何人都无法阅读,因为他们都没有Bob的私钥。即使Alice自己想发的文件意外丢失了也无法再通过这个上了锁的文件恢复丢失的文件,因为Alice也没有Bob的私钥。

比喻:Bob舒舒服服的阅读敏感文件,别人即使拿到了加锁的文件也打不开,因为这个锁是他自己做的,打开锁的钥匙从来没告诉过任何人,因此别人无法再打开这个文件,即使是Alice自个儿也没这个本事,因为Alice也没有钥匙,她只是制作了这个锁,把文件锁上了,而制作钥匙的方法(也就是Bob的私钥),只有Bob知道

---> ②     --->  ③ 

【例子2】Bob给Alice发信息

类似地, Bob想给Alice发送一个敏感文件

过程是这样的

①Bob用Alice的公钥给文件上锁,而后将文件发送给Alice

②Alice用自己的私钥打开文件

③Alice自己美美阅读,如果Bob不小心弄丢了敏感文件原稿,他也没本事通过加了锁的文件解密,因为他没有Alice的私钥。

参考资料:四分钟搞明白非对称加密_哔哩哔哩_bilibili

标签:文件,公钥,加密,非对称,Alice,钥匙,私钥,Bob,搞懂
From: https://blog.csdn.net/learn_think/article/details/143089976

相关文章

  • .mkp扩展名oracle数据文件加密恢复---惜分飞
    联系:手机/微信(+8617813235971)QQ(107644445)标题:.mkp扩展名oracle数据文件加密恢复作者:惜分飞©版权所有[未经本人同意,不得以任何形式转载,否则有进一步追究法律责任的权利.]又有客户的oracle数据库文件被勒索,扩展名被加密为:.[[email protected]].mkp对应的+READM......
  • 通过已知明文攻击破解弱加密算法
    样本分析日志实习期间在微步沙箱上找到一个样本,其SHA256:36c3405eafd9bdb4c6dd0ca98a2a4779ab34b8777a36b38347316f09109a87e6,在沙箱上检测为木马。通过分析发现该样本总共分为三个阶段:第一阶段的逻辑是先检查当前路径,然后自复制到公共目录并运行,最后从远程FTP服务器上下载第二......
  • 一文搞懂MySQL索引
    索引概述介绍索引(index)是帮助MySQL高效获取数据的数据结构(有序)。在数据之外,数据库系统还维护着满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据,这样就可以在这些数据结构上实现高级查找算法,这种数据结构就是索引。优缺点优势劣势提高数据检索的效......
  • 钥匙对对碰:RSA加密解密(数字版&字符串版)JAVA实现
    钥匙对对碰:RSA加密解密(数字版)RSA加密的原理其实很简单,就是你有两把钥匙,一把叫公钥,一把叫私钥。这两把钥匙都有很特别的性质:用公钥加锁(加密)之后,只能用对应的私钥来解锁(解密),反过来也一样。我们来一步步看看它是怎么实现的。1.找两把钥匙的“材料”要做出公钥和私钥,首先需......
  • 基于拉格朗日插值多项式的Shamir's Secret Sharing 加密算法
    Shamir'sSecretSharing是一种加密算法,由AdiShamir于1979年提出,旨在将一个秘密(如密码、密钥等)分割成多个部分,并分发给不同的参与者。只有当足够数量的参与者(大于等于一个特定的阈值)将他们的份额组合在一起时,秘密才能恢复。少于阈值数量的参与者无法得到任何有用的信息。核心......
  • python实现rsa加密
    模拟效果:用户注册/登陆成功,返回自己的公钥,注册时候生成的私钥和公钥入库。下次进来的时候,加解密是动态的,也就是每个用户都不一样fromcryptography.hazmat.backendsimportdefault_backendfromcryptography.hazmat.primitives.asymmetricimportrsa,paddingfromcryptograp......
  • 一文搞懂模型倍率怎么计算的,以及模型分组倍率原理!
    ......
  • Unity引擎CSharp数据加密通用提取方法
    CSharp一般数据加密后解密使用CryptoStream::Read解密,在程序启动时Hook该函数,然后可以截获到解密的数据步骤:Hook引擎mono的函数mono_runtime_invokeAsmHook::HOOK_INFO _mono_runtime_invoke;BOOL__cdeclhook_mono_runtime_invoke(VOID*pUserParam,AsmHook::......
  • 每日OJ题_牛客_非对称之美_最长非回文字符串_C++_Java
    目录牛客_非对称之美_最长非回文字符串题目解析C++代码Java代码牛客_非对称之美_最长非回文字符串非对称之美(nowcoder.com)题目解析找到规律就是最长非回文字符串(判断是否全同->0,否则是n-1(回文减去1)或n)。C++代码#include<iostream>usingnamespacestd;int......
  • 前端常用6种数据加密方式的使用(最详解)
    原文链接:https://blog.csdn.net/2401_82471222/article/details/140538952前端常用的六种数据加密方式包括Base64编码、MD5加密、SHA-1加密、SHA-256加密、AES加密和RSA加密。每种加密方式都有其特定的使用场景和优缺点。以下是这些加密方式的详细使用说明:1.Base64编码定义与特......