加密和安全

 

   对称密码
对称密码,就是普通的key,两边是相等的
不管加不加密,用什么算法生成,总之两边是相等的。


    非对称密码
非对称密码,典型的如公钥私钥
原理:
  • 1。公钥和私钥都是SERVER自己的
  • 2。放出公钥给client端
  • 3。client端对数据用公钥加密 后,将加密数据发往SERVER
  • 4。SERVER收到加密数据后用私钥解密
   即公钥是加密密钥,私钥是解密密钥,client端用公钥加密数据,server端用私钥解密数据
  • 5。安全性——黑客即使截获了公钥,也不可能解密


DES算法
   DES算法全称为Data Encryption Standard,即数据加密算法
DES是典型的对称密码算法

    DES算法原理:
64位的明文输入块(DATA)----- 64位密钥 ---变为64位的密文输出块
所使用算法为初始置换或逆置换

   DES算法的入口参数有三个:
Key     8字节 密钥,共64位
Data     8字节 明文数据,共64位
是要被加密或被解密的数据
Mode    工作方式,有两种:
加密或解密



    RSA
RSA算法的名字 以发明者的名字命名: Ron Rivest, AdiShamir 和Leonard Adleman
RSA是一种非对称密码算法
是第一个既能用于数据加密也能用于数字签名的算法。


    RSA的数学依据:大数分解
RSA的依赖于大数分解。
RSA公钥和私钥都是两个大素数( 大于 100个十进制位)的函数
RSA被推崇的原因: 从一个密钥和密文推断出明文的难度等同于分解两个大素数的积
按现在的计算机技术水平, 要破解目前采用的1024位RSA密钥,需要上千年的计算时间


    RSA是被研究得最广泛的公钥算法, 从提出到现在已近二十年,经历了各种攻击的考验,逐渐为人们接受。
 普遍认为是目前最优秀的公钥方案之一。
 RSA的安全性依赖于大数的因子分解,但并没有从理论上证明破译RSA的难度与大数分解难度等价。


    RSA密钥对(公钥和似钥)的产生:
  •     素数积
先选择两个大素数,p 和q
计算乘积n:
n = p * q
  •     加密密钥
随机选择一个加密密钥e,要求满足: e 和 ( p - 1 ) * ( q - 1 ) 互质
  •   解密密钥
利用Euclid 算法计算解密密钥d ,要求满足:
e * d = 1 ( mod ( p - 1 ) * ( q - 1 ) )
  n和d也要互质。
  • 公钥和私钥
e和n是公钥,用于加密
d是私钥,用于解密
(两个素数p和q不再需要,应该丢弃,不要让任何人知道)



   RSA的速度
由于进行的都是大数计算,使得RSA最快的情况也比DES慢上100倍
无论是软件还是硬件实现。速度一直是RSA的缺陷。
一般来说只用于少量数据加密(如口令加密,证书加密),无法象DES那样广泛应用于传输加密和大文件加密
 有一种提高RSA速度的建议是使公钥e取较小的值,这样会使加密变得易于实现,速度有所提高。但这样作是不安全的




     什么是数字证书
    是由认证中心(CA)颁发的。
  •     证书所有者的信息
  •     证书所有者的公钥
  •     证书颁发机构的签名 (用机构的私钥(与前面的公钥没关系)制成)
          相当于CA对公钥的认证和背书



    一个标准的X.509数字证书包含以下一些内容:
  •     序列号
        每个证书都有一个唯一的证书序列号;
  •     版本
  •     证书的有效期
  •     签名算法
  •     证书使用者的名称及其公钥 的信息。
  •    发行机构名称(命名规则一般采用X.500格式)及其用发行机构的私钥制成的签名

     数字证书颁发过程:
  •     首先用户(服务器)自己产生自己的密钥对(公钥/私钥)
  •     只将公钥及部分个人身份信息传送给认证中心CA。
  •     CA在核实身份后,CA基于收到的公钥给用户生成一个数字证书,该证书包含:
    用户的个人信息
    他的公钥信息
    认证中心的签名信息
  •  用户使用自己的数字证书(公钥)进行相关的各种活动(电子商务,网上银行等)


数字证书的实质就是(被CA认证和背书的)公钥
数字证书上面有数字签名,他是由CA自己的密钥生成(和用户的公钥无关), 实际是CA(相当于权威机构)对该公钥的第三方认证
客户用证书也即公钥对数据加密 ,把加密后的数据传给服务器, 服务器见到数字签名后(等于有认可了第三方认证),才去找对应的私钥,对收到的信息解密

总之,数字证书技术是普通不对称加密(公钥/私钥)的权威机构承诺版


    什么是CA?
CA(Certificate Authority)————认证中心,专门负责签发和管理数字证书
CA采用PKI(Public Key Infrastructure)公钥架构技术,在PKI技术中,最常用一种算法是RSA算法
目前国内的CA认证中心主要分为区域性CA认证中心和行业性CA认证中心


   实际的颁发过程
  • 1。机构接受申请者的申请,审核通过,机构为申请者生成密钥对
  • 2。机构用申请者的公钥 和申请者的其他个人信息,加上机构用自己密钥生成的签名 ,共同生成一个数字证书
  • 3。将证书(公钥+签名)发给申请者


   数字证书的使用:
  •     客户端 IE支持
  •     服务器端,多数服务器软件如apache、Microsoft、Oracle,以及IBM、SUN等公司提供的服务器产品都支持数字证书的应用
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值