① 如何使用云计算加密确保数据安全性

自从人类文明刚刚出现,加密技术就已经出现。在基于计算机的复杂加密方法,也就是我们现在最常用加密技术问世之前,人们就总是希望保护敏感信息以防外人的窥探。古希腊人通过在送信使者光头上纹身来保护他们的秘密信息。当信使到达目的地时,他们的头发又长出来,这样消息就会变得看不见了。而消息的接受方只需要有一个好的理发师就能够阅读送达的秘密消息了。 那么,对于把敏感数据置于云计算的公司来说,他们还采取哪些措施呢?正如古希腊人一样,我们正在努力确保我们秘密信息的安全性以防外人的窥探。当然,具体的方法发生了变化,但是其目的仍旧是相同的。在云计算中,确保私有数据安全性的最佳方法之一就是对传输的数据和存储的数据进行加密处理。当谈及云计算服务时,仍然存在一些加密方面的潜在问题。几乎所有的云计算服务供应商都支持对传输数据的加密,但是很少有供应商会支持对存储数据的加密。服务供应商的云计算加密能力需要与托管数据的敏感等级相匹配。云计算加密可供选择的方法 典型云计算服务供应商的基本业务模式是基于可扩展性的理念的:能够使用共享资源的客户越多,云计算服务供应商所获得的利润也就越高。这个理念从另一方面来说也是正确的:能够使用共享资源的用户越多,那么每个用户所支付的成本也就越低。这些事实在云计算供应商决定提供加密服务中起了很重要的作用。加密需要消耗更多的处理器资源,所以它降低了每个资源的平均用户数量,也就增加了整体成本。正是由于这个原因,大多数云计算供应商将只对少量数据库领域提供基本的加密服务,例如密码和账户名。当然,云计算供应商业通常也提供了对整个数据库进行加密的服务,但是其成本将大大增加,其云计算托管成本要远高于内部托管成本。 一些云计算供应商已为加密功能提供了没有相同性能影响的替代解决方案。这些技术包括了重新编辑或模糊私有数据。这听上去似乎很吸引人,但那只不过是“通过模糊化实现安全性”的另一种形式。这两种技术都无法高效地确保私有数据安全性,因为这两种技术都可以被轻易地绕过。 另一个由服务供应商提供的云计算加密替代解决方案可以降低加密操作对性能的影响,即定义加密解决方案。目前的加密标准已经过众多聪明工程师和密码破解专家多年的测试与验证。一个云计算服务供应商是不可能达到一个专用加密标准开发水平的,它也无法达到目前公认标准的公共监督和反馈等级。这就增加了密码破解的概率,从而使得用户数据变得易于暴露。我们应不惜一切代价避免使用专用加密标准。 对于提供基于标准的加密解决方案的云计算供应商,我们可能还需要考虑另一种风险。由于加密数据的安全性仅在使用密钥进行加密时才有效,因此密钥管理就成为了一个关键的问题,而云计算供应商必须有密钥存储、产生以及归档的特定策略和流程。请务必记得,任何拥有密钥的人都能够访问你的私有数据。 其他的云计算加密注意事项 当使用云计算服务供应商,还有其他一些加密运行问题应予以注意。这些运行流程包括磁带备份和其他可移除媒体(如DVD-R和USB设备)的加密策略和程序。你的数据可能在供应商的数据库中是安全加密的,但是如果它在运行中使用了非加密存储介质,那么还是存在着数据暴露的风险;在把你的数据送交供应商管理之前,了解这些运行风险是非常重要的。 最后,还有其他一些地方是不允许使用加密技术的。云计算供应商对数据的实际操作有可能要求数据在某几个环节被解密。这一情况有可能随着同态加密的出现而发生变化,同态加密由IBM公司于2009年推出,该技术允许在加密状态处理数据。这是一项未来的技术,但是它肯定会提升云计算供应商的安全功能。 云计算加密与合规性 一个价值百万美金的问题:“合规数据是否可以进入云计算?”在使用云计算服务时,保持合规性是肯定可以实现的。当众多规定要求对特定数据元素进行加密时,加密技术起了很重要的作用。这种需求可见于GLBA、PCI DSS和HIPAA,这里仅举几例。最重要的加密指导可见NIST 800-111 和 FIPS-140-2。这些标准可以帮助你评估云计算供应商的合规性能力。 加密是一个强大的工具,可以使用它高效地保护公司在云计算中的私有数据。对于公司来说,调查和理解云计算供应商在他们的业务流程中如何使用加密技术。只有这样,公司才能有信心地使用云计算供应商的服务,因为他们知道他们的私有数据受到了加密技术的保护。现代加密算法远远超过古希腊人对他们敏感数据的保护,至少没有人需要为此剃个光头,不是吗?

