rsa专利
1、有多少种密码方式?除了摩斯密码外还有什么密码?
1、RSA算法密码
RSA算法是第一个能同时用于加密和数字签名的算法,也易于理解和操作。RSA算法是一种非对称密码算法,所谓非对称,就是指该算法需要一对密钥,使用其中一个加密,则需要用另一个才能解密。
2、ECC加密法密码
ECC算法也是一个能同时用于加密和数字签名的算法,也易于理解和操作。同RSA算法是一样是非对称密码算法使用其中一个加密,用另一个才能解密。
3、三分密码
首先随意制造一个3个3×3的Polybius方格替代密码,包括26个英文字母和一个符号。然后写出要加密的讯息的三维坐标。讯息和坐标四个一列排起,再顺序取横行的数字,三个一组分开,将这三个数字当成坐标,找出对应的字母,便得到密文。
4、栅栏加密法密码
栅栏加密法是一种比较简单快捷的加密方法。栅栏加密法就是把要被加密的文件按照一上一下的写法写出来,再把第二行的文字排列到第一行的后面。
5、针孔加密法密码
这种加密法诞生于近代。由于当时邮费很贵,但是寄送报纸则花费很少。于是人们便在报纸上用针在需要的字下面刺一个孔,等到寄到收信人手里,收信人再把刺有孔的文字依次排列,连成文章。
2、2000年——著名的RSA算法专利失效。历史
这得看当初无效这个发明的案件,这是无效官司了, 公开审理的么?否则没办法查到。
3、de=1modφ(n)是什么意思
在RSA算法中,de=1modφ(n)是指de与1关于φ(n)同余。
对极大整数做因数分解的难度决定了RSA算法的可靠性。对一极大整数做因数分解愈困难,RSA算法愈可靠。
假如有人找到一种快速因数分解的算法的话,那么用RSA加密的信息的可靠性就肯定会极度下降。但找到这样的算法的可能性是非常小的。
只有短的RSA钥匙才可能被强力方式解破。世界上还没有任何可靠的攻击RSA算法的方式。只要其钥匙的长度足够长,用RSA加密的信息实际上是不能被解破的。
(3)rsa专利扩展资料:
由于RSA算法基于大数分解(无法抵抗穷举攻击),因此在未来量子计算能对RSA算法构成较大的威胁。
一个拥有N量子比特的量子计算机,每次可进行2^N次运算,理论上讲,密钥为1024位长的RSA算法,用一台512量子比特位的量子计算机在1秒内即可破解。
1983年麻省理工学院在美国为RSA算法申请了专利。这个专利2000年9月21日失效。由于该算法在申请专利前就已经被发表了,在世界上大多数其它地区这个专利权不被承认。
4、如何验证DNS服务器是否支持DNSSEC
dns攻击主要有以下这几种方式:
DNS缓存感染
攻击者使用DNS请求,将数据放入一个具有漏洞的的DNS服务器的缓存当中。这些缓存信息会在客户进行DNS访问时返回给用户,从而把用户客户对正常域名的访问引导到入侵者所设置挂马、钓鱼等页面上,或者通过伪造的邮件和其他的server服务获取用户口令信息,导致客户遭遇进一步的侵害。
DNS信息劫持
TCP/IP体系通过序列号等多种方式避免仿冒数据的插入,但入侵者如果通过监听客户端和DNS服务器的对话,就可以猜测服务器响应给客户端的DNS查询ID。每个DNS报文包括一个相关联的16位ID号,DNS服务器根据这个ID号获取请求源位置。攻击者在DNS服务器之前将虚假的响应交给用户,从而欺骗客户端去访问恶意的网站。假设当提交给某个域名服务器的域名解析请求的DNS报文包数据被截获,然后按截获者的意图将一个虚假的IP地址作为应答信息返回给请求者。原始请求者就会把这个虚假的IP地址作为它所要请求的域名而进行访问,这样他就被欺骗到了别处而无妨连接想要访问的那个域名。
DNS重定向
攻击者将DNS名称查询重定向到恶意DNS服务器上,被劫持域名的解析就完全在攻击者的控制之下。
ARP欺骗
ARP攻击就是通过伪造IP地址和MAC地址实现ARP欺骗,能够在网络中产生大量的ARP通信量使网络阻塞,攻击者只要持续不断的发出伪造的ARP响应包就能更改目标主机ARP缓存中的IP-MAC条目,造成网络中断或中间人攻击。ARP攻击主要是存在于局域网网络中,局域网中若有一台计算机感染ARP病毒,则感染该ARP病毒的系统将会试图通过”ARP欺骗”手段截获所在网络内其它计算机的通信信息,并因此造成网内其它计算机的通信故障。
ARP欺骗通常是在用户局网中,造成用户访问域名的错误指向。如果IDC机房也被ARP病毒入侵后,则也可能出现攻击者采用ARP包压制正常主机、或者压制DNS服务器,以使访问导向错误指向的情况。
本机劫持
本机的计算机系统被木马或流氓软件感染后,也可能会出现部分域名的访问异常。如访问挂马或者钓鱼站点、无法访问等情况。本机DNS劫持方式包括hosts文件篡改、本机DNS劫持、SPI链注入、BHO插件等方式。
防范Arp攻击、采用UDP随机端口、建立静态IP映射、运行最新版本的BIND、限制查询、利用防火墙进行保护、利用交叉检验、使用TSIG机制、利用DNSSEC机制。
下面分别做出说明。
防范Arp攻击
主要是针对局域网的DNS ID欺骗攻击。如上所述,DNS ID欺骗是基于Arp欺骗的,防范了Arp欺骗攻击,DNS ID欺骗攻击是无法成功实施的。
采用UDP随机端口
不再使用默认的53端口查询,而是在UDP端口范围内随机选择,可使对ID与端口组合的猜解难度增加6万倍,从而降低使DNS缓存攻击的成功率。
建立静态IP映射
主要是指DNS服务器对少部分重要网站或经常访问的网站做静态映射表,使对这些网站的访问不再需要经过缓存或者向上一级的迭代查询,从而在机制上杜绝DNS欺骗攻击。
运行最新版本的BIND
使用最新版本的BIND,可以防止已知的针对DNS软件的攻击(如DoS攻击、缓冲区溢出漏洞攻击等)。应密切关注BIND安全公告,及时打好补丁。
限制查询
在BIND8和BIND9之后,BIND的allow-query子句允许管理员对到来的查询请求使用基于IP地址的控制策略,访问控制列表可以对特定的区甚至是对该域名服务器受到的任何查询请求使用限制策略。如限制所有查询、限制特定区的查询、防止未授权的区的查询、以最少权限运行BIND等。
利用防火墙进行保护
这种保护方式可以使受保护的DNS服务器不致遭受分布式拒绝服务攻击、软件漏洞攻击。原理是在DNS服务器主机上建立一个伪DNS服务器共外部查询,而在内部系统上建立一个真实的DNS服务器专供内部使用。配置用户的内部DNS客户机,用于对内部服务器的所有查询,当内部主机访问某个网站时,仅当内部DNS服务器上没有缓存记录时,内部DNS才将查询请求发送到外部DNS服务器上,以保护内部服务器免受攻击。
利用交叉检验
这种保护方式可以从一定程度上防范DNS欺骗攻击。原理是反向查询已得到的IP地址对应的主机名,用该主机名查询DNS服务器对应于该主机名的IP地址,如果一致,则请求合法,否则非法。
使用TSIG机制
TSIF(事物签名)机制(RFC2845)通过使用共享密钥(Secret Key)及单向散列函数(One-way hash function)提供信息的验证以及数据的完整性。当配置了TSIG后,DNS消息会增加一个TSIF记录选项,该选项对DNS消息进行签名,为消息发送者和接受者提供共享密钥,从而保证了传输数据不被窃取和篡改。TSIP机制的部署步骤不做赘述,相关RFC文档有详细说明。
利用DNSSEC机制
为保证客户机发送的解析请求的完整性,保护DNS服务器及其中的信息,防止入侵者冒充合法用户向他人提供虚假DNS信息,IETF(网络工程任务组)提出了DNS安全扩展(DNSSEC)的安全防范思想。
1、 DNSSEC工作原理
为提高DNS访问数据包的安全性,DNSSEC在兼容现有协议的基础上引入加密和认证体系,在每个区域都有一对区域级的密钥对,密钥对中的公钥对域名记录信息进行数字签名,从而使支持DNSSEC的接收者可以校验应答信息的可靠性。
BIND9.0支持DNS的安全扩展功能?。DNSSEC引入两个全新的资源记录类型:KEY和SIG,允许客户端和域名服务器对任何DNS数据来源进行密钥验证。DNSSEC主要依靠公钥技术对于包含在DNS中的信息创建密钥签名,密钥签名通过计算出一个密钥Hash数来提供DNS中数据的完整性,并将该Hash数封装进行保护。私/公钥对中的私钥用来封装Hash数,然后可以用公钥把Hash数翻译出来。如果这个翻译出的Hash值匹配接收者计算出来的Hash数,那么表明数据是完整的、没有被篡改的。
2、 DNSSEC的实施
1)、创建一组密钥对
#cd/vat/named
#dnssec -keygen -a RSA -b 512 -n ZONE qfnu.e.Kqfnu.e+002+27782
2)、生成密钥记录
#dnssec –makekeyset -t 172802 I
3)、发送密钥文件到上一级域管理员,以供签名使用
#dnssec -signkey keyset -qfnu.e Ke.+002+65396.private
然后将返回qfnu.e.signedkey文件
4)、在进行区域签名之前,必须先将密钥记录添加到区域数据文件之中
#cat“$include Kqfnn.e.+002+27782.key”>>db.qfnu.e
5)、对区域进行签名
#dnssec –signzone -O qfnu.e db.qfnu.e
6)、修改named.conf里的zone语句,系统将会载新的区域数据文件
3、 DNSSEC的不足
一方面,DNSSEC安全性虽然有所提高,但是标记和校验必然产生额外的开销,从而影响网络和服务器的性能,签名的数据量很大,家中了域名服务器对骨干网以及非骨干网连接的负担,同时简明校验也对CPU造成了很大的负担,同时签名和密钥也占用了占用的磁盘空间以及RAM容量。
另一方面,安全性能方面的考虑。绝大多数的DNS软件是美国出口的,它们为了通过美国政府的安全规定而被迫降低加密算法和过程的安全强度。
第三方面,RSA算法的使用。RSA拥有美国专利,与某些厂商和组织倡导的“免费/开放”目标有所冲突,但是同时又别无选择。在成本方面也是部署中的一个问题。
5、是的 计算机算法
计算机算法是以一步接一步的方式来详细描述计算机如何将输入转化为所要求的输出的过程,或者说,算法是对计算机上执行的计算过程的具体描述。
编辑本段算法性质一个算法必须具备以下性质: (1)算法首先必须是正确的,即对于任意的一组输入,包括合理的输入与不合理的输入,总能得到预期的输出。如果一个算法只是对合理的输入才能得到预期的输出,而在异常情况下却无法预料输出的结果,那么它就不是正确的。 (2)算法必须是由一系列具体步骤组成的,并且每一步都能够被计算机所理解和执行,而不是抽象和模糊的概念。 (3)每个步骤都有确定的执行顺序,即上一步在哪里,下一步是什么,都必须明确,无二义性。 (4)无论算法有多么复杂,都必须在有限步之后结束并终止运行,即算法的步骤必须是有限的。在任何情况下,算法都不能陷入无限循环中。 一个问题的解决方案可以有多种表达方式,但只有满足以上4个条件的解才能称之为算法。编辑本段重要算法A*搜寻算法
俗称A星算法。这是一种在图形平面上,有多个节点的路径,求出最低通过成本的算法。常用于游戏中的NPC的移动计算,或线上游戏的BOT的移动计算上。该算法像Dijkstra算法一样,可以找到一条最短路径;也像BFS一样,进行启发式的搜索。
Beam Search
束搜索(beam search)方法是解决优化问题的一种启发式方法,它是在分枝定界方法基础上发展起来的,它使用启发式方法估计k个最好的路径,仅从这k个路径出发向下搜索,即每一层只有满意的结点会被保留,其它的结点则被永久抛弃,从而比分枝定界法能大大节省运行时间。束搜索于20 世纪70年代中期首先被应用于人工智能领域,1976 年Lowerre在其称为HARPY的语音识别系统中第一次使用了束搜索方法,他的目标是并行地搜索几个潜在的最优决策路径以减少回溯,并快速地获得一个解。
二分取中查找算法
一种在有序数组中查找某一特定元素的搜索算法。搜素过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜素过程结束;如果某一特定元素大于或者小于中间元素,则在数组大于或小于中间元素的那一半中查找,而且跟开始一样从中间元素开始比较。这种搜索算法每一次比较都使搜索范围缩小一半。
Branch and bound
分支定界(branch and bound)算法是一种在问题的解空间树上搜索问题的解的方法。但与回溯算法不同,分支定界算法采用广度优先或最小耗费优先的方法搜索解空间树,并且,在分支定界算法中,每一个活结点只有一次机会成为扩展结点。
数据压缩
数据压缩是通过减少计算机中所存储数据或者通信传播中数据的冗余度,达到增大数据密度,最终使数据的存储空间减少的技术。数据压缩在文件存储和分布式系统领域有着十分广泛的应用。数据压缩也代表着尺寸媒介容量的增大和网络带宽的扩展。
Diffie–Hellman密钥协商
Diffie–Hellman key exchange,简称“D–H”,是一种安全协议。它可以让双方在完全没有对方任何预先信息的条件下通过不安全信道建立起一个密钥。这个密钥可以在后续的通讯中作为对称密钥来加密通讯内容。
Dijkstra’s 算法
迪科斯彻算法(Dijkstra)是由荷兰计算机科学家艾兹格·迪科斯彻(Edsger Wybe Dijkstra)发明的。算法解决的是有向图中单个源点到其他顶点的最短路径问题。举例来说,如果图中的顶点表示城市,而边上的权重表示著城市间开车行经的距离,迪科斯彻算法可以用来找到两个城市之间的最短路径。
动态规划
动态规划是一种在数学和计算机科学中使用的,用于求解包含重叠子问题的最优化问题的方法。其基本思想是,将原问题分解为相似的子问题,在求解的过程中通过子问题的解求出原问题的解。动态规划的思想是多种算法的基础,被广泛应用于计算机科学和工程领域。比较著名的应用实例有:求解最短路径问题,背包问题,项目管理,网络流优化等。这里也有一篇文章说得比较详细。
欧几里得算法
在数学中,辗转相除法,又称欧几里得算法,是求最大公约数的算法。辗转相除法首次出现于欧几里得的《几何原本》(第VII卷,命题i和ii)中,而在中国则可以追溯至东汉出现的《九章算术》。
最大期望(EM)算法
在统计计算中,最大期望(EM)算法是在概率(probabilistic)模型中寻找参数最大似然估计的算法,其中概率模型依赖于无法观测的隐藏变量(Latent Variable)。最大期望经常用在机器学习和计算机视觉的数据聚类(Data Clustering)领域。最大期望算法经过两个步骤交替进行计算,第一步是计算期望(E),利用对隐藏变量的现有估计值,计算其最大似然估计值;第二步是最大化(M),最大化在 E 步上求得的最大似然值来计算参数的值。M 步上找到的参数估计值被用于下一个 E 步计算中,这个过程不断交替进行。
快速傅里叶变换(FFT)
快速傅里叶变换(Fast Fourier Transform,FFT),是离散傅里叶变换的快速算法,也可用于计算离散傅里叶变换的逆变换。快速傅里叶变换有广泛的应用,如数字信号处理、计算大整数乘法、求解偏微分方程等等。
哈希函数
HashFunction是一种从任何一种数据中创建小的数字“指纹”的方法。该函数将数据打乱混合,重新创建一个叫做散列值的指纹。散列值通常用来代表一个短的随机字母和数字组成的字符串。好的散列函数在输入域中很少出现散列冲突。在散列表和数据处理中,不抑制冲突来区别数据,会使得数据库记录更难找到。
堆排序
Heapsort是指利用堆积树(堆)这种数据结构所设计的一种排序算法。堆积树是一个近似完全二叉树的结构,并同时满足堆积属性:即子结点的键值或索引总是小于(或者大于)它的父结点。
归并排序
Merge sort是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。
RANSAC 算法
RANSAC 是”RANdom SAmpleConsensus”的缩写。该算法是用于从一组观测数据中估计数学模型参数的迭代方法,由Fischler and Bolles在1981提出,它是一种非确定性算法,因为它只能以一定的概率得到合理的结果,随着迭代次数的增加,这种概率是增加的。该算法的基本假设是观测数据集中存在”inliers”(那些对模型参数估计起到支持作用的点)和”outliers”(不符合模型的点),并且这组观测数据受到噪声影响。RANSAC 假设给定一组”inliers”数据就能够得到最优的符合这组点的模型。
RSA加密演算法
这是一个公钥加密算法,也是世界上第一个适合用来做签名的算法。今天的RSA已经专利失效,其被广泛地用于电子商务加密,大家都相信,只要密钥足够长,这个算法就会是安全的。
并查集Union-find
并查集是一种树型的数据结构,用于处理一些不相交集合(Disjoint Sets)的合并及查询问题。常常在使用中以森林来表示。
Viterbi algorithm
寻找最可能的隐藏状态序列(Finding most probable sequence of hidden states)。编辑本段算法特点1.有穷性。一个算法应包含有限的操作步骤,而不能是无限的。事实上“有穷性”往往指“在合理的范围之内”。如果让计算机执行一个历时1000年才结束的算法,这虽然是有穷的,但超过了合理的限度,人们不把他是为有效算法。 2. 确定性。算法中的每一个步骤都应当是确定的,而不应当是含糊的、模棱两可的。算法中的每一个步骤应当不致被解释成不同的含义,而应是十分明确的。也就是说,算法的含义应当是唯一的,而不应当产生“歧义性”。 3. 有零个或多个输入、所谓输入是指在执行算法是需要从外界取得必要的信息。 4. 有一个或多个输出。算法的目的是为了求解,没有输出的算法是没有意义的。 5.有效性。 算法中的每一个 步骤都应当能有效的执行。并得到确定的结果。编辑本段算法与程序虽然算法与计算机程序密切相关,但二者也存在区别:计算机程序是算法的一个实例,是将算法通过某种计算机语言表达出来的具体形式;同一个算法可以用任何一种计算机语言来表达。 算法列表 图论 路径问题 0/1边权最短路径 BFS 非负边权最短路径(Dijkstra) 可以用Dijkstra解决问题的特征 负边权最短路径 Bellman-Ford Bellman-Ford的Yen-氏优化 差分约束系统 Floyd 广义路径问题 传递闭包 极小极大距离 / 极大极小距离 Euler Path / Tour 圈套圈算法 混合图的 Euler Path / Tour Hamilton Path / Tour 特殊图的Hamilton Path / Tour 构造 生成树问题 最小生成树 第k小生成树 最优比率生成树 0/1分数规划 度限制生成树 连通性问题 强大的DFS算法 无向图连通性 割点 割边 二连通分支 有向图连通性 强连通分支 2-SAT 最小点基 有向无环图 拓扑排序 有向无环图与动态规划的关系 二分图匹配问题 一般图问题与二分图问题的转换思路 最大匹配 有向图的最小路径覆盖 0 / 1矩阵的最小覆盖 完备匹配 最优匹配 稳定婚姻 网络流问题 网络流模型的简单特征和与线性规划的关系 最大流最小割定理 最大流问题 有上下界的最大流问题 循环流 最小费用最大流 / 最大费用最大流 弦图的性质和判定 组合数学 解决组合数学问题时常用的思想 逼近 递推 / 动态规划 概率问题 Polya定理 计算几何 / 解析几何 计算几何的核心:叉积 / 面积 解析几何的主力:复数 基本形 点 直线,线段 多边形 凸多边形 / 凸包 凸包算法的引进,卷包裹法 Graham扫描法 水平序的引进,共线凸包的补丁 完美凸包算法 相关判定 两直线相交 两线段相交 点在任意多边形内的判定 点在凸多边形内的判定 经典问题 最小外接圆 近似O(n)的最小外接圆算法 点集直径 旋转卡壳,对踵点 多边形的三角剖分 数学 / 数论 最大公约数 Euclid算法 扩展的Euclid算法 同余方程 / 二元一次不定方程 同余方程组 线性方程组 高斯消元法 解mod 2域上的线性方程组 整系数方程组的精确解法 矩阵 行列式的计算 利用矩阵乘法快速计算递推关系 分数 分数树 连分数逼近 数论计算 求N的约数个数 求phi(N) 求约数和 快速数论变换 …… 素数问题 概率判素算法 概率因子分解 数据结构 组织结构 二叉堆 左偏树 二项树 胜者树 跳跃表 样式图标 斜堆 reap 统计结构 树状数组 虚二叉树 线段树 矩形面积并 圆形面积并 关系结构 Hash表 并查集 路径压缩思想的应用 STL中的数据结构 vector deque set / map 动态规划 / 记忆化搜索 动态规划和记忆化搜索在思考方式上的区别 最长子序列系列问题 最长不下降子序列 最长公共子序列 一类NP问题的动态规划解法 树型动态规划 背包问题 动态规划的优化 四边形不等式 函数的凸凹性 状态设计 规划方向 线性规划 常用思想 二分 最小表示法 串 KMP Trie结构 后缀树/后缀数组 LCA/RMQ 有限状态自动机理论 排序 选择/冒泡 快速排序 堆排序 归并排序 基数排序 拓扑排序 排序网络
扩展阅读:
1
《计算机算法设计与分析导论》朱清新等编著 人民邮电出版社
开放分类:
计算机,算法
6、Rsa是什么意思
RSA加密算法是一种非对称加密算法。在公开密钥加密和电子商业中RSA被广泛使用。RSA是1977年由罗纳德·李维斯特(Ron Rivest)、阿迪·萨莫尔(Adi Shamir)和伦纳德·阿德曼(Leonard Adleman)一起提出的。当时他们三人都在麻省理工学院工作。RSA就是他们三人姓氏开头字母拼在一起组成的。
1973年,在英国政府通讯总部工作的数学家克利福德·柯克斯(Clifford Cocks)在一个内部文件中提出了一个相同的算法,但他的发现被列入机密,一直到1997年才被发表。
(6)rsa专利扩展资料
RSA的安全性依赖于大数分解,但是否等同于大数分解一直未能得到理论上的证明,因为没有证明破解RSA就一定需要作大数分解。
假设存在一种无须分解大数的算法,那它肯定可以修改成为大数分解算法。 RSA 的一些变种算法已被证明等价于大数分解。不管怎样,分解n是最显然的攻击方法。人们已能分解多个十进制位的大素数。因此,模数n必须选大一些,因具体适用情况而定。
7、数据的算法?都有哪些……
A*搜寻算法
俗称A星算法。这是一种在图形平面上,有多个节点的路径,求出最低通过成本的算法。常用于游戏中的 NPC的移动计算,或线上游戏的 BOT的移动计算上。该算法像 Dijkstra算法一样,可以找到一条最短路径;也像BFS一样,进行启发式的搜索。
Beam Search
束搜索(beam search)方法是解决优化问题的一种启发式方法,它是在分枝定界方法基础上发展起来的,它使用启发式方法估计k个最好的路径,仅从这k个路径出发向下搜索,即每一层只有满意的结点会被保留,其它的结点则被永久抛弃,从而比分枝定界法能大大节省运行时间。束搜索于20 世纪70年代中期首先被应用于 人工智能领域,1976 年Lowerre在其称为 HARPY的语音识别系统中第一次使用了束搜索方法。他的目标是并行地搜索几个潜在的最优决策路径以减少回溯,并快速地获得一个解。
二分取中查找算法
一种在有序数组中查找某一特定元素的搜索算法。搜素过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜素过程结束;如果某一特定元素大于或者小于中间元素,则在数组大于或小于中间元素的那一半中查找,而且跟开始一样从中间元素开始比较。这种搜索算法每一次比较都使搜索范围缩小一半。
Branch and bound
分支定界算法是一种在问题的解空间树上搜索问题的解的方法。但与回溯算法不同,分支定界算法采用广度优先或最小耗费优先的方法搜索解空间树,并且,在分支定界算法中,每一个活结点只有一次机会成为扩展结点。
数据压缩
数据压缩是通过减少计算机中所存储数据或者通信传播中数据的冗余度,达到增大数据密度,最终使数据的存储空间减少的技术。数据压缩在文件存储和分布式系统领域有着十分广泛的应用。数据压缩也代表着尺寸媒介容量的增大和网络带宽的扩展。
Diffie–Hellman密钥协商
Diffie–Hellman key exchange,简称“D–H”,是一种安全协议。它可以让双方在完全没有对方任何预先信息的条件下通过不安全信道建立起一个密钥。这个密钥可以在后续的通讯中作为对称密钥来加密通讯内容。
Dijkstra’s 算法
迪科斯彻算法(Dijkstra)是由荷兰计算机科学家艾兹格·迪科斯彻发明的。算法解决的是有向图中单个源点到其他顶点的最短路径问题。举例来说,如果图中的顶点表示城市,而边上的权重表示著城市间开车行经的距离,迪科斯彻算法可以用来找到两个城市之间的最短路径。
动态规划
动态规划是一种在 数学和计算机科学中使用的,用于求解包含重叠子问题的最优化问题的方法。其基本思想是,将原问题分解为相似的子问题,在求解的过程中通过子问题的解求出原问题的解。 动态规划的思想是多种算法的基础,被广泛应用于计算机科学和工程领域。比较著名的应用实例有:求解最短路径问题,背包问题,项目管理,网络流优化等。这里也有一篇文章说得比较详细。
欧几里得算法
在 数学中,辗转相除法,又称 欧几里得算法,是求 最大公约数的算法。辗转相除法首次出现于 欧几里得的《几何原本》(第VII卷,命题i和ii)中,而在中国则可以追溯至 东汉出现的《九章算术》。
快速傅里叶变换(FFT)
快速傅里叶变换(Fast Fourier Transform,FFT),是离散傅里叶变换的快速算法,也可用于计算离散傅里叶变换的逆变换。快速傅里叶变换有广泛的应用,如数字信号处理、计算大整数乘法、求解偏微分方程等等。
哈希函数
HashFunction是一种从任何一种数据中创建小的数字“指纹”的方法。该 函数将数据打乱混合,重新创建一个叫做散列值的指纹。散列值通常用来代表一个短的随机字母和数字组成的字符串。好的散列 函数在输入域中很少出现散列冲突。在散列表和数据处理中,不抑制冲突来区别数据,会使得数据库记录更难找到。
堆排序
Heapsort是指利用堆积树(堆)这种 数据结构所设计的一种排序算法。堆积树是一个近似完全二叉树的结构,并同时满足堆积属性:即子结点的键值或索引总是小于(或者大于)它的父结点。
归并排序
Merge sort是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。
RANSAC 算法
RANSAC 是”RANdom SAmpleConsensus”的缩写。该算法是用于从一组观测数据中估计 数学模型参数的迭代方法,由Fischler and Bolles在1981提出,它是一种非确定性算法,因为它只能以一定的概率得到合理的结果,随着迭代次数的增加,这种概率是增加的。该算法的基本假设是观测数据集中存在”inliers”(那些对模型参数估计起到支持作用的点)和”outliers”(不符合模型的点),并且这组观测数据受到噪声影响。RANSAC 假设给定一组”inliers”数据就能够得到最优的符合这组点的模型。
RSA加密演算法
这是一个公钥加密算法,也是世界上第一个适合用来做签名的算法。今天的RSA已经 专利失效,其被广泛地用于 电子商务加密,大家都相信,只要密钥足够长,这个算法就会是安全的。
并查集Union-find
并查集是一种树型的 数据结构,用于处理一些不相交集合(Disjoint Sets)的合并及查询问题。常常在使用中以森林来表示。
Viterbi algorithm
寻找最可能的隐藏状态序列
等等这些,算法很多。
8、telnet,ssh1和ssh2的区别
简言之:Telent是明码传输,SSH是加密传输。
使用Telnet这个用来访问远程计算机的TCP/IP协议以控制你的网络设备相当于在离开某个建筑时大喊你的用户名和口令。很快会有人进行监听,并且他们会利用你安全意识的缺乏。传统的网络服务程序如:ftp、pop和telnet在本质上都是不安全的,因为它们在网络上用明文传送口令和数据,别有用心的人非常容易就可以截获这些口令和数据。而且,这些服务程序的安全验证方式也是有其弱点的,就是很容易受到“中间人”(man-in-the-middle)这种方式的攻击。所谓“中间人”的攻击方式,就是“中间人”冒充真正的服务器接收你的传给服务器的数据,然后再冒充你把数据传给真正的服务器。服务器和你之间的数据传送被“中间人”一转手做了手脚之后,就会出现很严重的问题。
SSH是替代Telnet和其他远程控制台管理应用程序的行业标准。SSH命令是加密的并以几种方式进行保密。SSH有很多功能,它既可以代替telnet,又可以为ftp、pop、甚至ppp提供一个安全的“通道”。SSH(Secure SHell)到目前为止有两个不兼容的版本——SSH1和SSH2。
SSH1又分为1.3和1.5两个版本。SSH1采用DES、3DES、Blowfish和RC4等对称加密算法保护数据安全传输,而对称加密算法的密钥是通过非对称加密算法(RSA)来完成交换的。SSH1使用循环冗余校验码(CRC)来保证数据的完整性,但是后来发现这种方法有缺陷。
SSH2避免了RSA的专利问题,并修补了CRC的缺陷。SSH2用数字签名算法(DSA)和Diffie-Hellman(DH)算法代替RSA来完成对称密钥的交换,用消息证实代码(HMAC)来代替CRC。同时SSH2增加了AES和Twofish等对称加密算法。
9、背包变体是什么?
很复杂,反正我看不懂^
RSA
1977 年,即,Diffie-Hellman 的论文发表一年后,MIT 的三名研究人员根据这一想法开发了一种实用方法。这就是 RSA,它是以三位开发人员 — Ron Rivest、Adi Shamir 和 Leonard Adelman — 姓的首字母大写命名的,而且 RSA 可能是使用最广泛的公钥密码体制。1983 年给 RSA 在美国申请了专利,并正式地被采用为标准,虽然到目前为止,它的出口仍受到限制,但在美国以外还是一直广泛地用于本地开发的实现。
与其它此类系统一样,RSA 使用很大的质数来构造密钥对。每个密钥对共享两个质数的乘积,即模数,但是每个密钥对还具有特定的指数。RSA 实验室对 RSA 密码体制的原理做了如下说明:
“用两个很大的质数,p 和 q,计算它们的乘积 n = pq;n 是模数。选择一个比 n 小的数 e,它与 (p - 1)(q - 1) 互为质数,即,除了 1 以外,e 和 (p - 1)(q - 1) 没有其它的公因数。找到另一个数 d,使 (ed - 1) 能被 (p - 1)(q - 1) 整除。值 e 和 d 分别称为公共指数和私有指数。公钥是这一对数 (n, e);私钥是这一对数 (n, d)。”
知道公钥可以得到获取私钥的途径,但是这取决于将模数因式分解成组成它的质数。这很困难,通过选择足够长的密钥,可以使其基本上不可能实现。需要考虑的是模数的长度;RSA 实验室目前建议:对于普通公司使用的密钥大小为 1024 位,对于极其重要的资料,使用双倍大小,即 2048 位。对于日常使用,768 位的密钥长度已足够,因为使用当前技术无法容易地破解它。保护资料的成本总是需要和资料的价值以及攻破保护的成本是否过高结合起来考虑。RSA 实验室提到了最近对 RSA 密钥长度安全性的研究,这种安全性是基于在 1995 年可用的因式分解技术。这个研究表明用 8 个月的努力花费少于一百万美元可能对 512 位的密钥进行因式分解。事实上,在 1999 年,作为常规 RSA 安全性挑战的一部分,用了 7 个月时间完成了对特定 RSA 512 位数(称为 RSA-155)的因式分解。
记住:对于提供的安全性范围,这里给出的各种数字都是平均值,有时识别一个特定的私钥可能会快得多,这一点也很重要。同样,提供的安全性假设是基于对质数进行因式分解是很困难的。如果发现了能使因式分解变得简单的新数学技术,这种假设就会发生变化,那时 RSA 提供的安全性和类似的算法就可能立即变得毫无价值。
还请注意,密钥长度增加时会影响加密/解密的速度,所以这里有一个权衡。将模数加倍将使得使用公钥的操作时间大致增加为原来的 4 倍,而用私钥加密/解密所需的时间增加为原来的 8 倍。进一步说,当模数加倍时,生成密钥的时间平均将增加为原来的 16 倍。如果计算能力持续快速地提高,并且事实上非对称密码术通常用于简短文本,因此在实践运用中这不是问题。
其它非对称密码体制
以其开发人员的名字命名的 ElGamal 系统基于离散对数问题,并有加密和签名变体,而数字签名算法(DSA)部分基于 ElGamal。该系统看来与 RSA 一样安全,但是通常更慢,在加密期间扩展消息的时间是 RSA 的两倍。这些限制不太影响该算法在签名中的使用。
其它体制包括 1978 年第一次发布的 Merkle-Hellman 背包(knapsack)密码体制、1984 年第一次发布的 Chor-Rivest 背包密码体制及其 1988 年的修订版。还有在澳大利亚和新西兰开发的 LUC 公钥系统。McEliece 公钥加密算法基于代数编码理论,并使用一类称为 Goppa 代码的纠错码。这些代码提供快速译码,但使用的密钥大小约有半兆,并且加密时对消息文本的扩展也很大。
一组更先进的公钥密码体制是在八十年代中期提出称为椭圆曲线的密码体制,现在引起了人们的兴趣。这些体制基于数字理论和代数几何学中的数学构造,并通常定义在有限域上。这些体制尽管使用较短的密钥长度,但似乎有可能提供与现有系统类似的安全性,有些则可能在移动计算或基于智能卡的系统中特别有用。RSA 实验室提出使用 160 位密钥长度的椭圆曲线密码体制可能提供与使用 1024 位密钥的 RSA 几乎相同的安全性。然而,问题是:对于某些尚未完全开发的专门攻击来说,椭圆曲线密码体制可能是脆弱的。