密码学相关

数字签名

目前在计算机业界应用广泛的基本上就是密码学中的非对称加密和Hash算法。

数字签名由非对称加密和数字摘要两种技术合成的,可以防伪造(机密性)和篡改(完整性)。

rsa非对称加密 + hash摘要 = 数字签名

对于摘要:私钥签名、公钥验证

对于加密:公钥加密、私钥解密

AB备注
报文->Hash算法(比如MD5,SHA256)生成摘要->私钥(A的)签名使用公钥(A的)验证摘要部分:A想把签名的消息发给B
使用公钥(B的)加密使用私钥(B的)解密加密部分:A想把加密的消息发给B,让B知道是什么消息
SSH

please tell me who you are的故事

对于放在Gitlab上的代码,使用https的方式来clone,这样就省去了配置ssh的私钥和公钥的步骤。说白了,只要涉及到ssh协议的传输,那么一定会需要公钥和私钥的,所以,Gitlab相关的Git操作和连接远程服务器都要用。

Mac上terminal通过ssh连接远程Linux服务器的方法:

  1. 生成公、私钥
ssh-keygen -t rsa -C "xxx"
  1. 其中公钥、私钥放在自己本地~/.ssh文件夹下

  2. 将公钥文件内容拷贝到远程服务器的.ssh/authorized_keys文件里面

  3. 如果为了更加方便地登录,在本地~/.ssh文件夹下新建config文件,内容如下。就可以使用ssh xxx直接登录。

Host xxx 
HostName  远程服务器IP
User 远程连接使用的账号,如root
IdentityFile ~/.ssh/id_rsa 私钥文件所在路径

附:使用不同的非对称加密算法生成公钥、私钥

ssh-keygen -t ed25519

更加具体的内容:https://www.cnblogs.com/xz816111/p/9479139.html

零知识证明

其是一种特殊的交互式证明,其中证明者知道问题的答案,他需要向验证者证明“他知道答案”这一事实,但是要求验证者不能获得答案的任何信息。

可以参考这样一个简单的例子。证明者和验证者都拿到了一个数独的题目,证明者知道一个解法,他可以采取如下这种零知识证明方法:他找出81张纸片,每一张纸片写上1到9的一个数字,使得正好有9份写有从1到9的纸片。因为他知道答案,他可以把所有的纸片按照解法放在一个9乘9的方格内,使得满足数独的题目要求(每列、每行、每个九宫格都正好有1到9)。放好之后他把所有的纸片翻转,让没有字的一面朝上。这样验证者没办法看到纸片上的数字。接下来,验证者就验证数独的条件是否满足。比如他选一列,这时证明者就把这一列的纸片收集起来,把顺序任意打乱,然后把纸片翻过来,让验证者看到1到9的纸片都出现了。整个过程中验证者都无法得知每张纸片的位置,但是却能验证确实是1到9都出现了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值