zoukankan      html  css  js  c++  java
  • 08.openssl非对称加密算法指令

    8.1 非对称加密算法指令概述
    a.非对称加密算法也成为公开密钥算法,其解决了对称加密算法密钥需要预分配的难题。
    非对称加密算法特点:
    a1.加密密钥和解密密钥不相同
    a2.密钥对中的一个密钥可以公开(称为公开密钥)
    a3.根据公开密钥很难推算出私钥密钥
    b.数字签名和密钥交换对公开密钥算法区别
    密钥交换算法使用公开密钥进行加密,使用私人密钥进行解密;而数字签名算法则使用私人密钥进行加密,使用公开密钥进行解密。
    密钥交换算法要求从加密密钥(公开密钥)很难推算出解密密钥(私人密钥);而数字签名算法则要求从解密密钥,很难推算出加密密钥
    8.2 RSA算法指令
    RSA算法应用一般包括两个方面:密钥交换和数字签名。
    RSA密钥加密的特点是输入数据不能超过RSA密钥的长度,而输出数据长度总是RSA密钥的长度,而输出输出长度总是与RSA密钥长度相同,所以对于量大的数据,一般需要预先进行数据分割。
    RSA数字签名,通常是跟信息摘要函数一起使用,这样既可以一次完成加密,比如对于一个大文件,可以先使用SHA1或者MD5算法转换成160位或者128位的摘要信息,使用同样的信息摘要算法对该文件进行运算得到信息摘要值,然后使用RSA算法(通常是公钥)进行解密得到签名方的信息摘要值,对比新计算的信息摘要值和解密得到的信息摘要值。
    rsautl指令 :RSA算法加密和解密
    genrsa指令:安全生成安全RSA密钥对。
    8.1.1 生成RSA密钥
    参数
    功能
    out
    输出文件选项
    passout
    口令输出选项
    des,des3,idea,
    aes128,aes192,
    aes256
    加密算法类型选项
    f4,3
    指数选项
    numbits
    密钥长度选项
    指令参数:
    8.1.2 管理RSA密钥
    a.密钥格式选项inform和outform
    数据格式
    openssl定义
    指令字符串参数
    DER编码
    FORMAT_ANS1
    d
    PEM编码
    FORMAT_PEM
    p
    文件格式
    FORMAT_TEXT
    t
    NET编码
    FORMAT_NETSCAPE
    n
    SGC编码
    FORMAT_IISSGC
     
    PKCS#12编码
    FORMAT_PCKS12
    pkcs12、p12或者1
    ENGINGE格式
    FORMAT_ENGINE
    e
    b.信息输出项text、noout和modulus
    使用text选项将会以明文的形式输出密钥各个参数的值,使用modulus选项专门输出模数值
    c.使用RSA密钥
    指令参数:
    d.操作类型选项signverifyencryptdecrypt
    rsautl指令提供RSA算法的操作
    sign:执行数字签名操作
    verify:数字签名和验证操作
    encrypt:表示执行数据加密操作
    decrypt:表示执行数据解密操作
    e.数据补齐方式选项pkcsssloaep和raw
    8.3 DH算法指令
    DH算法(Diffie-Hellman)是最早提出的一种用于密钥交换的公开密钥算法,该算法目前已经广发应用于各种安全协议。
    8.3.1 生成DH算法参数
    指令:
    a.gendh指令格式
    DH算法参数包括本原元g和模n,openssl提供的指令gendh和dhparam都可以生成DH参数,并可以经过编码保存在文件中。
    b.输出文件选项out
    out选项制定了DH算法参数输出和保存的文件名,可以是标准输出设备。
    c.本原元g选项2和5
    DH算法参数指令的主要目的是产生公共模数n,而本原元g是指定的,目前常用的本原元有2和5。
    d.随机数文件选项rand
    rand选项指定了产生随机数使用的随机数种子文件,改文件一般来说可以为任何类型的文件。
    e.密钥长度选项numbits
    DH密钥长度一句DH算法参数的长度而定,所以,生成的DH算法参数的长度决定DH密钥的长度。
    8.3.2 管理DH算法参数
    a.输入和输出文件选项in和out
    b.DH参数检测选项check
    DH参数文件存放一段时间之后,你如果对该文件产生怀疑,可以使用check选项对其中DH参数进行检查。check检查四个方面:模数是否正确,模式是否安全,本原元g是否正确及本原元是否合适。
    指令:
    8.4 DSA算法指令
    DSA算法是美国的国家标准数字签名算法,他只有数字签名功能,而没有密钥交换的功能。
    8.4.1 生成和管理DSA密钥参数
    a.dsaparam指令格式
    8.4.2 生成DSA密钥
    a.gendsa指令格式
    DSA密钥是在DSA密钥参数的基础上产生的,一对DSA密钥可以包含三个部分:
    DSA密钥参数(p、q和g)、DSA私钥和DSA公钥。DSA密钥参数是公开的,甚至可以为一组网络用户所共享,即这组网络用户使用相同的DSA密钥参数生成各自的DSA密钥对。
    8.4.3 管理DSA密钥
    a.dsa指令格式
    用户经常会有各种奇怪的需求和想法,尤其是为了加强安全性,对DSA密钥也一样。
    输入和输出格式选项inform和outform
    输入和输出密钥类型选项pubin和puout.
    输入和输出文件选项in和out
    输入和输出口令选项passin和passout
    8.5 本章小结
    RSA密钥算法的密钥生成、管理和使用方法。
    DH公开密钥算法,DH算法是一种专门用于密钥交换的算法。
    DSA非对称加密算法,专门用于数字签名的非对称加密算法。
  • 相关阅读:
    awk用法
    cut用法
    优化Linux下的内核TCP参数以提高系统性能
    android开发_LayerlistDrawable(层叠图片)在进度条中的应用
    android开发_文本按钮 与 输入框
    android开发_ViewGroup(组视图)-- 五大布局
    android开发_view和view属性
    android开发_Eclipse新建项目+新建模拟器
    String,StringBuilder,tringBuffer
    zeros()和ones()和eye()
  • 原文地址:https://www.cnblogs.com/aixiaoxiaoyu/p/8407139.html
Copyright © 2011-2022 走看看