当前位置:首页 » 密码管理 » 加密的概念

加密的概念

发布时间: 2022-12-21 16:24:21

㈠ 能帮我详细的解释一下静态加密、动态加密和硬件加密是什么概念么举例更好!

静态加密技术是指在加密期间,待加密的电子文件处于已存在但未使用状态,操作者通过输入密码或密钥证书或数字签名等方式,对电子文件进行加密。加密文件使用时,需要操作者通过输入密码或密钥证书或数字签名等解密信息,在得到明文后才能使用。目前市场上许多应用系统中(如WORD的“加密文件”功能等)的口令或密钥证书功能,就属于这种加密方式。
动态加密技术,也称为实时加密或透明加密技术,是指电子文件在使用过程中,如新建文件、编辑文件,计算机自动对电子文件进行加密操作,无需操作者对电子文件进行人工干预。经过动态加密的电子文件,对于“合法”操作者来说,无需对电子文件进行解密即可使用,访问或操作加密文件与访问未加密电子文件操作动作相同。因此,对于“合法”操作者,经过动态加密的电子文件是“透明”的,好像没有进行过加密。而对“非法”操作者,即使通过其它渠道得到这些电子文件,由于电子文件经过动态加密,使其无法使用。即使能够打开电子文件,计算机界面上也只是一些“乱码”而已,更谈不上对电子文件进行阅读、编辑和打印。动态加密技术的主要特征为电子文件从创建开始,就处于加密状态,保存在计算机存储器中的电子文件也是加密的。
硬件加密是通过专用加密芯片或独立的处理芯片等实现密码运算。将加密芯片、专有电子钥匙、硬盘一一对应到一起时,加密芯片将把加密芯片信息、专有钥匙信息、硬盘信息进行对应并做加密运算,同时写入硬盘的主分区表。这时加密芯片、专有电子钥匙、硬盘就绑定在一起,缺少任何一个都将无法使用。经过加密后硬盘如果脱离相应的加密芯片和电子钥匙,在计算机上就无法识别分区,更无法得到任何数据。

㈡ 数据加密是什么意思

数据加密,指通过加密算法和加密密钥将明文转变为密文让没有授权访问的文件的人无法打开加密好的文件,从而保护文件不被外人打开从而泄露文件内容的一种手断。
二战的时候美军破解了日本人的通讯密码,从而不费吹灰之力就击毙了日本海军大将山本五十六。更是突显了数据加密对一个国家的军事的影响能力。
现代企业更是充满了各种商业间谍套取各个公司之间的公司机密,公司的机密数据更是可以影响一个企业的生命,直接导致很多企业破产。不过现在很多公司都会使用数据加密系统来保护公司的商业机密不被泄露出去。其中酷牛网络的IP-guard和亿赛通是比较早涉足国内数据加密行业,并且性能比较稳定的加密系统。

㈢ 详解加密技术概念、加密方法以及应用

