㈠ 公开密钥基本原理
公开密钥加密技术基本原理
现代加密技术中的加密算法都是公开的,而密钥是私有的。我们首先要对数据用加密算法进行加密,让接受方使用密钥进行解密,这样实现数据的安全传输。
加密和解密都会用到密钥,如果没有密钥就无法对加密的文件进行解密,也就是说任何人只要持有了密钥就可以解密,所以如果密钥被攻击者获得加密就失去了意义。
共享密钥加密方式 :加密和解密用同一个密钥的方式称为 共享密钥加密 (Common Key crypto system), 也被叫做 对称密钥加密 。
采用对称密钥加密的方式,必须将密钥也发给对方,不然对方无法解密。可究竟怎样才能安全的将密钥转交给对方呢?在互联网上传播时,如果通讯被监听,密钥落入攻击者之手,那加密就失去了意义。另外还得要有个办法安全的保存收的密钥。
发送密钥就有被窃听的风险,但是不发送密钥,对方又无法解密。如果密钥能够可靠传递,那数据为什么不能可靠传递呢?
公开密钥加密方式 :公开密钥加密使用了两把 非对称 的密钥,一把叫做 私有密钥 (private key) ,另一把叫做 公开密钥 (public key).
在公开密钥加密方法中,发送方使用接受方发布的公开密钥进行加密处理,然后发送给接受方,接受方收到加密信息后,再使用自己的私有密钥进行解密。这种方式不需要发送用来解密的密钥,也就不用担心密钥被攻击者盗走的情况。
另外,要根据秘文和公开密钥把信息回复到原文是异常困难的。目前技术而言,不太现实。
㈡ wpa加密算法选哪个不被破解
WPA-PSK/WPA2-PSK这种最好,最不容易被破解。
WPA-PSK(WPA-Preshared Key,WPA预共享密钥):是指WEP预分配共享密钥的认证方式,在加密方式和密钥的验证方式上作了修改,使其安全性更高。
㈢ 什麽是WEP加密
WEP加密是最早在无线加密中使用的技术.
WEP 加密
WEP 加密使用共享密钥和 RC4 加密算法。访问点(AP)和连接到该访问点的所有工作站必须使用同样的共享密钥。对于往任一方向发送的数据包,传输程序都将数据包的内容与数据包的检查和组合在一起。然后,WEP 标准要求传输程序创建一个特定于数据包的初始化向量(IV),后者与密钥相组合在一起,用于对数据包进行加密。接收器生成自己的匹配数据包密钥并用之对数据包进行解密。在理论上,这种方法优于单独使用共享私钥的显式策略,因为这样增加了一些特定于数据包的数据,应该使对方更难于破解
http://www.cpluse.com/cn/FAQ/JargonDetail.aspx?ID=539&Kind=1&CategoryID=&ProClassID=&Key=&Sort=&Page=0
㈣ SSH的工作原理
传统的网络服务程序,比如 FTP , POP , Telnet ,本质上都是不安全的,因为它们在网络上用明文传送数据、用户账号和用户口令,很容易受到 中间人 攻击方式的攻击,攻击者会冒充真正的服务器接收用户传给服务器的数据,然后再冒充用户把数据传给真正的服务器。
为了满足安全性的需求, IETF 的网络工作小组制定了 Secure Shell (缩写为 SSH ),这是一项创建在 应用层 和 传输层 基础上的安全协议,为计算机上的 Shell 提供安全的传输和使用环境。
SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄漏问题。通过 SSH 可以对所有传输的数据进行加密,也能够防止DNS欺骗和IP欺骗。
本文将会重点讨论 SSH 中用到的加密算法和建立安全连接的过程。
为了保证信息传输的安全性, SSH 使用了对称加密、非对称加密和散列等技术。
对称密钥加密又称为对称加密、私钥加密、共享密钥加密,是密码学中一类加密算法。这类算法在加密和解密时使用相同的密钥,或是使用两个可以简单地相互推算的密钥。
SSH 使用对称密钥加密整个连接过程中传输的信息。值得注意的是,用户自己创建的public/private密钥对仅仅用于验证,不会用在加密连接上。对称加密允许对密码进行身份验证,以防止第三方窥探。
共享密钥通过密钥交换算法生成,它可以让双方在完全没有对方任何预先信息的条件下通过不安全信道创建起一个密钥。客户端和服务端都参与了这个过程,过程的细节将在后面阐述。
生成的密钥将用来加密这次会话过程中客户端和服务端传输的数据。这个过程会在验证客户身份之前完成。
SSH 支持多种对称密钥算法,包括AES,Blowfish,3DES,CAST128和Arcfour。客户端和服务端可以配置采用算法的列表。客户端列表中第一个能被服务端支持的算法将被采用。
比如在Ubuntu 14.04上,客户端和服务端默认的配置如下: aes128-ctr , aes192-ctr , aes256-ctr , arcfour256 , arcfour128 , [email protected] , [email protected] , [email protected] , aes128-cbc , blowfish-cbc , cast128-cbc , aes192-cbc , aes256-cbc , arcfour 。
也就是说,如果两台Ubuntu 14.04采用默认配置,它们总是会采用 aes128-ctr 算法来加密连接。
在非对称加密方法中,需要一对密钥,一个是私钥,一个是公钥。这两个密钥数学相关。用公钥加密后所得的信息,只能用私钥才能解密。如果知道了其中一个,并不能计算另外一个。因此,如果公开了一对密钥中的一个,并不会危害到另外一个的秘密性质。
SSH 在一些地方使用了非对称加密。
在密钥交换过程中使用到了非对称加密。在这个阶段,客户端和服务端生成临时密钥对,并且交换公钥来生成共享密钥。
在身份验证的过程中也使用了非对称加密。 SSH 密钥对用来向服务端验证客户端身份。客户端创建一对密钥,然后将公钥上传到远程服务器上,写入文件 ~/.ssh/authorized_keys 。
在创建共享密钥后,客户端必须向服务端证明身份。服务端会使用文件中的公钥加密一段信息,并将加密后的信息发送给客户端。如果客户端可以能够破解这段信息,那么就能够证明自己拥有相关的私钥。之后服务端会为客户端设置shell环境。
散列是电脑科学中一种对资料的处理方法,它通过某种特定的算法将要检索的项与涌来检索的索引关联起来,生成一种便于搜索的数据结构(散列表)。它也常用做一种资讯安全的方法,由一串资料中经过散列算法计算出来的资料指纹,来识别档案和资料是否有被篡改。
SSH 主要使用了散列消息认证码(Keyed-hash message authentication code,缩写为HMAC),来确认消息没有被篡改。
上面提到的对称加密协商过程中,会使用消息认证码(MAC)算法。这个算法会从客户端支持的算法中选出。
在密钥协商完成后,所有的消息都必须携带MAC,用于通信双方验证消息的一致性。MAC值由共享密钥,消息的分组序列和实际消息内容计算得到。
在对称加密区域之外,MAC本身作为分组的最后部分被发送。研究者通常建议先机密数据,然后计算MAC
SSH 协议采用客户端-服务端模型对两方进行身份验证,并对它们之间的数据进行加密。
服务端在指定端口监听连接请求。它负责协商安全连接,认证连接方,并为客户端生成正确的shell环境。
客户端负责协商安全连接,验证服务器的身份是否与以前记录的信息相匹配,并提供凭证进行身份验证。
SSH会话分为两个阶段。第一个是同意和建立加密来保护未来的沟通。第二个阶段是对用户进行身份验证,并发现是否应该授予对服务器的访问权限。
当客户端发起请求后,服务端返回支持的协议版本。如果客户端可以匹配其中一个协议版本,则连接继续。服务端会提供它的公共主机密钥,客户端可以用这个密钥来验证服务端是否合法。
此时,通信双方采用迪菲-赫尔曼算法来协商会话密钥。
该算法的大致过程如下:
用于其余连接的共享密钥加密被称为二进制数据包协议。上述过程允许双方平等地参与生成共享密钥。
生成的密钥是对称密钥,这意味着用于加密消息的密钥也可以用于解密。其目的是将后面的通信包装在不能被外部人员解密的加密隧道中。
在生成会话密钥后,就开始进行用户身份验证。
根据服务器接受的方式,有几种不同的方法可用于身份验证。
最简单的方法是密码验证,其中服务器要求客户端输入尝试登陆账号的密码。密码是通过协商加密发送的。
虽然密码被加密,但由于密码的复杂性受到限制,因此通常不建议使用此方法。与其他身份验证的方法相比,自动脚本相对容易攻破正常长度的密码。
最为推荐的选择是使用SSH密钥对。SSH密钥对是非对称密钥。
公钥用于加密只能用私钥解密的数据。公钥可以自由共享,因为没有从公钥中导出私钥的方法。
验证流程如下:
可以看到,密钥的不对称性允许服务端使用公钥加密消息给客户端。然后,客户端可以通过正确解密消息来证明它拥有私钥。
笔者本科专业是信息安全,不过毕业后并没有从事安全行业,工作4年课堂上学习的知识基本忘的差不多了。
而SSH算是工作中最常用到的东西之一,其工作原理涉及不少密码学的东西。
写这篇博文,一是希望能帮助读者了解SSH,二也是希望自己能捡起一些专业知识。在互联网/软件相关行业里,不论是否从事安全工作,了解这些东西都是很有必要的。
㈤ 常用的加密算法有哪些
对称密钥加密
对称密钥加密 Symmetric Key Algorithm 又称为对称加密、私钥加密、共享密钥加密:这类算法在加密和解密时使用相同的密钥,或是使用两个可以简单的相互推算的密钥,对称加密的速度一般都很快。
分组密码
分组密码 Block Cipher 又称为“分块加密”或“块加密”,将明文分成多个等长的模块,使用确定的算法和对称密钥对每组分别加密解密。这也就意味着分组密码的一个优点在于可以实现同步加密,因为各分组间可以相对独立。
与此相对应的是流密码:利用密钥由密钥流发生器产生密钥流,对明文串进行加密。与分组密码的不同之处在于加密输出的结果不仅与单独明文相关,而是与一组明文相关。
DES、3DES
数据加密标准 DES Data Encryption Standard 是由IBM在美国国家安全局NSA授权下研制的一种使用56位密钥的分组密码算法,并于1977年被美国国家标准局NBS公布成为美国商用加密标准。但是因为DES固定的密钥长度,渐渐不再符合在开放式网络中的安全要求,已经于1998年被移出商用加密标准,被更安全的AES标准替代。
DES使用的Feistel Network网络属于对称的密码结构,对信息的加密和解密的过程极为相似或趋同,使得相应的编码量和线路传输的要求也减半。
DES是块加密算法,将消息分成64位,即16个十六进制数为一组进行加密,加密后返回相同大小的密码块,这样,从数学上来说,64位0或1组合,就有2^64种可能排列。DES密钥的长度同样为64位,但在加密算法中,每逢第8位,相应位会被用于奇偶校验而被算法丢弃,所以DES的密钥强度实为56位。
3DES Triple DES,使用不同Key重复三次DES加密,加密强度更高,当然速度也就相应的降低。
AES
高级加密标准 AES Advanced Encryption Standard 为新一代数据加密标准,速度快,安全级别高。由美国国家标准技术研究所NIST选取Rijndael于2000年成为新一代的数据加密标准。
AES的区块长度固定为128位,密钥长度可以是128位、192位或256位。AES算法基于Substitution Permutation Network代换置列网络,将明文块和密钥块作为输入,并通过交错的若干轮代换"Substitution"和置换"Permutation"操作产生密文块。
AES加密过程是在一个4*4的字节矩阵(或称为体State)上运作,初始值为一个明文区块,其中一个元素大小就是明文区块中的一个Byte,加密时,基本上各轮加密循环均包含这四个步骤:
ECC
ECC即 Elliptic Curve Cryptography 椭圆曲线密码学,是基于椭圆曲线数学建立公开密钥加密的算法。ECC的主要优势是在提供相当的安全等级情况下,密钥长度更小。
ECC的原理是根据有限域上的椭圆曲线上的点群中的离散对数问题ECDLP,而ECDLP是比因式分解问题更难的问题,是指数级的难度。而ECDLP定义为:给定素数p和椭圆曲线E,对Q=kP,在已知P,Q 的情况下求出小于p的正整数k。可以证明由k和P计算Q比较容易,而由Q和P计算k则比较困难。
数字签名
数字签名 Digital Signature 又称公钥数字签名是一种用来确保数字消息或文档真实性的数学方案。一个有效的数字签名需要给接收者充足的理由来信任消息的可靠来源,而发送者也无法否认这个签名,并且这个消息在传输过程中确保没有发生变动。
数字签名的原理在于利用公钥加密技术,签名者将消息用私钥加密,然后公布公钥,验证者就使用这个公钥将加密信息解密并对比消息。一般而言,会使用消息的散列值来作为签名对象。
㈥ 路由器密钥哪种加密好
WEP(Wired Equivalent Privacy,有线等效加密)用来保护无线局域网中的授权用户所交换的数据的机密性,防止这些数据被随机窃听。WEP使用RC4加密算法来保证数据的保密性,通过共享密钥来实现认证,理论上增加了网络侦听,会话截获等的攻击难度,虽然WEP104在一定程度上提高了WEP加密的安全性,但是受到RC4加密算法、过短的初始向量和静态配置密钥的限制,WEP加密还是存在比较大的安全隐患。
WEP加密方式可以分别和Open system、Shared key链路认证方式使用。
1.采用Open system authentication方式:此时WEP密钥只做加密,即使密钥配的不一致,用户也是可以上线,但上线后传输的数据会因为密钥不一致被接收端丢弃。
2.采用Shared key authentication方式:此时如果双方密钥不一致,客户端就不能通过Shared key认证,无法上线。也就是说,当WEP和Shared key认证方式配合使用时,WEP也可以作为一种认证方法。
<1> open authentication比 shared-key authentication安全 <2> WEP open authentication是通过比较CRC值来判断数据的合法性。
就目前来说WPA2-PSK 安全性交高,但还是会被破解的
要加了MAC限制 SSID 不要广播
㈦ 对称加密算法的加密算法主要有哪些
1、3DES算法
3DES(即Triple DES)是DES向AES过渡的加密算法(1999年,NIST将3-DES指定为过渡的加密标准),加密算法,其具体实现如下:设Ek()和Dk()代表DES算法的加密和解密过程,K代表DES算法使用的密钥,M代表明文,C代表密文,这样:
3DES加密过程为:C=Ek3(Dk2(Ek1(M)))
3DES解密过程为:M=Dk1(EK2(Dk3(C)))
2、Blowfish算法
BlowFish算法用来加密64Bit长度的字符串。
BlowFish算法使用两个“盒”——unsignedlongpbox[18]和unsignedlongsbox[4,256]。
BlowFish算法中,有一个核心加密函数:BF_En(后文详细介绍)。该函数输入64位信息,运算后,以64位密文的形式输出。用BlowFish算法加密信息,需要两个过程:密钥预处理和信息加密。
分别说明如下:
密钥预处理:
BlowFish算法的源密钥——pbox和sbox是固定的。我们要加密一个信息,需要自己选择一个key,用这个key对pbox和sbox进行变换,得到下一步信息加密所要用的key_pbox和key_sbox。具体的变化算法如下:
1)用sbox填充key_sbox
2)用自己选择的key8个一组地去异或pbox,用异或的结果填充key_pbox。key可以循环使用。
比如说:选的key是"abcdefghijklmn"。则异或过程为:
key_pbox[0]=pbox[0]abcdefgh;
key_pbox[1]=pbox[1]ijklmnab;
…………
…………
如此循环,直到key_pbox填充完毕。
3)用BF_En加密一个全0的64位信息,用输出的结果替换key_pbox[0]和key_pbox[1],i=0;
4)用BF_En加密替换后的key_pbox,key_pbox[i+1],用输出替代key_pbox[i+2]和key_pbox[i+3];
5)i+2,继续第4步,直到key_pbox全部被替换;
6)用key_pbox[16]和key_pbox[17]做首次输入(相当于上面的全0的输入),用类似的方法,替换key_sbox信息加密。
信息加密就是用函数把待加密信息x分成32位的两部分:xL,xRBF_En对输入信息进行变换。
3、RC5算法
RC5是种比较新的算法,Rivest设计了RC5的一种特殊的实现方式,因此RC5算法有一个面向字的结构:RC5-w/r/b,这里w是字长其值可以是16、32或64对于不同的字长明文和密文块的分组长度为2w位,r是加密轮数,b是密钥字节长度。
(7)共享密匙加密算法扩展阅读:
普遍而言,有3个独立密钥的3DES(密钥选项1)的密钥长度为168位(三个56位的DES密钥),但由于中途相遇攻击,它的有效安全性仅为112位。密钥选项2将密钥长度缩短到了112位,但该选项对特定的选择明文攻击和已知明文攻击的强度较弱,因此NIST认定它只有80位的安全性。
对密钥选项1的已知最佳攻击需要约2组已知明文,2部,2次DES加密以及2位内存(该论文提到了时间和内存的其它分配方案)。
这在现在是不现实的,因此NIST认为密钥选项1可以使用到2030年。若攻击者试图在一些可能的(而不是全部的)密钥中找到正确的,有一种在内存效率上较高的攻击方法可以用每个密钥对应的少数选择明文和约2次加密操作找到2个目标密钥中的一个。