② 云计算时代信息数据安全如何保障

信息安全的主要目标之一是保护用户数据和信息安全。当向云计算过渡时,传统的数据安全方法将遭到云模式架构的挑战。弹性、多租户、新的物理和逻辑架构,以及抽象的控制需要新的数据安全策略。
数据与信息安全的具体防护可分为以下几个方面。
1.数据安全隔离
为实现不同用户间数据信息的隔离,可根据应用具体需求,采用物理隔离、虚拟化和Multi-tenancy等方案实现不同租户之间数据和配置信息的安全隔离,以保护每个租户数据的安全与隐私。
2.数据访问控制
在数据的访问控制方面,可通过采用基于身份认证的权限控制方式,进行实时的身份监控、权限认证和证书检查,防止用户间的非法越权访问。如可采用默认“denyall”的访问控制策略,仅在有数据访问需求时才显性打开对应的端口或开启相关访问策略。在虚拟应用环境下,可设置虚拟环境下的逻辑边界安全访问控制策略,如通过加载虚拟防火墙等方式实现虚拟机间、虚拟机组内部精细化的数据访问控制策略。
3.数据加密存储
对数据进行加密是实现数据保护的一个重要方法,即使该数据被人非法窃取,对他们来说也只是一堆乱码,而无法知道具体的信息内容。在加密算法选择方面,应选择加密性能较高的对称加密算法,如AES、3DES等国际通用算法,或我国国有商密算法SCB2等。在加密密钥管理方面,应采用集中化的用户密钥管理与分发机制,实现对用户信息存储的高效安全管理与维护。对云存储类服务,云计算系统应支持提供加密服务,对数据进行加密存储,防止数据被他人非法窥探;对于虚拟机等服务,则建议用户对重要的用户数据在上传、存储前自行进行加密。
4.数据加密传输
在云计算应用环境下,数据的网络传输不可避免,因此保障数据传输的安全性也很重要。数据传输加密可以选择在链路层、网络层、传输层等层面实现,采用网络传输加密技术保证网络传输数据信息的机密性、完整性、可用性。对于管理信息加密传输,可采用SSH、SSL等方式为云计算系统内部的维护管理提供数据加密通道,保障维护管理信息安全。对于用户数据加密传输,可采用IPSecVPN、SSL等VPN技术提高用户数据的网络传输安全性。
5.数据备份与恢复
不论数据存放在何处,用户都应该慎重考虑数据丢失风险,为应对突发的云计算平台的系统性故障或灾难事件,对数据进行备份及进行快速恢复十分重要。如在虚拟化环境下,应能支持基于磁盘的备份与恢复,实现快速的虚拟机恢复,应支持文件级完整与增量备份,保存增量更改以提高备份效率。
6.剩余信息保护
由于用户数据在云计算平台中是共享存储的,今天分配给某一用户的存储空间,明天可能分配给另外一个用户,因此需要做好剩余信息的保护措施。所以要求云计算系统在将存储资源重分配给新的用户之前,必须进行完整的数据擦除,在对存储的用户文件/对象删除后,对对应的存储区进行完整的数据擦除或标识为只写(只能被新的数据覆写),防止被非法恶意恢复。

③ 云计算面临的安全威胁有哪些