随着网络技术的发展,网络安全也就成为当今网络 社会 的焦点中的焦点,几乎没有人不在谈论网络上的安全问题,病毒、黑客程序、邮件炸弹、远程侦听等这一切都无不让人胆战心惊。病毒、黑客的猖獗使身处今日网络 社会 的人们感觉到谈网色变,无所适从。
但我们必需清楚地认识到,这一切一切的安全问题我们不可一下全部找到解决方案,况且有的是根本无法找到彻底的解决方案,如病毒程序,因为任何反病毒程序都只能在新病毒发现之后才能开发出来,目前还没有哪能一家反病毒软件开发商敢承诺他们的软件能查杀所有已知的和未知的病毒,所以我们不能有等网络安全了再上网的念头,因为或许网络不能有这么一日,就象“矛”与“盾”,网络与病毒、黑客永远是一对共存体。
现代的电脑加密技术就是适应了网络安全的需要而应运产生的,它为我们进行一般的电子商务活动提供了安全保障,如在网络中进行文件传输、电子邮件往来和进行合同文本的签署等。其实加密技术也不是什么新生事物,只不过应用在当今电子商务、电脑网络中还是近几年的 历史 。下面我们就详细介绍一下加密技术的方方面面,希望能为那些对加密技术还一知半解的朋友提供一个详细了解的机会!
一、加密的由来
加密作为保障数据安全的一种方式,它不是现在才有的,它产生的 历史 相当久远,它是起源于要追溯于公元前2000年(几个世纪了),虽然它不是现在我们所讲的加密技术(甚至不叫加密),但作为一种加密的概念,确实早在几个世纪前就诞生了。当时埃及人是最先使用特别的象形文字作为信息编码的,随着时间推移,巴比伦、美索不达米亚和希腊文明都开始使用一些方法来保护他们的书面信息。
近期加密技术主要应用于军事领域,如美国独立战争、美国内战和两次世界大战。最广为人知的编码机器是German Enigma机,在第二次世界大战中德国人利用它创建了加密信息。此后,由于Alan Turing和Ultra计划以及其他人的努力,终于对德国人的密码进行了破解。当初,计算机的研究就是为了破解德国人的密码,人们并没有想到计算机给今天带来的信息革命。随着计算机的发展,运算能力的增强,过去的密码都变得十分简单了,于是人们又不断地研究出了新的数据加密方式,如利用ROSA算法产生的私钥和公钥就是在这个基础上产生的。
二、加密的概念
数据加密的基本过程就是对原来为明文的文件或数据按某种算法进行处理,使其成为不可读的一段代码,通常称为“密文”,使其只能在输入相应的密钥之后才能显示出本来内容,通过这样的途径来达到保护数据不被非法人窃取、阅读的目的。该过程的逆过程为解密,即将该编码信息转化为其原来数据的过程。
三、加密的理由
当今网络 社会 选择加密已是我们别无选择,其一是我们知道在互联网上进行文件传输、电子邮件商务往来存在许多不安全因素,特别是对于一些大公司和一些机密文件在网络上传输。而且这种不安全性是互联网存在基础——TCP/IP协议所固有的,包括一些基于TCP/IP的服务;另一方面,互联网给众多的商家带来了无限的商机,互联网把全世界连在了一起,走向互联网就意味着走向了世界,这对于无数商家无疑是梦寐以求的好事,特别是对于中小企业。为了解决这一对矛盾、为了能在安全的基础上大开这通向世界之门,我们只好选择了数据加密和基于加密技术的数字签名。
加密在网络上的作用就是防止有用或私有化信息在网络上被拦截和窃取。一个简单的例子就是密码的传输,计算机密码极为重要,许多安全防护体系是基于密码的,密码的泄露在某种意义上来讲意味着其安全体系的全面崩溃。
通过网络进行登录时,所键入的密码以明文的形式被传输到服务器,而网络上的窃听是一件极为容易的事情,所以很有可能黑客会窃取得用户的密码,如果用户是Root用户或Administrator用户,那后果将是极为严重的。
还有如果你公司在进行着某个招标项目的投标工作,工作人员通过电子邮件的方式把他们单位的标书发给招标单位,如果此时有另一位竞争对手从网络上窃取到你公司的标书,从中知道你公司投标的标的,那后果将是怎样,相信不用多说聪明的你也明白。
这样的例子实在是太多了,解决上述难题的方案就是加密,加密后的口令即使被黑客获得也是不可读的,加密后的标书没有收件人的私钥也就无法解开,标书成为一大堆无任何实际意义的乱码。总之无论是单位还是个人在某种意义上来说加密也成为当今网络 社会 进行文件或邮件安全传输的时代象征!
数字签名就是基于加密技术的,它的作用就是用来确定用户是否是真实的。应用最多的还是电子邮件,如当用户收到一封电子邮件时,邮件上面标有发信人的姓名和信箱地址,很多人可能会简单地认为发信人就是信上说明的那个人,但实际上伪造一封电子邮件对于一个通常人来说是极为容易的事。在这种情况下,就要用到加密技术基础上的数字签名,用它来确认发信人身份的真实性。
类似数字签名技术的还有一种身份认证技术,有些站点提供入站FTP和WWW服务,当然用户通常接触的这类服务是匿名服务,用户的权力要受到限制,但也有的这类服务不是匿名的,如某公司为了信息交流提供用户的合作伙伴非匿名的FTP服务,或开发小组把他们的Web网页上载到用户的WWW服务器上,现在的问题就是,用户如何确定正在访问用户的服务器的人就是用户认为的那个人,身份认证技术就是一个好的解决方案。
在这里需要强调一点的就是,文件加密其实不只用于电子邮件或网络上的文件传输,其实也可应用静态的文件保护,如PIP软件就可以对磁盘、硬盘中的文件或文件夹进行加密,以防他人窃取其中的信息。
四、两种加密方法
加密技术通常分为两大类:“对称式”和“非对称式”。
对称式加密就是加密和解密使用同一个密钥,通常称之为“Session Key ”这种加密技术目前被广泛采用,如美国政府所采用的DES加密标准就是一种典型的“对称式”加密法,它的Session Key长度为56Bits。
非对称式加密就是加密和解密所使用的不是同一个密钥,通常有两个密钥,称为“公钥”和“私钥”,它们两个必需配对使用,否则不能打开加密文件。这里的“公钥”是指可以对外公布的,“私钥”则不能,只能由持有人一个人知道。它的优越性就在这里,因为对称式的加密方法如果是在网络上传输加密文件就很难把密钥告诉对方,不管用什么方法都有可能被别窃听到。而非对称式的加密方法有两个密钥,且其中的“公钥”是可以公开的,也就不怕别人知道,收件人解密时只要用自己的私钥即可以,这样就很好地避免了密钥的传输安全性问题。
五、加密技术中的摘要函数(MAD、MAD和MAD)
摘要是一种防止改动的方法,其中用到的函数叫摘要函数。这些函数的输入可以是任意大小的消息,而输出是一个固定长度的摘要。摘要有这样一个性质,如果改变了输入消息中的任何东西,甚至只有一位,输出的摘要将会发生不可预测的改变,也就是说输入消息的每一位对输出摘要都有影响。总之,摘要算法从给定的文本块中产生一个数字签名(fingerprint或message digest),数字签名可以用于防止有人从一个签名上获取文本信息或改变文本信息内容和进行身份认证。摘要算法的数字签名原理在很多加密算法中都被使用,如SO/KEY和PIP(pretty good privacy)。
现在流行的摘要函数有MAD和MAD,但要记住客户机和服务器必须使用相同的算法,无论是MAD还是MAD,MAD客户机不能和MAD服务器交互。
MAD摘要算法的设计是出于利用32位RISC结构来最大其吞吐量,而不需要大量的替换表(substitution table)来考虑的。
MAD算法是以消息给予的长度作为输入,产生一个128位的"指纹"或"消息化"。要产生两个具有相同消息化的文字块或者产生任何具有预先给定"指纹"的消息,都被认为在计算上是不可能的。
MAD摘要算法是个数据认证标准。MAD的设计思想是要找出速度更快,比MAD更安全的一种算法,MAD的设计者通过使MAD在计算上慢下来,以及对这些计算做了一些基础性的改动来解决安全性这一问题,是MAD算法的一个扩展。
六、密钥的管理
密钥既然要求保密,这就涉及到密钥的管理问题,管理不好,密钥同样可能被无意识地泄露,并不是有了密钥就高枕无忧,任何保密也只是相对的,是有时效的。要管理好密钥我们还要注意以下几个方面:
1、密钥的使用要注意时效和次数
如果用户可以一次又一次地使用同样密钥与别人交换信息,那么密钥也同其它任何密码一样存在着一定的安全性,虽然说用户的私钥是不对外公开的,但是也很难保证私钥长期的保密性,很难保证长期以来不被泄露。如果某人偶然地知道了用户的密钥,那么用户曾经和另一个人交换的每一条消息都不再是保密的了。另外使用一个特定密钥加密的信息越多,提供给窃听者的材料也就越多,从某种意义上来讲也就越不安全了。
因此,一般强调仅将一个对话密钥用于一条信息中或一次对话中,或者建立一种按时更换密钥的机制以减小密钥暴露的可能性。
2、多密钥的管理
假设在某机构中有100个人,如果他们任意两人之间可以进行秘密对话,那么总共需要多少密钥呢?每个人需要知道多少密钥呢?也许很容易得出答案,如果任何两个人之间要不同的密钥,则总共需要4950个密钥,而且每个人应记住99个密钥。如果机构的人数是1000、10000人或更多,这种办法就显然过于愚蠢了,管理密钥将是一件可怕的事情。
Kerberos提供了一种解决这个较好方案,它是由MIT发明的,使保密密钥的管理和分发变得十分容易,但这种方法本身还存在一定的缺点。为能在因特网上提供一个实用的解决方案,Kerberos建立了一个安全的、可信任的密钥分发中心(Key Distribution Center,KDC),每个用户只要知道一个和KDC进行会话的密钥就可以了,而不需要知道成百上千个不同的密钥。
假设用户甲想要和用户乙进行秘密通信,则用户甲先和KDC通信,用只有用户甲和KDC知道的密钥进行加密 ,用户甲告诉KDC他想和用户乙进行通信,KDC会为用户甲和用户乙之间的会话随机选择一个对话密钥,并生成一个标签,这个标签由KDC和用户乙之间的密钥进行加密,并在用户甲启动和用户乙对话时,用户甲会把这个标签交给用户乙。这个标签的作用是让用户甲确信和他交谈的是用户乙,而不是冒充者。因为这个标签是由只有用户乙和KDC知道的密钥进行加密的,所以即使冒充者得到用户甲发出的标签也不可能进行解密,只有用户乙收到后才能够进行解密,从而确定了与用户甲对话的人就是用户乙。
当KDC生成标签和随机会话密码,就会把它们用只有用户甲和KDC知道的密钥进行加密,然后把标签和会话钥传给用户甲,加密的结果可以确保只有用户甲能得到这个信息,只有用户甲能利用这个会话密钥和用户乙进行通话。同理,KDC会把会话密码用只有KDC和用户乙知道的密钥加密,并把会话密钥给用户乙。
用户甲会启动一个和用户乙的会话,并用得到的会话密钥加密自己和用户乙的会话,还要把KDC传给它的标签传给用户乙以确定用户乙的身份,然后用户甲和用户乙之间就可以用会话密钥进行安全的会话了,而且为了保证安全,这个会话密钥是一次性的,这样黑客就更难进行破解了。同时由于密钥是一次性由系统自动产生的,则用户不必记那么多密钥了,方便了人们的通信。
七、数据加密的标准
随着计算机硬件的速度越来越快,制造一台这样特殊的机器的花费已经降到了十万美元左右,而用它来保护十亿美元的银行,那显然是不够保险了。另一方面,如果只用它来保护一台普通服务器,那么DES确实是一种好的办法,因为黑客绝不会仅仅为入侵一个服务器而花那么多的钱破解DES密文。
另一种非常着名的加密算法就是RSA了,RSA(Rivest-Shamir-Adleman)算法是基于大数不可能被质因数分解假设的公钥体系。简单地说就是找两个很大的质数。一个对外公开的为“公钥”(Prblic key) ,另一个不告诉任何人,称为"私钥”(Private key)。这两个密钥是互补的,也就是说用公钥加密的密文可以用私钥解密,反过来也一样。
假设用户甲要寄信给用户乙,他们互相知道对方的公钥。甲就用乙的公钥加密邮件寄出,乙收到后就可以用自己的私钥解密出甲的原文。由于别人不知道乙的私钥,所以即使是甲本人也无法解密那封信,这就解决了信件保密的问题。另一方面,由于每个人都知道乙的公钥,他们都可以给乙发信,那么乙怎么确信是不是甲的来信呢?那就要用到基于加密技术的数字签名了。
甲用自己的私钥将签名内容加密,附加在邮件后,再用乙的公钥将整个邮件加密(注意这里的次序,如果先加密再签名的话,别人可以将签名去掉后签上自己的签名,从而篡改了签名)。这样这份密文被乙收到以后,乙用自己的私钥将邮件解密,得到甲的原文和数字签名,然后用甲的公钥解密签名,这样一来就可以确保两方面的安全了。
八、加密技术的应用
加密技术的应用是多方面的,但最为广泛的还是在电子商务和VPN上的应用,下面就分别简叙。
1、在电子商务方面的应用
电子商务(E-business)要求顾客可以在网上进行各种商务活动,不必担心自己的信用卡会被人盗用。在过去,用户为了防止信用卡的号码被窃取到,一般是通过电话订货,然后使用用户的信用卡进行付款。现在人们开始用RSA(一种公开/私有密钥)的加密技术,提高信用卡交易的安全性,从而使电子商务走向实用成为可能。
许多人都知道NETSCAPE公司是Internet商业中领先技术的提供者,该公司提供了一种基于RSA和保密密钥的应用于因特网的技术,被称为安全插座层(Secure Sockets Layer,SSL)。
也许很多人知道Socket,它是一个编程界面,并不提供任何安全措施,而SSL不但提供编程界面,而且向上提供一种安全的服务,SSL3.0现在已经应用到了服务器和浏览器上,SSL2.0则只能应用于服务器端。
SSL3.0用一种电子证书(electric certificate)来实行身份进行验证后,双方就可以用保密密钥进行安全的会话了。它同时使用“对称”和“非对称”加密方法,在客户与电子商务的服务器进行沟通的过程中,客户会产生一个Session Key,然后客户用服务器端的公钥将Session Key进行加密,再传给服务器端,在双方都知道Session Key后,传输的数据都是以Session Key进行加密与解密的,但服务器端发给用户的公钥必需先向有关发证机关申请,以得到公证。
基于SSL3.0提供的安全保障,用户就可以自由订购商品并且给出信用卡号了,也可以在网上和合作伙伴交流商业信息并且让供应商把订单和收货单从网上发过来,这样可以节省大量的纸张,为公司节省大量的电话、传真费用。在过去,电子信息交换(Electric Data Interchange,EDI)、信息交易(information transaction)和金融交易(financial transaction)都是在专用网络上完成的,使用专用网的费用大大高于互联网。正是这样巨大的诱惑,才使人们开始发展因特网上的电子商务,但不要忘记数据加密。
2、加密技术在VPN中的应用
现在,越多越多的公司走向国际化,一个公司可能在多个国家都有办事机构或销售中心,每一个机构都有自己的局域网LAN(Local Area Network),但在当今的网络 社会 人们的要求不仅如此,用户希望将这些LAN连结在一起组成一个公司的广域网,这个在现在已不是什么难事了。
事实上,很多公司都已经这样做了,但他们一般使用租用专用线路来连结这些局域网 ,他们考虑的就是网络的安全问题。现在具有加密/解密功能的路由器已到处都是,这就使人们通过互联网连接这些局域网成为可能,这就是我们通常所说的虚拟专用网(Virtual Private Network ,VPN)。当数据离开发送者所在的局域网时,该数据首先被用户湍连接到互联网上的路由器进行硬件加密,数据在互联网上是以加密的形式传送的,当达到目的LAN的路由器时,该路由器就会对数据进行解密,这样目的LAN中的用户就可以看到真正的信息了。

