当前位置: 首页 > news >正文

绿色软件下载网站推荐电影网站logo设计

绿色软件下载网站推荐,电影网站logo设计,阜阳北京网站建设,中冶东北建设网站非对称加密算法也称为公开密钥算法#xff0c;其解决了对称加密算法密钥需要预分配的难题#xff0c;使得现代密码学的研究和应用取得了重大发展。非对称加密算法的基本特点如下: 加密密钥和解密密钥不相同;密钥对中的一个密钥可以公开(称为公开密钥);根据公开密钥很难推算出…非对称加密算法也称为公开密钥算法其解决了对称加密算法密钥需要预分配的难题使得现代密码学的研究和应用取得了重大发展。非对称加密算法的基本特点如下: 加密密钥和解密密钥不相同;密钥对中的一个密钥可以公开(称为公开密钥);根据公开密钥很难推算出私人密钥。根据非对称加密算法的这些特点我们可以使用非对称加密算法进行数字签名、密钥交换及数据加密等。但是由于非对称加密算法的加密速度相对于对称加密算法来说慢很多所以一般不直接用于大量数据的加密而是用于数据加密密钥的交换和数字签名。并非所有非对称加密算法都可以同时用于密钥交换和数字签名根据特点不一样有的只能用于密钥交换有的只能用于数字签名而有的可能两者都可以。数字签名和密钥交换对公开密钥算法的要求有一定的区别主要有如下两点。 密钥交换算法使用公开密钥进行加密使用私人密钥进行解密;而数字签名算法则使用私人密钥进行加密使用公开密钥进行解密。密钥交换算法要求从加密密钥(公开密钥)很难推算出解密密钥(私人密钥);而数字签名算法则要求从解密密钥(公开密钥)很难推算出加密密钥(私人密钥)。目前来说常用的非对称加密算法有RSA、DH和DSA三种。其中RSA既可以用于密钥交换也可以用于数字签名因为它能够同时满足上述两种不同的要求。DH算法一般来说只能用于密钥交换而DSA算法则是专用于数字签名的算法。OpenSSL对于上述三种方法都支持在指令里面也提供了相当丰富的应用这些应用包括DH密钥参数的生成和解析DSA密钥参数的生成和解析DSA密钥生成RSA密钥生成和使用RSA密钥进行加密和解密。如表所示 是目前OpenSSL支持的非对称加密算法指令。 RSA 同时具备签名和密钥交换特性的公开密钥算法RSA加密的特点是输入数据不可以超过RSA密钥的长度(利用不同的补齐方式能够加密的长度不一样)输出数据的长度和RSA密钥长度相同数据量很大的需要预先分隔但是解密的时候输入的密文数据需要和密钥长度相等如果密文长度很大对每一块分别进行解密再将所有的数据链接起来可以得到明文签名的时候先使用信息摘要函数比如(MD5,SHA1)生成160位或者128位文件的摘要信息再使用RSA算法对摘要信息进行加密完成文件的数字签名过程验签的时候使用相同的摘要算法生成文件的摘要信息 和 使用RSA公钥解密得到的签名方的摘要信息 进行比对Openssl案例rsautl 和 dgst  genrsa 指令格式 生成RSA密钥参数 -f4 和 -3 得出 genrsa可以生成基于不同指数的RSA密钥并可以使用不同的对称密钥对输出的密钥进行保护还可以使用第三方加密软件 加密硬件设备替代OpenSSL原本的库生成RSA密钥输出文件选项 out out指定密钥输出的文件名输出的是RSA私钥OpenSSL输出的RSA私钥会包含公钥的模数n和指数e在需要使用公钥的时候需要从私钥中读取模数n和指数e并进行格式的转换虽然RSA密钥是成对的包含私钥和公钥。其中公钥包含了模数n和指数e私钥包含了d。 OpenSSL输出的文件名和后缀并没有特殊的含义可以取任意的名字 口令输入选项 passout 输入密钥文件的加密口令和Openssl通用口令输入的格式是相同的输入源可以为指令输入、文件、提示输入、环境变量等等如果使用的时候没有输入加密口令但是指定了需要使用加密算法的选项程序会会在指令行界面提示输入加密口令如果不需要加密就可以忽略 加密口令除非是测试否则输入的加密口令一定要足够复杂、程度越长越好 加密算法的类型选项 des 3des idea aes128 aes192 aes256 使用对称加密算法保护RSA私钥算法的类型des 3des idea aes128 aes192 aes256加密的模式都是 CBC加密的密钥和初始向量都是从提供的口令中提取出来的 指数参数 f4 和 3 RSA算法的指数e 是公开的参数属于公钥参数中的一部分常用的数值有 3、17、65537OpenSSL支持 3 和 65537很多硬件设备仅仅支持 65537如果使用65537作为指数数值就可以使用或省略 f4因为默认是65537使用-3选项会指定指数数值为3二者不可以同时使用 密钥的长度选项 numbits 密钥长度影响加密的强度 强度与长度成正比与加密时间成正比原则密钥的使用周期越长 密钥要求的长度越长 其他选项 使用engine指定第三方软件加密库或者硬件加密设备目前常常使用硬件设备来生成和存放RSA密钥比如smart card、USBKey、加密机等硬件设备他们具备自己的算法处理芯片具备RSA算法的加密、解密、签名和验证等功能使得RSA私钥永远不需要导出硬件设备就可以正常使用其安全性要高于存储在计算机磁盘engine选项后面是engine ID这个ID是编写engine接口的时候提供的一般是一个描述性的字符串只有正确加载engine设备和对应的驱动程序才可以正确使用使用engine -t 测试目前有效的engine设备并获取对应的ID名称随机数文件选项rand提供产生随机数的参考种子文件可以进一步增加生成RSA密钥的随机性增加安全性如果没有指定程序会从标准输出设备的状态读取信息作为随机数的种子随机数文件可以为任意类型的文件也可以调用engine设备的随机数产生函数 应用实例 管理RSA密钥 RSA指令格式 具体使用的时候需要对密钥进行一些处理比如重新设置加密口令或者对称加密方法、解析私钥输出公钥参数、格式转换使用rsa指令完成密钥管理的功能* 密钥学常用的密钥管理涉及的是安全存放和安全传输 和这里的密钥管理还存在很大的差异RSA还可以通过engine处理存储在硬件设备中的私钥密钥的格式转换 inform和outform 早期的Openssl只提供了REM、DER和NET三种类型如果输入的是RSA私钥支持的格式包括DER编码格式、PEM编码格式、PKCS#12编码格式、Netscape编码格式、旧版的IISSGC编码格式及ENGINE格式。如果输入的是RSA公钥则比RSA私钥少支持一种PKCS#12格式这是因为PKCS#12格式一般用来封装证书和私钥而不直接用于封装公钥。表格所示 是0.9.7版本支持的密钥格式最新的需要参考官网指令字符串参数是只在inform或outform选项后面填写的参数它们一般对大小写不敏感比如对于DER编码可以指定为“-inform D”或者“-inform d”它们是相同的。如果指定密钥的输入格式为ENGINE那么密钥输入文件(in选项指定的文件)的内容及其含义依具体的Engine接口代码而定可能是一个ID值也可能是一个公钥文件甚至可能毫无意义。rsa指令支持的密钥输出格式(outform选项指定)比较少仅包含DER编码格式、PEM编码格式、NET编码格式及SGC编码格式。其中SGC编码格式的指定需要使用-sgckey选项。输入和输出文件选项in和out in 指定了输入密钥的文件的名称默认情况下是RSA私钥文件如果参数指定了 -pubin 即输入文件是包含了RSA的公钥的文件文件的具体格式可以使用-inform选项指定如果在inform选项中指定输入的文件格式是ENGINE格式并且使用了engine选项那么输入文件的内容和意义视具体的Engine接口代码而定。out指定了输出的文件的名称默认情况输出的是RSA私钥但是使用了-pubout选项或者输入为公钥输出内容是RSA的公钥使用noout选项本选项会被简单的忽略掉 输入和输出口令选项 passin 和 passout 加密保护使用的口令包含加密保护使用的密钥和初始向量因此使用RSA的时候也需要输入对应的口令passin选型指定了获取RSA私钥解密口令的源passout选项指定了输出RSA私钥时进行加密的口令的源如果输入和输出的是公钥那么passout选项会被简单的忽略如果输入的密钥文件需要口令进行解密而没有使用pasin选项提供口令那么程序会在指令行提示用户输入解密口令。 加密算法选项 跟genrsa指令一样rsa指令也提供了六种常用的分组加密算法用于加密RSA私钥这些算法包括DES、DES3、IDEA、128位AES、192位AES和256位AES算法。如果输入使用了这些加密选项之一但是却没有使用pasout提供加密口令那么将会在指令行提示输入加密口令。如果输入的是公钥或者输出的是公钥文件那么该加密选项将会被忽略。如果使用engine选项指定了有效的Engine设备而Engine设备正好支持选定的加密算法那么将采用Engine设备提供的加密算法加密生成密钥而不再是使用OpenSSL算法库进行密钥的加密。 信息输出选项 text、noout、modules 使用text选项将会以明文的形式输出密钥各个参数的值使用modulus选项则专门输出模数值如果使用了noout选项那么就不会输出任何密钥到文件中即便使用了out选项指定了输出文件也会被忽略。 密钥输入和输出的类型的选项 pubin和pubout 默认情况下输入文件应该是RSA私钥文件如果要输入的是RSA公钥文件则应该使用-pubin选项该选项没有参数如果输入的是RSA私钥想得到一个与之对应的公钥需要指定pubout任何和密钥加密相关的选项都不会忽略比如passout、des等。因为公钥是公开的不能泄密也不需要对其进行保护 使用第三方加密库或者硬件密钥 使用engine选项指定要使用的第三方加密库或者硬件。engine选项后面的参数是Engine的ID通常是一个简短的描述字符串由相应的Engine接口代码决定。使用Engine选项后rsa指令中两个部分可能受到影响。首先是输入密钥如果在inform中也指定了输入密钥格式是ENGINE格式那么指令将试图从Engine设备中加载密钥而不是直接从文件中读取密钥当然这时候in选项提供的文件可能包含了一些加载密钥需要的有用信息也可能是Engine设备里面RSA私钥对应的公钥参数。其次如果选定的密钥加密算法在Engine中支持那么将会使用Engine中的密钥加密算法加密密钥而不再是使用OpenSSL默认的算法库加密RSA私钥。 其他选项 check选项使用后指令将会检测输入RSA密钥的正确性和一致性。如果输入或者输出的密钥是SGC格式那么应该使用sgckey选项进行格式的转换和调整。SGC选项目前一般不使用它是一种经过修改的NET格式用于旧版本的IS服务器 例子 使用RSA密钥 rsautl指令格式 由于rsautl指令的签名功能没有使用信息摘要算法所以不能用来实现对文件或者其他大量的数据体进行真正意义上的数字签名而只能对符合表的输入数据长度条件的小量数据进行数字签名操作也就是RSA私钥加密操作。OpenSSL的rsautl指令的格式如下:数据输入和输出文件选项in和out in选项指定了存储输入数据的文件选项需要注意的是如果执行的是加密操作(sign或者encrypt)那么输入数据的长度一定要符合输入数据长度的要求否则rsautl指令将不能成功执行。如果是解密操作(verify或者decrypt)那么输入数据长度总是跟RSA密钥长度相同。out选项指定了接收输出数据的文件选项对于rsautl指令来说如果是加密操作(sign或者encrypt)那么输出数据长度总是跟密钥长度相同比如对于1024位的RSA密钥输出数据长度就总是128字节(1024位)。默认的输入输出设备是标准输入和输出设备。  操作类型选项sign、verify、encrypt和decrypt rsautl指令通过inkey选项指定加密或解密操作中要使用的密钥的存储文件。默认情况下无论是上述四种操作中的哪一种输入的密钥都应该为PEM格式的RSA私钥。实际上因为OpenSSL的PEM编码RSA私钥里面包含了公钥参数所以即便在执行公钥加密或者解密操作时输入的是RSA私钥那么也能够正确执行因为指令程序会自动使用RSA私钥里面的公钥参数进行相应的公钥操作。RSA密钥的输入格式可以是多样的默认的是PEM编码格式其具体的格式可以通过keyform选项来指定keyform选项支持的参数可以上表。目前来说如果输入的是RSA私钥rsautl指令支持的格式包括DER编码格式、PEM编码格式、PKCS#12编码格式、Netscape编码格式、旧版的IISSGC编码格式及ENGINE密钥格式。如果输入的是RSA公钥则比RSA私钥少支持一种PKCS#12格式。如果keyform指定输入的密钥是ENGINE格式(-keyfrome)那么inkey指定的密钥文件内容及意义要根据具体的Engine接口而定可能是一个密钥ID字符串可能是一个公钥文件也可能是没有任何意义的文件。如果你在执行公钥解密(verify)操作或者公钥加密(encrypt)操作那么可以从nkey参数输入一个公钥而不是私钥使用pubin选项就可以告诉指令程序将要输入的文件是公钥文件。如果你希望使用一个证书里面的公钥文件那么可以使用-certin选项告诉指令程序inkey选项指定将要输入的文件是一个证书文件。同样证书文件的格式可以通过keyform选项来指定目前支持的证书格式包括DER编码、PEM编码、NET编码和PKCS#12编码格式四种。 数据补齐方式选项pkcs、ssl、oaep和raw 所谓数据补齐方式是指在利用RSA密钥进行数据加密的时候总是要求被加密数据长度跟RSA密钥长度相同但是输入数据通常不是正好跟RSA密钥长度相同所以需要将不同长度的被加密数据补齐成跟密钥长度相同的数据然后再进行加密;当然如果数据超出RSA密钥长度则需要自己预先分割。OpenSSL目前支持的补齐方式包括PKCS#1v1.5规定的方式、SSL协议规定的补齐方式、OAEP补齐方式和不使用补齐的方式。默认的数据补齐方式是PKCS#1v1.5。PKCS#1v1.5补齐方式是目前使用最广泛的补齐方式如果要用PKCS#1v1.5补齐方式那么可以在指令中使用-pkcs选项。SSL协议规定的补齐方式是PKCS#1v1.5的修订版本质上区别不大使用-ssl选项调用该种方式。这两种基于PKCS#1v1.5的补齐方式都要求每次加密输入的实际数据长度小于密钥长度-11字节。OAEP方式是PKCS#1v2.0规定的新补齐方式对于新的应用程序一般来说推荐这种新的方式。要用这种方式在指令中使用-oaep选项。该种补齐方式要求每次加密输入的数据长度不能超过密钥长度-41字节的长度。最后如果你不愿意使用任何补齐方式那么-raw选项是你的选择。但是如不使用补齐方式数据长度必须跟RSA密钥长度相同。需要注意的是如果执行的是签名操作(RSA私钥加密)那么只能使用PKCS#1v1.5的补齐方式或者不使用补齐方式。 engine选项 与其他OpenSSL指令一样rsautl指令也提供了对Engine的支持可以通过Engine机制使用第三方算法库或者硬件设备而不是OpenSSL本身的RSA算法进行加密、解密、签名和验证信息。engine选项后面应该给出有数的Engine设备ID该ID一般是一个简短的描述字符串由Engine接口代码决定。在该选项给定了有效的Engine接口设备之后rsautl有两个方面会受到影响。首先是RSA密钥的获取会受到影响。如果在使用了engine选项后keyform中指定了密钥的输入格式是Engine格式那么指令将试图从Engine设备中获取加密密钥。这时候inkey选项指定的密钥文件内容就根据具体的Engine接口要求而定。其次如果使用了engine选项而且Engine设备支持RSA的公钥加密、私钥解密、私钥加密和公钥解密的函数的全部或其中一部分那么就会启用Engine设备执行加密或者解密的操作而不是使用OpenSSL的RSA算法。当然如果Engine不支持或者只支持其中的一部分加密操作那么不支持的部分就会调用OpenSSL算法库本身的RSA加密操作。 其他选项 如果你希望输出数据的十六进制的解析信息那么可以使用hexdump选项来实现。使用asn1 parse可以看到使用ASN.1编码(事实上一般是DER编码)的数据对象的明文解析和对应的编码数据该选项在跟verify选项一起使用的时候比较有用可以用来查看验证的签名的信息。上述两个选项一般来说在执行解密操作的时候意义更大一些否则只是一些看起来没有意义的乱码。有时候你可能想把输入的数据颠倒顺序后再进行加密或解密操作比如把“123456789”变成“987654321”那么可以使用rev选项实现你这个奇怪的想法。也就是说如果你使用了rev选项虽然你输入的数据是“123456789”事实上你加密的数据是“987654321”。 例子
http://wiki.neutronadmin.com/news/285699/

