算法
文章平均质量分 90
kigumi
这个作者很懒,什么都没留下…
展开
-
RSA算法加解密过程全解析
不同于传统的对称加密算法体系,非对称公私钥密码系统中的加密密钥和解密密钥是相互分开的,加密密钥用于公开给别人加密,而只有持有解密密钥的人才能对信息进行解密。1976年诞生过不少非对称密码算法,但是RSA是其中最容易让人理解的。下文将尝试对RSA实现的具体流程进行解析。寻找合适的加密、解密函数我并不知道RSA最初的诞生经过了怎样的启发与灵光一闪,但仍有办法切入RSA的设计思路,现在,我们从它的实际效果:公钥加密,私钥解密来入手,尝试一步步分析它,了解它。我们首先面临的问题是,如果想要达到加解密的钥匙分开原创 2021-11-09 14:45:53 · 23532 阅读 · 0 评论 -
一文读懂DH密钥交换算法
DH 算法是 Diffie和Hellman于1976年提出了一种的密钥交换协议。这种加密算法主要用于密钥的交换,可以在非安全信道下为双方创建通信密钥,通讯双方可以使用这个密钥进行消息的加密、解密,并且能够保证通讯的安全。换而言之,算法希望实现这样的一个效果:通信方A和B首先各自生成密钥DaD_aDa和DbD_bDb,然后通过某种计算获得各自的公钥PaP_aPa和PbP_bPb,接下来,A和B互相交换公钥PaP_aPa和PbP_bPb。现在,A持有自己的密钥DaD_aDa和B的公钥PbP_b原创 2021-09-18 21:59:25 · 5034 阅读 · 0 评论 -
优雅计算算式:后缀表达式
表达式二叉树(Binary expression tree)是用来表示表达式的一种特殊的二叉树。两种常见表达式是代数表达式(如:3+2)和布尔表达式(如true ^ false)都可以用它表示,这些表达式包含了一元运算符和二元运算符,从而节点的孩子可以是零个、一个或两个。表达式树的叶子节点储存操作数(操作数可以是常量或变量),而内部节点则储存运算符。这种受限制的结构简化了表达式树的处理。原创 2020-11-24 12:44:57 · 6058 阅读 · 1 评论 -
分治算法——归并排序与最大连续子数组问题
本文是《算法导论》第二章、第三章、第四章一部分内容的简要概括归并排序先从一个简单的例子开始。假如面前有两堆已经排好序的扑克牌,牌面朝上,最小的牌在顶上,我们希望把两堆牌按照顺序合成一堆,牌面朝下。基本的操作就像是这样:从两堆牌的顶上挑一张最小的牌,翻转过来放在输出堆,不断重复这个步骤直到两堆牌中有一堆牌空了,到这个时候,把另一堆牌翻转、挪动到输出堆,有序的两堆牌的合并就完成了。依此类推,如何对一个数组进行排序呢?回答是:获得这个数组的两个有序子数组,然后合并。嗯?那怎么得到有序的子数组呢?回.原创 2021-07-18 10:55:56 · 393 阅读 · 0 评论