算法钥匙
㈠ 大米下周钥匙算法是向上取整还是四舍五入
四舍五入 所谓四舍五入简单解释为:要保留小数的下一位数值的大小,“四舍”是指保留小数下一位小于等于四时,将其舍去
㈡ 公钥算法原理
这是一种不对称加密算法。公钥算法包括快速公钥算法与传统公钥算法。快速公钥算法与传统公钥算法相比具有更广泛地应用前景,对快速公钥系统的研究是当前公钥系统研究的一个热点。
定义
不对称加密算法使用两把完全不同但又是完全匹配的一对钥匙—公钥和私钥。在使用不对称加密算法加密文件时,只有使用匹配的一对公钥和私钥,才能完成对明文的加密和解密过程。加密明文时采用公钥加密,解密密文时使用私钥才能完成,而且发信方(加密者)知道收信方的公钥,只有收信方(解密者)才是唯一知道自己私钥的人。不对称加密算法的基本原理是,如果发信方想发送只有收信方才能解读的加密信息,发信者使用收信者的公钥加密信件,收信者使用自己的私钥钥解密信件。显然,采用不对称加密算法,收发信双方在通信之前,收信方必须将自己早已随机生成的公钥送给发信方,而自己保留私钥。由于不对称算法拥有两个密钥,因而特别适用于分布式系统中的数据加密。广泛应用的不对称加密算法有RSA算法和美国国家标准局提出的DSA。以不对称加密算法为基础的加密技术应用非常广泛。
工作原理
1976 年,Whitfield Diffe 和 Martin Hellman 创建了公钥加密。公钥加密是重大的创新,因为它从根本上改变了加密和解密的过程。
Diffe 和 Hellman 提议使用两个密钥,而不是使用一个共享的密钥。一个密钥(称为“私钥”)是保密的。它只能由一方保存,而不能各方共享。第二个密钥(称为“公钥”)不是保密的,可以广泛共享。这两个密钥(称为“密钥对”)在加密和解密操作中配合使用。密钥对具有特殊的互补关系,从而使每个密钥都只能与密钥对中的另一个密钥配合使用。这一关系将密钥对中的密钥彼此唯一地联系在一起:公钥与其对应的私钥组成一对,并且与其他任何密钥都不关联。
由于公钥和私钥的算法之间存在特殊的数学关系,从而使得这种配对成为可能。密钥对在数学上彼此相关,例如,配合使用密钥对可以实现两次使用对称密钥的效果。密钥必须配合使用:不能使用每个单独的密钥来撤消它自己的操作。这意味着每个单独密钥的操作都是单向操作:不能使用一个密钥来撤消它的操作。此外,设计两个密钥使用的算法时,特意设计无法使用一个密钥确定密钥对中的另一个密钥。因此,不能根据公钥确定出私钥。但是,使得密钥对成为可能的数学原理也使得密钥对具有对称密钥所不具有的一个缺点。这就是,所使用的算法必须足够强大,才能使人们无法通过强行尝试,使用已知的公钥来解密通过它加密的信息。公钥利用数学复杂性以及它的单向特性来弥补它是众所周知的这样一个事实,以防止人们成功地破解使用它编码的信息。
如果将此概念应用于前面的示例,则发件人将使用公钥将纯文本加密成密码。然后,收件人将使用私钥将密码重新解密成纯文本。
由于密钥对中的私钥和公钥之间所存在的特殊关系,因此一个人可以在与许多人交往时使用相同的密钥对,而不必与每个人分别使用不同的密钥。只要私钥是保密的,就可以随意分发公钥,并让人们放心地使用它。使许多人使用同一个密钥对代表着密码学上的一个重大突破,因为它显着降低了密钥管理的需求,大大提高了密码学的可用性。用户可以与任意数目的人员共享一个密钥对,而不必为每个人单独设立一个密钥。
公钥加密是邮件安全中的一个基本要素。如果没有公钥加密,那么是否存在实用的邮件安全解决方案是值得怀疑的,因为在公钥加密出现之前,密钥管理是一件很麻烦的事情。在了解了公钥加密的基本概念之后,接下来便是了解如何借助这些概念来实现邮件安全性。
㈢ 密钥算法
您的查询字词都已标明如下:公钥加密 (点击查询词,可以跳到它在文中首次出现的位置)
(网络和网页http://www.gnupg.org/(en)/howtos/ch/GPGMiniHowto-1.html的作者无关,不对其内容负责。网络快照谨为网络故障时之索引,不代表被搜索网站的即时页面。)
--------------------------------------------------------------------------------
下页 上页 目录
--------------------------------------------------------------------------------
1. 概念
1.1 公钥加密
加密的传统方法只用一把密钥加密。发出讯息者用这把钥匙对讯息加密。接收讯息者需要有完全相同的钥匙才能将加密了的讯息解密。这把钥匙必须以一种其他人没有机会得到它的方式给予接收讯息者。如果其他人得到了这把钥匙,这种加密方式就没用了。
使用一种称为"公开钥匙"的方法可以解决这个问题。公开钥匙的概念涉及两把钥匙。一把钥匙称为"公开钥匙"(公钥),可以以所有方式传递,任何人都可以得到。另一把钥匙称为"隐密钥匙"(密钥)。这把钥匙是秘密的,不能传递出去。只有它的拥有者才能接触和使用它。如果正确实施了这种方法,从公钥不能得出密钥。发出讯息者以接收讯息者的公钥将讯息加密,接收者则以自己的密钥解密。
这个概念的关键之处在于密钥必须保持秘密,不能随便给出或让任何除了密钥拥有者之外的人得到。请千万不要将你的密钥通过Internet寄出!另外,通过telnet使用GnuPG是非常不明智的(基于使用telnet的高风险,你可以考虑绝不使用telnet)。
1.2 数字签名
为证明一则讯息确实是宣称发出讯息的人所发,发明了数字签名的概念。正如其名称显示,发出讯息者数字化地在讯息上签名。别人可以通过这个签名检验这个讯息的真实性。使用这种方法,可以减少中"特洛伊木马计"的风险(即一则讯息宣称是对某个问题的补丁,实际却包含病毒或乱动你计算机上的数据),同时信息或数据可以被确认是来自正当合法的来源,而被认为属实。
一个数字签名是通过密钥和讯息本身而得来。讯息可以通过发出讯息者的公钥来验证。这样,不仅可以验证讯息是正确的发出讯息者所发,而且内容也得到验证。这样,得到讯息者可以确认:讯息来自该发出讯息者,而且在传递过程中其内容没有改变。
1.3 信任网
公开钥匙算法的一个弱点在于如何传播公开钥匙。有可能有用户传递一把有虚假身份的公开钥匙。如果别人不知就里,用这把公钥加密讯息,持有该虚假钥匙的侵入者就可以解密而读到讯息。如果侵入者再将解密的讯息以真正的公开钥匙加密,然后传送出去,这种进攻无法被发现。
对此问题,PGP的解决方法(因此也自动是GnuPG的解决方法)是对公开钥匙签名。每把公开钥匙都有一个相应的用户身份。一个人的公开钥匙可以由别人来签名。这些签名承认这把钥匙确实属于它所宣称的用户。至于有多信任这些签名,完全取决于GnuPG用户。当你信任给这把钥匙签名的人时,你认为这把钥匙是可信的,并确信这把钥匙确实属于拥有相应用户身份的人。只有当你信任签名者的公开钥匙时,你才能信任这个签名。要想绝对确信一把钥匙是正确和真实的,你就得在给予绝对信任之前,通过可靠渠道比较钥匙的"指纹"。
1.4 安全边界
如果你有数据想要保密,你所需做的远不止选择加密算法这一件事。你应该统筹考虑你的系统安全。一般我们认为PGP是安全的。在作者写本文时,尚未听说任何PGP被破译的事例。但这并不表示所有用PGP加密的讯息都是安全的(举例说,如果NSA--美国国家安全局破解了PGP,它绝不会通知我。别的为真正邪恶目的破译密码的人也不会)。反过来说,即使PGP是完全"无法破译"的,也可以用别的方法来损害安全。今年二月初,发现了一种"特洛伊木马",它寻找硬盘上的密钥,然后将其FTP出去。如果密码选得不好,这些被盗的密钥可以被轻易破解。
另一种可能的技术(虽然更难做到)是使用一种"特洛伊木马"程序,它可以传出用户所敲的键。也可以(但非常困难)传出屏幕显示的内容。使用这些技术,就根本不需要破译加密的讯息了。针对以上这些危险,需要制定一个好的,深思熟虑的安全计划并付诸实施。
提到上述这些,目的并非想让人们怀疑一切,而是想指出需要采取很多措施才能达到更安全。最重要的是意识到加密只是安全的一个步骤,而不是全部的解决方案。正如在一九九九年三月Melissa病毒事件中所显示,许多公司并未准备好应付这类特洛伊木马式病毒。
㈣ 密钥是什么,什么是加密算法
1密钥是一种参数,它是在明文转换为密文或将密文转换为明文的算法中输入的参数。密钥分为对称密钥与非对称密钥.
2数据加密的基本过程就是对原来为明文的文件或数据按某种算法进行处理,使其成为不可读的一段代码,通常称为“密文”,使其只能在输入相应的密钥之后才能显示出本来内容,通过这样的途径来达到保护数据不被非法人窃取、阅读的目的。 该过程的逆过程为解密,即将该编码信息转化为其原来数据的过程。
每次发数据给对方的时候都会用自己的私钥加密,私钥和公钥是对应匹配的,公钥是公开大家知道的,私钥是自己的,相当于我们的签名别人盗版不了。对方收到数据之后用公钥解密就能得到数据。再用公钥和私钥设计具体的办法就能处理好让别人不能窥探数据 。
㈤ 关于加密、解密算法、密钥,哪位能给我举个形象的例子
加密就像你钥匙深进钥匙孔,逆时针转一下
解密就像你钥匙深进钥匙孔,顺时针转一下
密钥就像你那把钥匙上面的齿
暴力破解就像做了世界上所有可能的齿的钥匙,一把一把试。不可以理解为直接砸开。
就像商场里衣服上有个锁,如果没有钥匙,就算怎么弄开,那件衣服都没法穿了。所以就一定要有钥匙。
所以密钥叫作key(钥匙)
应该很形象了吧。
加密从数学角度就是一个像函数c=E(m,k)
输入:m是消息明文,k是密钥,
输出:c是消息密文
D是E的反函数,m'=D(c',k')
输入:c'是消息密文,k'是密钥,
输出:m'是消息明文
当c=c', k=k'时,一定有m=m'
c,m,k可以看成一个个大整数,比如c=394783579347293479382。
最简单的一个加密就是
E(m,k)=m+k
D(c,k)=c-k
㈥ 对称加密方法和公开密钥算法有什么异同
对称加密算法
是应用较早的加密算法,技术成熟。在对称加密算法中,数据发信方将明文(原始数据)和加密密钥一起经过特殊加密算法处理后,使其变成复杂的加密密文发送出去。收信方收到密文后,若想解读原文,则需要使用加密用过的密钥及相同算法的逆算法对密文进行解密,才能使其恢复成可读明文。在对称加密算法中,使用的密钥只有一个,发收信双方都使用这个密钥对数据进行加密和解密,这就要求解密方事先必须知道加密密钥。对称加密算法的特点是算法公开、计算量小、加密速度快、加密效率高。不足之处是,交易双方都使用同样钥匙,安全性得不到保证。此外,每对用户每次使用对称加密算法时,都需要使用其他人不知道的惟一钥匙,这会使得发收信双方所拥有的钥匙数量成几何级数增长,密钥管理成为用户的负担。对称加密算法在分布式网络系统上使用较为困难,主要是因为密钥管理困难,使用成本较高。在计算机专网系统中广泛使用的对称加密算法有DES、IDEA和AES。
公开密钥算法
非对称式加密就是加密和解密所使用的不是同一个密钥,通常有两个密钥,称为“公钥”和“私钥”,它们两个必需配对使用,否则不能打开加密文件。这里的“公钥”是指可以对外公布的,“私钥”则不能,只能由持有人一个人知道。它的优越性就在这里,因为对称式的加密方法如果是在网络上传输加密文件就很难把密钥告诉对方,不管用什么方法都有可能被别窃听到。而非对称式的加密方法有两个密钥,且其中的“公钥”是可以公开的,也就不怕别人知道,收件人解密时只要用自己的私钥即可以,这样就很好地避免了密钥的传输安全性问题。
RSA是Rivest、Shamir和Adleman提出来的基于数论非对称性(公开钥)加密算法。大整数的素因子难分解是RSA算法的基础