相关文章:

  • 网站建设公司国内技术最强dede珠宝商城网站源码
  • 阿里云建站视频教程福州做网站的公司有哪些
  • 有人做网站推广吗HTML转换WordPress文件
  • 普宁17网站一起做淘宝有什么网站可以做问卷调查
  • 保定建设网站及推广怎么生成网址链接
  • 北京网站设计公司cg成都柚米科技15帮别人发广告赚钱平台
  • 苏州专业网站建设开发公司做企业网站一般多少钱
  • 福建省住房和建设厅网站138ip查询网域名解析
  • 台州网站建设惠店科技推广模式怎么写
  • 河北城乡和住房建设厅官方网站泰安城市建设吧
  • 视频网站开发方法python网页版编程
  • 免费做网站教程软件公司网站模板
  • 网站源代码查看竞网做的网站怎么
  • 新乡商城网站建设哪家专业16种营销模式
  • 网站备案可以国际域名小程序图片制作
  • 做网站一定要psd吗自己开发app挣钱吗
  • 珠海网站制作公司传销网站开发系统维护
  • 信阳工程建设一体化平台网站互联网企业投诉服务平台
  • 扶贫网站开发的目的是什么免费的网站制作
  • 只用html5做网站自己建网站做那个模块好
  • 当当网网站建设需求分析网站源码是什么意思
  • 正规网站建设加盟合作网络推广的方式有哪些
  • 重庆网站优化建设做决定网站
  • 网站建设报告心得体会百度提交入口网址
  • 东莞市长安网站建设公司衡阳网站建设icp备
  • 阿里云做哪里查网站微官网是小程序吗
  • 网站的flashseo关键词优化外包公司
  • 网站建设 电商周易网站建设
  • 网站访客记录 是后台做吗网站维护是什么职业
  • 网站菜单样式柳州360优化