㈣ 什么是数据加密

考虑到用户可能试图旁路系统的情况,如物理地取走数据库,在通讯线路上窃听。对这样的威胁最有效的解决方法就是数据加密,即以加密格式存储和传输敏感数据。
数据加密的术语有:明文,即原始的或未加密的数据。通过加密算法对其进行加密,加密算法的输入信息为明文和密钥;密文,明文加密后的格式,是加密算法的输出信息。加密算法是公开的,而密钥则是不公开的。密文,不应为无密钥的用户理解,用于数据的存储以及传输。
例:明文为字符串:
AS KINGFISHERS CATCH FIRE
(为简便起见,假定所处理的数据字符仅为大写字母和空格符)。假定密钥为字符串:
ELIOT
加密算法为:
1) 将明文划分成多个密钥字符串长度大小的块(空格符以"+"表示)
AS+KI NGFIS HERS+ CATCH +FIRE
2) 用00~26范围的整数取代明文的每个字符,空格符=00,A=01,...,Z=26:
0119001109 1407060919 0805181900 0301200308 0006091805
3) 与步骤2一样对密钥的每个字符进行取代:
0512091520
4) 对明文的每个块,将其每个字符用对应的整数编码与密钥中相应位置的字符的整数编码的和模27后的值取代:
5) 将步骤4的结果中的整数编码再用其等价字符替换:
FDIZB SSOXL MQ+GT HMBRA ERRFY
如果给出密钥,该例的解密过程很简单。问题是对于一个恶意攻击者来说,在不知道密钥的情况下,利用相匹配的明文和密文获得密钥究竟有多困难?对于上面的简单例子,答案是相当容易的,不是一般的容易,但是,复杂的加密模式同样很容易设计出。理想的情况是采用的加密模式使得攻击者为了破解所付出的代价应远远超过其所获得的利益。实际上,该目的适用于所有的安全性措施。这种加密模式的可接受的最终目标是:即使是该模式的发明者也无法通过相匹配的明文和密文获得密钥,从而也无法破解密文。
1. 数据加密标准
传统加密方法有两种,替换和置换。上面的例子采用的就是替换的方法:使用密钥将明文中的每一个字符转换为密文中的一个字符。而置换仅将明文的字符按不同的顺序重新排列。单独使用这两种方法的任意一种都是不够安全的,但是将这两种方法结合起来就能提供相当高的安全程度。数据加密标准(Data Encryption Standard,简称DES)就采用了这种结合算法,它由IBM制定,并在1977年成为美国官方加密标准。
DES的工作原理为:将明文分割成许多64位大小的块,每个块用64位密钥进行加密,实际上,密钥由56位数据位和8位奇偶校验位组成,因此只有256个可能的密码而不是264个。每块先用初始置换方法进行加密,再连续进行16次复杂的替换,最后再对其施用初始置换的逆。第i步的替换并不是直接利用原始的密钥K,而是由K与i计算出的密钥Ki。
DES具有这样的特性,其解密算法与加密算法相同,除了密钥Ki的施加顺序相反以外。
2. 公开密钥加密
多年来,许多人都认为DES并不是真的很安全。事实上,即使不采用智能的方法,随着快速、高度并行的处理器的出现,强制破解DES也是可能的。"公开密钥"加密方法使得DES以及类似的传统加密技术过时了。公开密钥加密方法中,加密算法和加密密钥都是公开的,任何人都可将明文转换成密文。但是相应的解密密钥是保密的(公开密钥方法包括两个密钥,分别用于加密和解密),而且无法从加密密钥推导出,因此,即使是加密者若未被授权也无法执行相应的解密。
公开密钥加密思想最初是由Diffie和Hellman提出的,最着名的是Rivest、Shamir以及Adleman提出的,现在通常称为RSA(以三个发明者的首位字母命名)的方法,该方法基于下面的两个事实:
1) 已有确定一个数是不是质数的快速算法;
2) 尚未找到确定一个合数的质因子的快速算法。
RSA方法的工作原理如下:
1) 任意选取两个不同的大质数p和q,计算乘积r=p*q;
2) 任意选取一个大整数e,e与(p-1)*(q-1)互质,整数e用做加密密钥。注意:e的选取是很容易的,例如,所有大于p和q的质数都可用。
3) 确定解密密钥d:
d * e = 1 molo(p - 1)*(q - 1)
根据e、p和q可以容易地计算出d。
4) 公开整数r和e,但是不公开d;
5) 将明文P (假设P是一个小于r的整数)加密为密文C,计算方法为:
C = Pe molo r
6) 将密文C解密为明文P,计算方法为:
P = Cd molo r
然而只根据r和e(不是p和q)要计算出d是不可能的。因此,任何人都可对明文进行加密,但只有授权用户(知道d)才可对密文解密。