云计算面临七大安全威胁:
一、拒绝服务攻击
首先,云计算以宽带网络和Web方式提供服务,其可用性方面将会受到挑战,针对云计算服务的拒绝服务攻击,需要云计算服务提供商认真调查、采取相应的专门保护措。
二、不安全的接口和API
“开放”是云计算时代的一个重要的业务变革方向。云计算服务商需要提供大量的网络接口和API(应用程序编程接口)来整合上下游、寻找业务伙伴,甚至直接提供业务。
但是,开发过程中的安全测试、运行过程中的渗透测试,以及测试工具、测试方法等,在针对网络接口和API上都还不够成熟,这些通常工作于后台相对安全环境的功能被开放出来后,将会带来新的安全威胁。
三、恶意的内部员工
Verizon Business最新的数据泄漏调查报告显示,48%的数据泄漏是由于恶意的内部人士所为。云计算服务作为某种程度上的外包业务,工作上有权限、有能力接触并处理用户数据的范围进一步扩大,其中包括用户自己的内部人士、供应商员工、云计算服务商的管理维护人员、云计算服务商的供应商员工等。这种访问范围的扩大,增加了恶意的“内部员工”滥用数据和服务的可能性。
四、共享技术产生的问题
资源的虚拟池化和共享是云计算的根本,但是这种共享并不是没有代价的,最为典型的代价就是使得安全性降低。事实上,针对虚拟层的安全研究已经被广为重视,从2007年开始,主流的虚拟层软件屡有漏洞被发现。
五、数据泄漏
数据泄漏是云计算、尤其是公共“云”最被人们担心的问题。企业或组织的管理层和IT决策者,需要仔细评估云计算提供商对数据的保护能力。很多威胁都可能导致云中的数据丢失和泄漏。云中关键数据的高密度聚合,给潜在的攻击者带来极大的诱惑。
密钥的管理也是一个挑战,密钥的丢失会导致数据毁坏,密钥的国度分享又会削弱加密的效果。另外,由于同宿主机上其他客户的法律取证要求,也可能会导致不必要的数据外泄和损失。
六、账号和服务劫持
传统的服务和会话劫持已经广为人知,云计算给账号和服务“劫持”又增添了不少新的含义。在云环境中,如果攻击者能够获得你的账号信息,他们就可以窃听你的活动和交易,操纵处理的数据,发送虚假的信息,将你的客户引到假冒的站点,并且被“劫持”的服务和账号可能会被利用,以便发起新的攻击。
七、未知的风险场景
云计算服务商和用户之间存在很大的信息不对称性。一方面,用户选择将自己的IT计算和服务外包给云服务提供商,就是为了解放和优化自己的资源,所以没有必要也没有足够的资源去全面洞察“云”中的所有细节;另一方面,云服务提供商出于商业机密和安全考虑,并不情愿分享所有的关键信息(即使是和安全直接相关的)。在这种情形下,云计算的用户必然需要处理大量的未知安全风险。

④ 什么是云端密钥共享

如果你不信任他们,你就把数据加密。”这是数据安全专家常常挂在嘴边的一句话。部署在企业内部的数据中心,由于单位组织完全控制全部的软/硬件设备,所以数据要不要加密由企业规章制度界定。

但是在云端,多个互不认识的租户共用计算资源,每个租户需要加密的数据自然就更多,需要加密的数据越多,业务流程越复杂,密钥管理也就越繁重。所以,在实际的操作过程中,我们要综合考虑各个因素,制定出一套既满足安全要求又不大幅度增加加/解密和密钥管理的工作难度的方案。

加密介绍

根据企业的规章制度,某些数据被列为机密并必须要加以保护,当前存储在企业内部的机密数据开始被陆续迁入云端,所以数据保护的力度必须要加大。把机密数据存储在企业的安全边界之外,这增加了数据保护的复杂度,同时也增加了风险系数。

关于云端的数据加密,以下因素必须慎重考虑。

1)不单单在传输过程中需要加密保护,在云端存储和使用数据的过程中也依然需要加密保护。

