本篇文章给大家谈谈对称加密体制的工作过程,以及在对称加密体制中,必须保密的是对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
下面举个例子来简要说明一下对称加密的工作过程。甲和乙是一对生意搭档,他们住在不同的城市。由于生意上的需要,他们经常会相互之间邮寄重要的货物。为了保证货物的安全,他们商定制作一个保险盒,将物品放入其中。他们打造了两把相同的钥匙分别保管,以便在收到包裹时用这个钥匙打开保险盒,以及在邮寄货物前用这把钥匙锁上保险盒。
上面是一个将重要资源安全传递到目的地的传统方式,只要甲乙小心保管好钥匙,那么就算有人得到保险盒,也无法打开。这个思想被用到了现代计算机通信的信息加密中。在对称加密中,数据发送方将明文(原始数据)和加密密钥一起经过特殊加密算法处理后,使其变成复杂的加密密文发送出去。接收方收到密文后,若想解读原文,则需要使用加密密钥及相同算法的逆算法对密文进行解密,才能使其恢复成可读明文。在对称加密算法中,使用的密钥只有一个,发收信双方都使用这个密钥对数据进行加密和解密。
SQL Server 2005一个令人激动的特性是内置了加密的功能。在这个新版的SQL Server中,开发团队直接在T-SQL中加入了加密工具、证书创建和密钥管理的功能。对于因为法律要求或商业需求而需要加密表中的数据的人来说,这是一个好礼物。对于犹豫是否用加密来保证数据安全的人来说,做决定也更容易了。这篇文章介绍新的加密功能是怎么工作,怎么使用。
TSQL现在支持使用对称密钥和非对称密钥,证书和密码。本文介绍如何创建、管理和使用对称密钥和证书。
根据涉及的内容,我决定把本文分为三节:
第一部分:服务主密钥和数据库主密钥
第二部分:证书
第三部分:对称密钥
1. 服务主密钥和数据库主密钥
图:SQL Server 2005加密层次结构
1.1 服务主密钥
当第一次需要使用服务主密钥对链接服务器密码、凭据或数据库主密钥进行加密时,便会自动生成服务主密钥。服务主密钥为 SQL Server 加密层次结构的根。服务主密钥直接或间接地保护树中的所有其他密钥和机密内容。使用本地计算机密钥和 Windows 数据保护 API 对服务主密钥进行加密。该 API 使用从 SQL Server 服务帐户的 Windows 凭据中派生出来的密钥。
因为服务主密钥是自动生成且由系统管理的,它只需要很少的管理。服务主密钥可以通过BACKUP SERVICE MASTER KEY语句来备份,格式为:
BACKUP SERVICE MASTER KEY TO FILE = 'path_to_file' ENCRYPTION BY PASSWORD = 'password'
'path_to_file' 指定要将服务主密钥导出到的文件的完整路径(包括文件名)。此路径可以是本地路径,也可以是网络位置的 UNC 路径。
'password' 用于对备份文件中的服务主密钥进行加密的密码。此密码应通过复杂性检查。
应当对服务主密钥进行备份,并将其存储在另外一个单独的安全位置。创建该备份应该是首先在服务器中执行的管理操作之一。
如果需要从备份文件中恢复服务主密钥,使用RESTORE SERVICE MASTER KEY语句。
RESTORE SERVICE MASTER KEY FROM FILE = 'path_to_file'
DECRYPTION BY PASSWORD = 'password' [FORCE]
'path_to_file' 指定存储服务主密钥的完整路径(包括文件名)。path_to_file 可以是本地路径,也可以是网络位置的 UNC 路径。
PASSWORD = 'password' 指定对从文件中导入的服务主密钥进行解密时所需的密码。
FORCE 即使存在数据丢失的风险,也要强制替换服务主密钥。
注:如果你在使用RESTORE SERVICE MASTER KEY时不得不使用FORCE选项,你可能会遇到部分或全部加密数据丢失的情况。
如果你的服务主密钥泄露了,或者你想更改SQL Server服务帐户,你可以通过ALTERSERVICE MASTER KEY语句重新生成或者恢复服务主密钥。它的用法请参考联机丛书。
因为服务主密钥是SQL Server自动生成的,所以,它没有对应的CREATE和DROP语句。
1.2 数据库主密钥
正如每个SQL Server有一个服务主密钥,每个数据库有自己的数据库主密钥。数据库主密钥通过CREATE MASTER KEY语句生成:
CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'password'
这个语句创建数据库主密钥,使用指定的密码加密它,并保存在数据库中。同时,数据库主密钥也被使用服务主密钥加密之后保存在master数据库中,这就是所谓的“自动密钥管理”。这个特性我们待会再讲。
象服务主密钥一样,你可以备份和恢复数据库主密钥。使用BACKUP MASTER KEY备份数据库主密钥。语法类似于备份服务主密钥:
BACKUP MASTER KEY TO FILE = 'path_to_file'
ENCRYPTION BY PASSWORD = 'password'
恢复数据库主密钥使用RESTORE MASTER KEY语句,它需要使用DECRYPTION BY PASSWORD子句提供备份时指定的加密密码,还要使用ENCRYPTION BY PASSWORD子句,SQL Server使用它提供的密码来加密数据库主密钥之后保存在数据库中。
RESTORE MASTER KEY FROM FILE = 'path_to_file'
DECRYPTION BY PASSWORD = 'password'
ENCRYPTION BY PASSWORD = 'password'
[ FORCE ]
同样,FORCE表示你将忽略在解密过程中的错误。
建议你在创建了数据库主密钥之后立即备份数据库主密钥,并把它保存到一个安全的地方。同样,使用FORCE语句可能导致已加密数据的丢失。
要删除数据库主密钥,使用DROP MASTER KEY语句,它删除当前数据库的主密钥。在执行之前,确定你在正确的数据库上下文中。
1.3 自动密钥管理
当创建数据库主密钥时,它被使用提供的密码加密然后被保存到当前数据库中。同时,它被使用服务主密钥加密并保存到master数据库中。这份保存的数据库主密钥允许服务器在需要的时候解密数据库主密钥,这就是自动密钥管理。没有自动密钥管理的话,你必须在每次使用证书或密钥加密或解密数据(它需要使用数据库主密钥)时使用OPEN MASTER KEY语句同时提供加密的密码。使用自动密钥管理,你不需要执行OPEN MASTER KEY语句,也不需要提供密码。
自动密钥管理的缺点就是每个sysadmin角色的成员都能够解密数据库主密钥。你可以通过ALTER MASTER KEY语句的DROP ENCRYPTION BY SERVICE MASTER KEY子句,从而不使用自动密钥管理。ALTER MASTER KEY的使用方法参见联机丛书。
对称加密和非对称加密,最重要的的区别就是加密算法的不同:对称加密算法在加密和解密时使用的是同一个秘钥,而非对称加密算法需要两个密钥来进行加密和解密,这两个秘钥是公开密钥(简称公钥)和私有密钥(简称私钥)。
加密,需要对加密和解密使用相同密钥的加密算法。由于其速度快,对称性加密通常在消息发送方需要加密大量数据时使用。所以,对称性加密也称为密钥加密。
1976年,美国学者Dime和Henman为解决信息公开传送和密钥管理问题,提出一种新的密钥交换协议,允许在不安全的媒体上的通讯双方交换信息,安全地达成一致的密钥,这就是“公开密钥系统”。
与对称加密算法不同,非对称加密算法需要两个密钥:公开密钥和私有密钥。公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。
对于对称加密,我们可以用一个例子来形象描述:
假如甲和乙是一对生意搭档,他们住在不同的城市。由于生意上的需要,他们经常会相互之间邮寄重要的货物。为了保证货物的安全,他们商定制作一个保险盒,将物品放入其中。他们打造了两把相同的钥匙分别保管,以便在收到包裹时用这个钥匙打开保险盒,以及在邮寄货物前用这把钥匙锁上保险盒。这就是一个将重要资源安全传递到目的地的传统方式,只要甲乙小心保管好钥匙,那么就算有人得到保险盒,也无法打开。
因此这个思想被用到了现代计算机通信的信息加密中。在对称加密中,数据发送方将明文(原始数据)和加密密钥一起经过特殊加密算法处理后,使其变成复杂的加密密文发送出去。接收方收到密文后,若想解读原文,则需要使用加密密钥及相同算法的逆算法对密文进行解密,才能使其恢复成可读明文。在对称加密算法中,使用的密钥只有一个,发收信双方都使用这个密钥对数据进行加密和解密。
对称加密工作过程简要示意图:
而对于非对称加密,同样我们可以以一个例子来说明:
譬如,甲乙之间使用如果以非对称加密的方式完成重要信息的安全传输,那么其步骤如下:
1、乙方生成一对密钥(公钥和私钥)并将公钥向其它方公开。
2、得到该公钥的甲方使用该密钥对机密信息进行加密后再发送给乙方。
3、乙方再用自己保存的另一把专用密钥(私钥)对加密后的信息进行解密。乙方只能用其专用密钥(私钥)解密由对应的公钥加密后的信息。
在传输过程中,即使攻击者截获了传输的密文,并得到了乙的公钥,也无法破解密文,因为只有乙的私钥才能解密密文。同样,如果乙要回复加密信息给甲,那么需要甲先公布甲的公钥给乙用于加密,甲自己保存甲的私钥用于解密。
以下是非对称加密工作过程简要示意图:
综上所述,对称加密和非对称加密,区别关键是加密密钥的不同。
对称加密的核心——通信双方共享一个密钥
通信过程:
A有明文m,使用加密算法E,密钥key,生成密文c=E(key,m);
B收到密文c,使用解密算法D,密钥key,得到明文m=D(key,c);
比喻:
对称加密是最直观,也是历史最久远的加密手段,类似于加锁和解锁,只不过钥匙的个数非常多(~~2^100),一个人穷其一生也试不完所有可能的钥匙。
对称算法(Symmetric Algorithm)就是加密密钥和解密密钥相同或能相互推导的密码算法。
秘密密钥算法或单密钥算法,要求发送者和接收者在安全通信之前,商定一个密钥。
对称算法的安全性完全依赖于密钥,加密和解密表示为:
EK(M) = C
DK(C) = M
关于对称加密体制的工作过程和在对称加密体制中,必须保密的是的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
本文标签:对称加密体制的工作过程