下面举一简单的例子对上述过程进行说明,显然我们只能选取很小的数字。
例:选取p=3, q=5,则r=15,(p-1)*(q-1)=8。选取e=11(大于p和q的质数),通过d * 11 = 1 molo 8,计算出d =3。
假定明文为整数13。则密文C为
C = Pe molo r
= 1311 molo 15
= 1,792,160,394,037 molo 15
= 7
复原明文P为:
P = Cd molo r
= 73 molo 15
= 343 molo 15
= 13
因为e和d互逆,公开密钥加密方法也允许采用这样的方式对加密信息进行"签名",以便接收方能确定签名不是伪造的。假设A和B希望通过公开密钥加密方法进行数据传输,A和B分别公开加密算法和相应的密钥,但不公开解密算法和相应的密钥。A和B的加密算法分别是ECA和ECB,解密算法分别是DCA和DCB,ECA和DCA互逆,ECB和DCB互逆。若A要向B发送明文P,不是简单地发送ECB(P),而是先对P施以其解密算法DCA,再用加密算法ECB对结果加密后发送出去。密文C为:
C = ECB(DCA(P))
B收到C后,先后施以其解密算法DCB和加密算法ECA,得到明文P:
ECA(DCB(C))
= ECA(DCB(ECB(DCA(P))))
= ECA(DCA(P)) /*DCB和ECB相互抵消*/
= P /*DCB和ECB相互抵消*/
这样B就确定报文确实是从A发出的,因为只有当加密过程利用了DCA算法,用ECA才能获得P,只有A才知道DCA算法,没有人,即使是B也不能伪造A的签名。