2)存储在云端并被共享的非结构化数据文件保护方法有以下两种:

  • 采用授权服务器进行集中加密;

  • 加密直接被嵌入到每个文件当中(分散加密)。


  • 当使用经第一种方法加密的文件时,首先要联系授权服务器进行解密,比如微软的 Word 文字处理软件会自动联系服务器并完成身份验证和解密工作。


  • 3)加/解密的密钥的管理期限就是数据的整个生命周期,在数据被销毁之前如果密钥丢失,则会导致数据无法解密。另外,对于密钥的保护和正当使用,要尽可能避免依赖云服务提供商。


  • 4)保护那些经常被忽视却又包含敏感信息的文件,比如日志文件和元数据如果不加以保护,那么很可能成为数据泄露的途径。


  • 5)云端的加密密钥应具备足够的强度(如 AES-256),且与同一单位组织内部的加密密钥一致。提倡使用开放的且经过验证的加密格式,尽可能避免使用特有的加密格式。
  • 云端数据库加密

  • 首先考虑数据要不要加密,因为加密数据会提高成本并使得业务处理复杂化。目前几乎所有的数据库都具备权限管理机制,如果配置得当,数据库管理系统本身就能很好地保护敏感数据。如果遇到下面 3 种情况,那么我们就不得不对数据库中的记录进行加密了:

  • 不想让有权限的人(如数据库管理员)看到记录信息。

  • 法律规定一些记录必须要加密(如交易记录中的信用卡信息)。

  • 数据存储在数据库的一个 Schema 中,但是数据的主人无法控制访问这些数据的账号(比如多人使用的共享账号,每个人都不能随意修改账号密码)。


  • 当人们使用云端数据库,尤其是 SaaS 应用(该应用需要使用数据库)时,如果数据库不能操作加密的数据,那么数据库的功能会大打折扣。当然,前提是数据库管理系统或者应用能够访问密钥。


  • 数据加密是以提高复杂度和降低性能为代价的,下面是一些替代的方法。
  • 1)使用数据库本身的对象安全机制

  • 数据库中的表、视图、存储过程、函数等统称为对象,对这些对象的访问,数据库管理系统本身提供了一套权限管理机制,诸如账号、分组、角色、授权、撤权等。要严格控制那些被授权的账号,确保这些账号只分配给正确的人。
  • 2)存储安全哈希值

  • 只存储数据的哈希值,而不直接存储数据本身。这使得你的应用程序能证明持有正确哈希值的人就是持有正确数据的人,因为数据与哈希值是一一对应关系,即 hash(data)=x,把 x 存储在数据库中,而 data 存储在另外一个私密的地方,从 x 是无法反算出 data 的。
  • 密钥管理

  • 无论是采用对称加密算法还是采用非对称加密算法,密钥的管理都是重中之重,尤其是对于多租户模式的公共云端来说,密钥管理是一个比较繁重的任务。


  • 最简单的案例是应用在云端运行,而只在企业内部使用密钥对迁移到云端的数据进行加密——在企业的网络安全边界部署一个加密引擎,只要通过这个加密引擎,那么离开企业的数据就会自动加密,而进入企业的数据则会自动解密。


  • 而下面这种情况会把事情搞得很复杂:如果一个使用密钥的应用又包含其他需要使用密钥解密数据的进程(如一个批处理应用可能包含很多进程),且这些进程又驻留云端,那么此时的密钥需要离开企业内部的网络安全边界而进入云端。


  • 企业一般为每个需要加密功能的实体(用户、设备、进程等)分配单独的密钥,这样就不用共享一个密钥,从而避免带来很多隐患。


  • 为了管理众多的实体密钥,最简便的方法是部署一个基于身份的密钥管理中心,从而使得为一个具体实体加密的任何数据只对该实体本身有效。如果同一个组的成员确实需要共享数据,那么可以给该组分配组级的密钥,同组成员共享组级密钥。正如前面所提到的那样:密钥的管理必须局限在企业内部。


  • 如果数据存储在公共云环境中,那么在退出这个环境时,需要确保所有的数据(特别是 PII、SPI 数据或受到监管的数据)已经从公共云环境中删除,其中包括其他存储介质(如备份磁带)上的数据。本地管理密钥的做法很容易实现这个目标:只要从本地密钥管理中心删除相应的密钥即可,从而保证残留在公共云的任何数据再也不能被解密。


  • 如果云服务提供商和消费者不严格执行各自的密钥管理流程,那么数据加密就没有什么实际意义。比如云服务提供商,如果职责混乱,大家可以随意访问密钥服务器和存储了加密数据的服务器,或者 DBA 能随意访问数据库中的个人密钥,那么数据加密就形同虚设。


  • 同样,比如云服务消费者,如果存储密钥的终端设备本身就不安全(如移动设备)或者没有达到与加密系统同等安全级别的终端设备,这就像用木板做保险柜,那么这时加密数据无疑也是形同虚设。


  • 围绕如何保护密钥本身,方案设计师通常的做法是采用密钥来加密密钥,只在内存中产生有效密钥,并且只存储加密过的密钥。这理解起来有点绕,其实就是把密钥当作普通的数据再次进行加密。

⑤ 密钥管理的管理技术

1、对称密钥管理。对称加密是基于共同保守秘密来实现的。采用对称加密技术的贸易双方必须要保证采用的是相同的密钥,要保证彼此密钥的交换是安全可靠的,同时还要设定防止密钥泄密和更改密钥的程序。这样,对称密钥的管理和分发工作将变成一件潜在危险的和繁琐的过程。通过公开密钥加密技术实现对称密钥的管理使相应的管理变得简单和更加安全,同时还解决了纯对称密钥模式中存在的可靠性问题和鉴别问题。 贸易方可以为每次交换的信息(如每次的EDI交换)生成唯一一把对称密钥并用公开密钥对该密钥进行加密,然后再将加密后的密钥和用该密钥加密的信息(如EDI交换)一起发送给相应的贸易方。由于对每次信息交换都对应生成了唯一一把密钥,因此各贸易方就不再需要对密钥进行维护和担心密钥的泄露或过期。这种方式的另一优点是,即使泄露了一把密钥也只将影响一笔交易,而不会影响到贸易双方之间所有的交易关系。这种方式还提供了贸易伙伴间发布对称密钥的一种安全途径。
2、公开密钥管理/数字证书。贸易伙伴间可以使用数字证书(公开密钥证书)来交换公开密钥。国际电信联盟(ITU)制定的标准X.509,对数字证书进行了定义该标准等同于国际标准化组织(ISO)与国际电工委员会(IEC)联合发布的ISO/IEC 9594-8:195标准。数字证书通常包含有唯一标识证书所有者(即贸易方)的名称、唯一标识证书发布者的名称、证书所有者的公开密钥、证书发布者的数字签名、证书的有效期及证书的序列号等。证书发布者一般称为证书管理机构(CA),它是贸易各方都信赖的机构。数字证书能够起到标识贸易方的作用,是目前电子商务广泛采用的技术之一。
3、密钥管理相关的标准规范。目前国际有关的标准化机构都着手制定关于密钥管理的技术标准规范。ISO与IEC下属的信息技术委员会(JTC1)已起草了关于密钥管理的国际标准规范。该规范主要由三部分组成:一是密钥管理框架;二是采用对称技术的机制;三是采用非对称技术的机制。该规范现已进入到国际标准草案表决阶段,并将很快成为正式的国际标准。
数字签名
数字签名是公开密钥加密技术的另一类应用。它的主要方式是:报文的发送方从报文文本中生成一个128位的散列值(或报文摘要)。发送方用自己的专用密钥对这个散列值进行加密来形成发送方的数字签名。然后,这个数字签名将作为报文的附件和报文一起发送给报文的接收方。报文的接收方首先从接收到的原始报文中计算出128位的散列值(或报文摘要),接着再用发送方的公开密钥来对报文附加的数字签名进行解密。如果两个散列值相同,那么接收方就能确认该数字签名是发送方的。通过数字签名能够实现对原始报文的鉴别和不可抵赖性。
ISO/IEC JTC1已在起草有关的国际标准规范。该标准的初步题目是“信息技术安全技术带附件的数字签名方案”,它由概述和基于身份的机制两部分构成。 密码学简介 据记载,公元前400年,古希腊人发明了置换密码。1881年世界上的第一个电话保密专利出现。在第二次世界大战期间,德国军方启用“恩尼格玛”密码机,密码学在战争中起着非常重要的作用。
随着信息化和数字化社会的发展,人们对信息安全和保密的重要性认识不断提高,于是在1997年,美国国家标准局公布实施了“美国数据加密标准(DES)”,民间力量开始全面介入密码学的研究和应用中,采用的加密算法有DES、RSA、SHA等。随着对加密强度需求的不断提高,近期又出现了AES、ECC等。
使用密码学可以达到以下目的:
保密性:防止用户的标识或数据被读取。
数据完整性:防止数据被更改。
身份验证:确保数据发自特定的一方。
二. 加密算法介绍根据密钥类型不同将现代密码技术分为两类:对称加密算法(秘密钥匙加密)和非对称加密算法(公开密钥加密)。
对称钥匙加密系统是加密和解密均采用同一把秘密钥匙,而且通信双方都必须获得这把钥匙,并保持钥匙的秘密。
非对称密钥加密系统采用的加密钥匙(公钥)和解密钥匙(私钥)是不同的。 在对称加密算法中,只有一个密钥用来加密和解密信息,即加密和解密采用相同的密钥。常用的算法包括:DES(Data Encryption Standard):数据加密标准,速度较快,适用于加密大量数据的场合。
3DES(Triple DES):是基于DES,对一块数据用三个不同的密钥进行三次加密,强度更高。
AES(Advanced Encryption Standard):高级加密标准,是下一代的加密算法标准,速度快,安全级别高;
2000年10月,NIST(美国国家标准和技术协会)宣布通过从15种侯选算法中选出的一项新的密匙加密标准。Rijndael被选中成为将来的AES。Rijndael是在 1999 年下半年,由研究员Joan Daemen 和 Vincent Rijmen 创建的。AES 正日益成为加密各种形式的电子数据的实际标准。
美国标准与技术研究院 (NIST) 于 2002 年 5 月 26 日制定了新的高级加密标准(AES) 规范。
算法原理 AES 算法基于排列和置换运算。排列是对数据重新进行安排,置换是将一个数据单元替换为另一个。AES 使用几种不同的方法来执行排列和置换运算。
AES 是一个迭代的、对称密钥分组的密码,它可以使用128、192 和 256 位密钥,并且用 128 位(16字节)分组加密和解密数据。与公共密钥密码使用密钥对不同,对称密钥密码使用相同的密钥加密和解密数据。通过分组密码返回的加密数据的位数与输入数据相同。迭代加密使用一个循环结构,在该循环中重复置换和替换输入数据。
AES与3DES的比较 算法名称 算法类型 密钥长度 速度 解密时间(建设机器每秒尝试255个密钥) 资源消耗 AES 对称block密码 128、192、256位 高 1490000亿年 低 3DES 对称feistel密码 112位或168位 低 46亿年 中 常见的非对称加密算法如下:
RSA:由 RSA 公司发明,是一个支持变长密钥的公共密钥算法,需要加密的文件块的长度也是可变的;
DSA(Digital Signature Algorithm):数字签名算法,是一种标准的 DSS(数字签名标准);
ECC(Elliptic Curves Cryptography):椭圆曲线密码编码学。
在1976年,由于对称加密算法已经不能满足需要,Diffie 和Hellman发表了一篇叫《密码学新动向》的文章,介绍了公匙加密的概念,由Rivet、Shamir、Adelman提出了RSA算法。
随着分解大整数方法的进步及完善、计算机速度的提高以及计算机网络的发展,为了保障数据的安全,RSA的密钥需要不断增加,但是,密钥长度的增加导致了其加解密的速度大为降低,硬件实现也变得越来越难以忍受,这对使用RSA的应用带来了很重的负担,因此需要一种新的算法来代替RSA。
1985年N.Koblitz和Miller提出将椭圆曲线用于密码算法,根据是有限域上的椭圆曲线上的点群中的离散对数问题ECDLP。ECDLP是比因子分解问题更难的问题,它是指数级的难度。
原理——椭圆曲线上的难题 椭圆曲线上离散对数问题ECDLP定义如下:给定素数p和椭圆曲线E,对Q=kP,在已知P,Q 的情况下求出小于p的正整数k。可以证明由k和P计算Q比较容易,而由Q和P计算k则比较困难。
将椭圆曲线中的加法运算与离散对数中的模乘运算相对应,将椭圆曲线中的乘法运算与离散对数中的模幂运算相对应,我们就可以建立基于椭圆曲线的对应的密码体制。
例如,对应Diffie-Hellman公钥系统,我们可以通过如下方式在椭圆曲线上予以实现:在E上选取生成元P,要求由P产生的群元素足够多,通信双方A和B分别选取a和b,a和b 予以保密,但将aP和bP公开,A和B间通信用的密钥为abP,这是第三者无法得知的。
对应ELGamal密码系统可以采用如下的方式在椭圆曲线上予以实现:
将明文m嵌入到E上Pm点,选一点B∈E,每一用户都选一整数a,0<a<N,N为阶数已知,a保密,aB公开。欲向A送m,可送去下面一对数偶:[kB,Pm+k(aAB)],k是随机产生的整数。A可以从kB求得k(aAB)。通过:Pm+k(aAB)- k(aAB)=Pm恢复Pm。同样对应DSA,考虑如下等式:
K=kG [其中 K,G为Ep(a,b)上的点,k为小于n(n是点G的阶)的整数]
不难发现,给定k和G,根据加法法则,计算K很容易;但给定K和G,求k就相对困难了。
这就是椭圆曲线加密算法采用的难题。我们把点G称为基点(base point),k(k<n,n为基点G的阶)称为私有密钥(privte key),K称为公开密钥(public key)。
ECC与RSA的比较 ECC和RSA相比,在许多方面都有对绝对的优势,主要体现在以下方面:
抗攻击性强。相同的密钥长度,其抗攻击性要强很多倍。
计算量小,处理速度快。ECC总的速度比RSA、DSA要快得多。
存储空间占用小。ECC的密钥尺寸和系统参数与RSA、DSA相比要小得多,意味着它所占的存贮空间要小得多。这对于加密算法在IC卡上的应用具有特别重要的意义。
带宽要求低。当对长消息进行加解密时,三类密码系统有相同的带宽要求,但应用于短消息时ECC带宽要求却低得多。带宽要求低使ECC在无线网络领域具有广泛的应用前景。
ECC的这些特点使它必将取代RSA,成为通用的公钥加密算法。比如SET协议的制定者已把它作为下一代SET协议中缺省的公钥密码算法。
下面两张表示是RSA和ECC的安全性和速度的比较。 攻破时间(MIPS年) RSA/DSA(密钥长度) ECC密钥长度 RSA/ECC密钥长度比 10 512 106 5:1 10 768 132 6:1 10 1024 160 7:1 10 2048 210 10:1 10 21000 600 35:1 RSA和ECC安全模长得比较 功能 Security Builder 1.2 BSAFE 3.0 163位ECC(ms) 1,023位RSA(ms) 密钥对生成 3.8 4,708.3 签名 2.1(ECNRA) 228.4 3.0(ECDSA) 认证 9.9(ECNRA) 12.7 10.7(ECDSA) Diffie—Hellman密钥交换 7.3 1,654.0 RSA和ECC速度比较 散列算法也叫哈希算法,英文是Hash ,就是把任意长度的输入(又叫做预映射, pre-image),通过散列算法,变换成固定长度的输出,该输出就是散列值。这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出,而不可能从散列值来唯一的确定输入值。简单的说就是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数。
HASH主要用于信息安全领域中加密算法,它把一些不同长度的信息转化成杂乱的128位的编码,这些编码值叫做HASH值. 也可以说,hash就是找到一种数据内容和数据存放地址之间的映射关系散列是信息的提炼,通常其长度要比信息小得多,且为一个固定长度。加密性强的散列一定是不可逆的,这就意味着通过散列结果,无法推出任何部分的原始信息。任何输入信息的变化,哪怕仅一位,都将导致散列结果的明显变化,这称之为雪崩效应。散列还应该是防冲突的,即找不出具有相同散列结果的两条信息。具有这些特性的散列结果就可以用于验证信息是否被修改。
单向散列函数一般用于产生消息摘要,密钥加密等,常见的有:
MD5(Message Digest Algorithm 5):是RSA数据安全公司开发的一种单向散列算法。
SHA(Secure Hash Algorithm):可以对任意长度的数据运算生成一个160位的数值;
在1993年,安全散列算法(SHA)由美国国家标准和技术协会(NIST)提出,并作为联邦信息处理标准(FIPS PUB 180)公布;1995年又发布了一个修订版FIPS PUB 180-1,通常称之为SHA-1。SHA-1是基于MD4算法的,并且它的设计在很大程度上是模仿MD4的。现在已成为公认的最安全的散列算法之一,并被广泛使用。
原理 SHA-1是一种数据加密算法,该算法的思想是接收一段明文,然后以一种不可逆的方式将它转换成一段(通常更小)密文,也可以简单的理解为取一串输入码(称为预映射或信息),并把它们转化为长度较短、位数固定的输出序列即散列值(也称为信息摘要或信息认证代码)的过程。
单向散列函数的安全性在于其产生散列值的操作过程具有较强的单向性。如果在输入序列中嵌入密码,那么任何人在不知道密码的情况下都不能产生正确的散列值,从而保证了其安全性。SHA将输入流按照每块512位(64个字节)进行分块,并产生20个字节的被称为信息认证代码或信息摘要的输出。
该算法输入报文的最大长度不超过264位,产生的输出是一个160位的报文摘要。输入是按512 位的分组进行处理的。SHA-1是不可逆的、防冲突,并具有良好的雪崩效应。
通过散列算法可实现数字签名实现,数字签名的原理是将要传送的明文通过一种函数运算(Hash)转换成报文摘要(不同的明文对应不同的报文摘要),报文摘要加密后与明文一起传送给接受方,接受方将接受的明文产生新的报文摘要与发送方的发来报文摘要解密比较,比较结果一致表示明文未被改动,如果不一致表示明文已被篡改。
MAC (信息认证代码)就是一个散列结果,其中部分输入信息是密码,只有知道这个密码的参与者才能再次计算和验证MAC码的合法性。MAC的产生参见下图。 输入信息 密码 散列函数 信息认证代码 SHA-1与MD5的比较 因为二者均由MD4导出,SHA-1和MD5彼此很相似。相应的,他们的强度和其他特性也是相似,但还有以下几点不同:
对强行供给的安全性:最显著和最重要的区别是SHA-1摘要比MD5摘要长32 位。使用强行技术,产生任何一个报文使其摘要等于给定报摘要的难度对MD5是2数量级的操作,而对SHA-1则是2数量级的操作。这样,SHA-1对强行攻击有更大的强度。
对密码分析的安全性:由于MD5的设计,易受密码分析的攻击,SHA-1显得不易受这样的攻击。
速度:在相同的硬件上,SHA-1的运行速度比MD5慢。 对称与非对称算法比较
以上综述了两种加密方法的原理,总体来说主要有下面几个方面的不同:
一、 在管理方面:公钥密码算法只需要较少的资源就可以实现目的,在密钥的分配上,两者之间相差一个指数级别(一个是n一个是n)。所以私钥密码算法不适应广域网的使用,而且更重要的一点是它不支持数字签名。
二、 在安全方面:由于公钥密码算法基于未解决的数学难题,在破解上几乎不可能。对于私钥密码算法,到了AES虽说从理论来说是不可能破解的,但从计算机的发展角度来看。公钥更具有优越性。
三、 从速度上来看:AES的软件实现速度已经达到了每秒数兆或数十兆比特。是公钥的100倍,如果用硬件来实现的话这个比值将扩大到1000倍。
加密算法的选择 前面的章节已经介绍了对称解密算法和非对称加密算法,有很多人疑惑:那我们在实际使用的过程中究竟该使用哪一种比较好呢?
我们应该根据自己的使用特点来确定,由于非对称加密算法的运行速度比对称加密算法的速度慢很多,当我们需要加密大量的数据时,建议采用对称加密算法,提高加解密速度。
对称加密算法不能实现签名,因此签名只能非对称算法。
由于对称加密算法的密钥管理是一个复杂的过程,密钥的管理直接决定着他的安全性,因此当数据量很小时,我们可以考虑采用非对称加密算法。
在实际的操作过程中,我们通常采用的方式是:采用非对称加密算法管理对称算法的密钥,然后用对称加密算法加密数据,这样我们就集成了两类加密算法的优点,既实现了加密速度快的优点,又实现了安全方便管理密钥的优点。
如果在选定了加密算法后,那采用多少位的密钥呢?一般来说,密钥越长,运行的速度就越慢,应该根据的我们实际需要的安全级别来选择,一般来说,RSA建议采用1024位的数字,ECC建议采用160位,AES采用128为即可。
密码学在现代的应用, 随着密码学商业应用的普及,公钥密码学受到前所未有的重视。除传统的密码应用系统外,PKI系统以公钥密码技术为主,提供加密、签名、认证、密钥管理、分配等功能。
保密通信:保密通信是密码学产生的动因。使用公私钥密码体制进行保密通信时,信息接收者只有知道对应的密钥才可以解密该信息。
数字签名:数字签名技术可以代替传统的手写签名,而且从安全的角度考虑,数字签名具有很好的防伪造功能。在政府机关、军事领域、商业领域有广泛的应用环境。
秘密共享:秘密共享技术是指将一个秘密信息利用密码技术分拆成n个称为共享因子的信息,分发给n个成员,只有k(k≤n)个合法成员的共享因子才可以恢复该秘密信息,其中任何一个或m(m≤k)个成员合作都不知道该秘密信息。利用秘密共享技术可以控制任何需要多个人共同控制的秘密信息、命令等。
认证功能:在公开的信道上进行敏感信息的传输,采用签名技术实现对消息的真实性、完整性进行验证,通过验证公钥证书实现对通信主体的身份验证。
密钥管理:密钥是保密系统中更为脆弱而重要的环节,公钥密码体制是解决密钥管理工作的有力工具;利用公钥密码体制进行密钥协商和产生,保密通信双方不需要事先共享秘密信息;利用公钥密码体制进行密钥分发、保护、密钥托管、密钥恢复等。
基于公钥密码体制可以实现以上通用功能以外,还可以设计实现以下的系统:安全电子商务系统、电子现金系统、电子选举系统、电子招投标系统、电子彩票系统等。
公钥密码体制的产生是密码学由传统的政府、军事等应用领域走向商用、民用的基础,同时互联网、电子商务的发展为密码学的发展开辟了更为广阔的前景。
加密算法的未来 随着计算方法的改进,计算机运行速度的加快,网络的发展,越来越多的算法被破解。
在2004年国际密码学会议(Crypto’2004)上,来自中国山东大学的王小云教授做的破译MD5、HAVAL-128、MD4和RIPEMD算法的报告,令在场的国际顶尖密码学专家都为之震惊,意味着这些算法将从应用中淘汰。随后,SHA-1也被宣告被破解。
历史上有三次对DES有影响的攻击实验。1997年,利用当时各国 7万台计算机,历时96天破解了DES的密钥。1998年,电子边境基金会(EFF)用25万美元制造的专用计算机,用56小时破解了DES的密钥。1999年,EFF用22小时15分完成了破解工作。因此。曾经有过卓越贡献的DES也不能满足我们日益增长的需求了。
最近,一组研究人员成功的把一个512位的整数分解因子,宣告了RSA的破解。
我们说数据的安全是相对的,可以说在一定时期一定条件下是安全的,随着硬件和网络的发展,或者是另一个王小云的出现,目前的常用加密算法都有可能在短时间内被破解,那时我们不得不使用更长的密钥或更加先进的算法,才能保证数据的安全,因此加密算法依然需要不断发展和完善,提供更高的加密安全强度和运算速度。
纵观这两种算法一个从DES到3DES再到AES,一个从RSA到ECC。其发展角度无不是从密钥的简单性,成本的低廉性,管理的简易性,算法的复杂性,保密的安全性以及计算的快速性这几个方面去考虑。因此,未来算法的发展也必定是从这几个角度出发的,而且在实际操作中往往把这两种算法结合起来,也需将来一种集两种算法优点于一身的新型算法将会出现,到那个时候,电子商务的实现必将更加的快捷和安全。