㈤ 四、公钥和私钥,加密和数字签名

本文涉及到支付宝SDK的内容,均摘自支付宝开放平台。

因为支付宝SDK使用RSA来加密和生成数字签名,所以本文中涉及到的概念也都是针对于RSA的。


一对儿密钥生成后,会有公钥和私钥之分,我们需要把私钥保存下来,而把公钥发布出去。一对儿公钥和私钥,不能由其中一个导出另一个。

比如使用支付宝SDK的时候,我们商户端会生成一对儿密钥A和B,A是私钥,B是公钥,支付宝也会生成一对儿密钥C和D,C是私钥,D是公钥。我们商户端需要把商户端私钥A保存下来,而把商户端公钥B发布出去给支付宝,支付宝需要把支付宝私钥C保存下来,而把支付宝公钥D发布出去给我们商户端。

加密是指我们使用一对儿密钥中的一个来对数据加密,而使用另一个来对数据解密的技术,需要注意的是公钥和私钥都可以用来加密,也都可以用来解密 ,并不是规定死了只能用公钥加密私钥解密,但是加解密必须是一对儿密钥之间的互相加解密,否则不能成功。

加密的目的是为了保证数据的不可读性,防止数据在传输过程中被截获。

知道了加密这个概念,我们先看一下支付宝的加密过程,再引出数字签名这个概念。接着第1小节的例子,当我们商户端和支付宝互相发布了公钥之后,我们商户端手里就有 商户端私钥 支付宝公钥 两个密钥,支付宝手里也有 商户端公钥 支付宝私钥 两个密钥。现在假设我们商户端要给支付宝传输订单信息,那么为了保证传输订单信息时数据的安全性,结合我们商户端手里所拥有的密钥,可以有两套加密方案

貌似这两套加密方案都能达到对订单信息加密的效果,而且如果采用方案二,我们商户端甚至只需要存储支付宝公钥这一个密钥,都不用去申请一对儿商户端的公私钥来维护,支付宝也不用保存我们一堆商户那么多的商户端公钥了,这不是更简单吗,那为什么支付宝开放平台让我们采用的是方案一而不是方案二呢?下面来回答一下。

支付宝开放平台说明:当我们采用RSA(1024位密钥)来加密的时候,支付宝分配给所有商户的支付宝公钥都是一样的,即支付宝针对那么多的商户只负责维护一对儿支付宝公私钥,这就意味着支付宝公钥随便什么人拿到后都是一样的;而当我们采用RSA2(2048位密钥)来加密的时候,支付宝会分配给每个商户单独的一个支付宝公钥,即支付宝为每一个的商户单独的维护一对独立的支付宝公私钥,当然一个商户下的多个App的支付宝公钥是一样的。RSA是早就支持的,RSA2是最近才支持的。

知道了上面这段话,现在假设我们采用的是方案二,并且采用RSA加密(很多老业务并没有使用RSA2加密),业务逻辑将会是下面这样。

这就出问题了, RSA加密下,支付宝公钥是公开发布的,而且所有的商户用的都是同一个支付宝公钥(上面声明了RSA2加密下,支付宝才针对每个商户维护了一对儿公私钥),攻击者很容易就能获取到,而 notify_url 也很容易被截获,那攻击者拿到这两个东西就可以做和商户一样的操作来发起支付请求,这样就会一直给小明充钱了。

所以 支付宝就需要确认支付请求确实是商户发给他们的,而不是攻击者发给他们的。 这就用到了 数字签名 ,我们会通过方案一的实现流程来引出数字签名的具体概念。如果我们采用的是方案一,我们商户端保存的就是商户端私钥和支付宝公钥,而支付宝保存的就是需要存着商户端公钥和支付宝私钥的,业务逻辑将会是下面这样。

这样就可以保证交易的安全性了,我们也可以看出使用支付宝SDK保证交易的安全性注重的其实不是订单信息是否加密,而是如何确保商户端和支付宝能够互相确认身份,订单信息是明文的,但是后面拼接了数字签名。

数字签名其实就是明文数据加密之后得到的一个密文,只不过它是用私钥加密生成的而已,我们一般会把数字签名拼接在明文数据后面一起传递给接收方,接收方收到后用公钥解密数字签名,从而验证发送方的身份、以及明文数据是否被篡改。数字签名的生成过程其实就是一个加密过程,数字签名的验签过程就是一个解密过程。

数字签名的目的有两个:一、发送方和接收方互相验证身份;二、验证数据是否被篡改。


从上面第一部分我们知道为了确保商户和支付宝交易的安全性,约定采用的是给订单信息加数字签名传输的方式。支付宝也为我们提供了 一键生成RSA密钥的工具 ,可以帮助我们很快的生成一对商户端公私钥。以下会对支付宝SDK的支付流程做个大概的解释,并点出实际开发中我们使用支付宝SDK时应该注意的地方。

由我们商户端自己生成的RSA私钥(必须与商户端公钥是一对),生成后要保存在服务端,绝对不能保存在客户端,也绝对不能从服务端传输给客户端。

用来对订单信息加签,加签过程一定要在服务端完成,绝对不能在客户端做加,客户端只负责用加签后的订单信息调起支付宝来支付。

由我们商户端自己生成的RSA公钥(必须与商户端私钥是一对),生成后需要填写在支付宝开放平台。

用来给支付宝服务端验签经过我们加签后的订单信息,以确保订单信息确实是我们商户端发给支付宝的,并且确保订单信息在传输过程中未被篡改。

这个和我们就没关系了,支付宝私钥是他们自己生成的,也是他们自己保存的。

用来对支付结果进行加签。

支付宝公钥和支付宝私钥是一对,也是支付宝生成的,当我们把商户端公钥填写在支付宝开放平台后,平台就会给我们生成一个支付宝公钥,我们可以复制下来保存在服务端,同样不要保存在客户端,并且不要传输给客户端。

用来让服务端对支付宝服务端返给我们的同步或异步支付结果进行验签,以确保支付结果确实是由支付宝服务端返给我们服务端的,而且没有被篡改,对支付结果的验签工作也一定要在服务端完成。

上面已经说过了: 订单信息的加签和支付结果的验签是一定要在服务端做的,绝对不能在客户端做。

下面是在客户端对订单信息加签的过程,仅仅是为了模拟服务端来表明订单信息是如何通过加签最终转变为orderString的, 千万不要觉得订单信息的加签过程也可以放在客户端完成

假设我们服务端收到了来自支付宝服务端的支付结果,即: 支付结果+数字签名

那么我们服务端就会对支付结果进行验签,怎么个验法呢?

㈥ 什么是加密和解密

加密:给数据进行加密码保护,通常都是打开是输入密码,还有隐藏、伪装等效果。市面上加密类的软件也很多,可以根据自己的具体需求进行挑选。
解密:解除密码保护,也就是恢复未加密时的状态,变成正常的数据。如果不想让你的文件继续保持加密效果,那就可以选择解密,来让它不再受保护。有的可以临时解密,使用的时候是解密状态,关闭后会自动恢复加密状态这种。

㈦ 什么是对称加密什么是非对称加密

对称加密

在对称加密(或叫单密钥加密)中,只有一个密钥用来加密和解密信息。尽管单密钥加密是一个简单的过程,但是双方都必须完全的相信对方,并都持有这个密钥的备份。但要达到这种信任的级别并不是想象中的那么简单。当双方试图建立信任关系时可能一个安全破坏已经发生了。首先密钥的传输就是一个重要问题,如果它被截取,那么这个密钥以及相关的重要信息就没有什么安全可言了。

但是,如果用户要在公共介质 (如互联网) 上传递信息,他需要一种方法来传递密钥,当然物理的发送和接收密钥是最安全的,但有时这是不可能的。一种解决方法就是通过电子邮件来发送,但这样的信息很容易的被截取到,从而击破了加密的目的。用户不能加密包含密钥的邮件,因为他们必须共享另一个用来加密含有密钥邮件的密钥。这种困境就产生了问题:如果对称密钥用它们自己来加密,那为什么不直接用相同的方法在第一步就使用?一个解决方案就是用非对称加密,我们将在本课的后面提到。

所有类型加密的一个主题就是破解。一种减少使用对称加密所造成的威胁的反措施就是改变密钥的规律性。然而,定期改变密钥经常是困难的,尤其是你的公司里有很多用户。另外,黑客可以使用字典程序,password sniffing来危及对称密钥的安全,或者通过搜翻办公桌,钱包以及公文包。对称加密也很容易被暴力攻击的手段击败。

非对称加密

非对称加密在加密的过程中使用一对密钥,而不像对称加密只使用一个单独的密钥。一对密钥中一个用于加密,另一个用来解密。如用A加密,则用B解密;如果用B加密,则要用A解密。

重要的概念是在这对密钥中一个密钥用来公用,另一个作为私有的密钥;用来向外公布的叫做公钥,另一半需要安全保护的是私钥。非对称加密的一个缺点就是加密的速度非常慢,因为需要强烈的数学运算程序。如果一个用户需要使用非对称加密,那么即使比较少量的信息可以也要花上几个小时的时间。

非对称加密的另一个名称叫公钥加密。尽管私钥和公钥都有与数学相关的,但从公钥中确定私钥的值是非常困难的并且也是非常耗时的。在互联网上通信,非对称加密的密钥管理是容易的因为公钥可以任易的传播,私钥必须在用户手中小心保护。

HASH加密把一些不同长度的信息转化成杂乱的128位的编码里,叫做HASH值。HASH加密用于不想对信息解密或读取。使用这种方法解密在理论上是不可能的,是通过比较两上实体的值是否一样而不用告之其它信息。HASH加密别一种用途是签名文件。它还可用于当你想让别人检查但不能复制信息的时候。

㈧ 密码学中的对称加密和非对称加密

一、对称加密
概念:加密和解密用同一对密钥的加密技术,叫对称加密。
加密方式:DES、3DES、AES,安全性依次从低到高。
示意图:

二、非对称加密,也称公开密钥
概念:加密和解密用 不同的密钥 的加密技术,叫非对称加密。
典型的加密方式:RSA算法
加密步骤:

三、两种方式各自的缺点:

四、混合密码系统
概念:将对称密码和公钥密码的优势相结合的方法
优点:解决了公钥密码速度慢的问题;通过公钥密码解决了对称密码的密钥配送问题。
应用:网络上的密码通信所用的SSL/TSL都运用了混合密码系统。

会话密钥的生成:

加密步骤:

最终,发出去的消息包括两部分:

解密步骤:

示意图:

1. 为什么加密消息主体要用对称加密?
因为消息主体信息量大,发送频繁,而对称加密速度快,效率高。

2. 为什么加密会话密钥要用非对称加密?
因为会话密钥一般比较短,而且通常只需要发送一次即可,所以对速度要求不高,但对安全性要求很高,非对称加密满足这个要求。

㈨ 常见加密算法原理及概念

在安全领域,利用密钥加密算法来对通信的过程进行加密是一种常见的安全手段。利用该手段能够保障数据安全通信的三个目标:

而常见的密钥加密算法类型大体可以分为三类:对称加密、非对称加密、单向加密。下面我们来了解下相关的算法原理及其常见的算法。

对称加密算法采用单密钥加密,在通信过程中,数据发送方将原始数据分割成固定大小的块,经过密钥和加密算法逐个加密后,发送给接收方;接收方收到加密后的报文后,结合密钥和解密算法解密组合后得出原始数据。由于加解密算法是公开的,因此在这过程中,密钥的安全传递就成为了至关重要的事了。而密钥通常来说是通过双方协商,以物理的方式传递给对方,或者利用第三方平台传递给对方,一旦这过程出现了密钥泄露,不怀好意的人就能结合相应的算法拦截解密出其加密传输的内容。

对称加密算法拥有着算法公开、计算量小、加密速度和效率高得特定,但是也有着密钥单一、密钥管理困难等缺点。

常见的对称加密算法有:
DES:分组式加密算法,以64位为分组对数据加密,加解密使用同一个算法。
3DES:三重数据加密算法,对每个数据块应用三次DES加密算法。
AES:高级加密标准算法,是美国联邦政府采用的一种区块加密标准,用于替代原先的DES,目前已被广泛应用。
Blowfish:Blowfish算法是一个64位分组及可变密钥长度的对称密钥分组密码算法,可用来加密64比特长度的字符串。

非对称加密算法采用公钥和私钥两种不同的密码来进行加解密。公钥和私钥是成对存在,公钥是从私钥中提取产生公开给所有人的,如果使用公钥对数据进行加密,那么只有对应的私钥才能解密,反之亦然。
下图为简单非对称加密算法的常见流程:

发送方Bob从接收方Alice获取其对应的公钥,并结合相应的非对称算法将明文加密后发送给Alice;Alice接收到加密的密文后,结合自己的私钥和非对称算法解密得到明文。这种简单的非对称加密算法的应用其安全性比对称加密算法来说要高,但是其不足之处在于无法确认公钥的来源合法性以及数据的完整性。
非对称加密算法具有安全性高、算法强度负复杂的优点,其缺点为加解密耗时长、速度慢,只适合对少量数据进行加密,其常见算法包括:
RSA :RSA算法基于一个十分简单的数论事实:将两个大素数相乘十分容易,但那时想要对其乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥,可用于加密,也能用于签名。
DSA :数字签名算法,仅能用于签名,不能用于加解密。
DSS :数字签名标准,技能用于签名,也可以用于加解密。
ELGamal :利用离散对数的原理对数据进行加解密或数据签名,其速度是最慢的。

单向加密算法常用于提取数据指纹,验证数据的完整性。发送者将明文通过单向加密算法加密生成定长的密文串,然后传递给接收方。接收方在收到加密的报文后进行解密,将解密获取到的明文使用相同的单向加密算法进行加密,得出加密后的密文串。随后将之与发送者发送过来的密文串进行对比,若发送前和发送后的密文串相一致,则说明传输过程中数据没有损坏;若不一致,说明传输过程中数据丢失了。单向加密算法只能用于对数据的加密,无法被解密,其特点为定长输出、雪崩效应。常见的算法包括:MD5、sha1、sha224等等,其常见用途包括:数字摘要、数字签名等等。

密钥交换IKE(Internet Key Exchange)通常是指双方通过交换密钥来实现数据加密和解密,常见的密钥交换方式有下面两种:
1、公钥加密,将公钥加密后通过网络传输到对方进行解密,这种方式缺点在于具有很大的可能性被拦截破解,因此不常用;
2、Diffie-Hellman,DH算法是一种密钥交换算法,其既不用于加密,也不产生数字签名。DH算法的巧妙在于需要安全通信的双方可以用这个方法确定对称密钥。然后可以用这个密钥进行加密和解密。但是注意,这个密钥交换协议/算法只能用于密钥的交换,而不能进行消息的加密和解密。双方确定要用的密钥后,要使用其他对称密钥操作加密算法实际加密和解密消息。DH算法通过双方共有的参数、私有参数和算法信息来进行加密,然后双方将计算后的结果进行交换,交换完成后再和属于自己私有的参数进行特殊算法,经过双方计算后的结果是相同的,此结果即为密钥。
如:

在整个过程中,第三方人员只能获取p、g两个值,AB双方交换的是计算后的结果,因此这种方式是很安全的。

公钥基础设施是一个包括硬件、软件、人员、策略和规程的集合,用于实现基于公钥密码机制的密钥和证书的生成、管理、存储、分发和撤销的功能,其组成包括:签证机构CA、注册机构RA、证书吊销列表CRL和证书存取库CB。
PKI采用证书管理公钥,通过第三方可信任CA中心,把用户的公钥和其他用户信息组生成证书,用于验证用户的身份。
公钥证书是以数字签名的方式声明,它将公钥的值绑定到持有对应私钥的个人、设备或服务身份。公钥证书的生成遵循X.509协议的规定,其内容包括:证书名称、证书版本、序列号、算法标识、颁发者、有效期、有效起始日期、有效终止日期、公钥 、证书签名等等的内容。

CA证书认证的流程如下图,Bob为了向Alice证明自己是Bob和某个公钥是自己的,她便向一个Bob和Alice都信任的CA机构申请证书,Bob先自己生成了一对密钥对(私钥和公钥),把自己的私钥保存在自己电脑上,然后把公钥给CA申请证书,CA接受申请于是给Bob颁发了一个数字证书,证书中包含了Bob的那个公钥以及其它身份信息,当然,CA会计算这些信息的消息摘要并用自己的私钥加密消息摘要(数字签名)一并附在Bob的证书上,以此来证明这个证书就是CA自己颁发的。Alice得到Bob的证书后用CA的证书(自签署的)中的公钥来解密消息摘要,随后将摘要和Bob的公钥发送到CA服务器上进行核对。CA在接收到Alice的核对请求后,会根据Alice提供的信息核对Bob的证书是否合法,如果确认合法则回复Alice证书合法。Alice收到CA的确认回复后,再去使用从证书中获取的Bob的公钥加密邮件然后发送给Bob,Bob接收后再以自己的私钥进行解密。

㈩ 信息加密的概念

信息加密是指以某种特殊的算法改变原有的信息数据,使得未授权的用户即使获得了已加密的信号,但因不知解密的方法,仍然无法了解信息的内容。

热点内容
sqlifnotexists 发布:2025-08-02 02:02:14 浏览:127
如何制作服务器的悬空标题字 发布:2025-08-02 01:57:49 浏览:843
唱吧上传撤销 发布:2025-08-02 01:48:11 浏览:693
局域网服务器不能用ip访问 发布:2025-08-02 01:47:20 浏览:540
c语言日志 发布:2025-08-02 01:39:14 浏览:489
详细编程 发布:2025-08-02 01:17:13 浏览:349
怎么查看wifi的密码 发布:2025-08-02 00:46:24 浏览:929
linux工具开发 发布:2025-08-02 00:44:52 浏览:688
c语言编程我爱你 发布:2025-08-02 00:40:12 浏览:946
车铣复合加工编程 发布:2025-08-02 00:39:21 浏览:49