数据加密原理详解

news/2024/11/29 23:54:10/

数据加密,是一门历史悠久的技术,指通过加密算法和加密密钥将明文转变为密文,而解密则是通过解密算法和解密密钥将密文恢复为明文。它的核心是密码学。
数据加密仍是计算机系统对信息进行保护的一种最可靠的办法。它利用密码技术对信息进行加密,实现信息隐蔽,从而起到保护信息的安全的作用。

一、基本信息

简介
和防火墙配合使用的数据加密技术,是为提高信息系统和数据的安全性和保密性,防止秘密数据被外部破译而采用的主要技术手段之一。在技术上分别从软件和硬件两方面采取措施。按照作用的不同,数据加密技术可分为数据传输加密技术、数据存储加密技术、数据完整性的鉴别技术和密钥管理技术。
数据传输加密技术的目的是对传输中的数据流加密,通常有线路加密与端—端加密两种。线路加密侧重在线路上而不考虑信源与信宿,是对保密信息通过各线路采用不同的加密密钥提供安全保护。端—端加密指信息由发送端自动加密,并且由TCP/IP进行数据包封装,然后作为不可阅读和不可识别的数据穿过互联网,当这些信息到达目的地,将被自动重组、解密,而成为可读的数据。
数据存储加密技术的目的是防止在存储环节上的数据失密,数据存储加密技术可分为密文存储和存取控制两种。前者一般是通过加密算法转换、附加密码、加密模块等方法实现;后者则是对用户资格、权限加以审查和限制,防止非法用户存取数据或合法用户越权存取数据。
数据完整性鉴别技术的目的是对介入信息传送、存取和处理的人的身份和相关数据内容进行验证,一般包括口令、密钥、身份、数据等项的鉴别。系统通过对比验证对象输入的特征值是否符合预先设定的参数,实现对数据的安全保护。
密钥管理技术包括密钥的产生、分配、保存、更换和销毁等各个环节上的保密措施。
基本概念
数据加密的术语有:
明文,即原始的或未加密的数据。通过加密算法对其进行加密,加密算法的输入信息为明文和密钥;
密文,明文加密后的格式,是加密算法的输出信息。加密算法是公开的,而密钥则是不公开的。密文不应为无密钥的用户理解,用于数据的存储以及传输;
密钥,是由数字、字母或特殊符号组成的字符串,用它控制数据加密、解密的过程;
加密,把明文转换为密文的过程;
加密算法,加密所采用的变换方法;
解密,对密文实施与加密相逆的变换,从而获得明文的过程;
解密算法,解密所采用的变换方法。
加密技术是一种防止信息泄露的技术。它的核心技术是密码学,密码学是研究密码系统或通信安全的一门学科,它又分为密码编码学和密码分析学。
任何一个加密系统都是由明文、密文、算法和密钥组成。发送方通过加密设备或加密算法,用加密密钥将数据加密后发送出去。接收方在收到密文后,用解密密钥将密文解密,恢复为明文。在传输过程中,即使密文被非法分子偷窃获取,得到的也只是无法识别的密文,从而起到数据保密的作用。
数据加密

例:明文为字符串:
AS KINGFISHERS CATCH FIRE
(为简便起见,假定所处理的数据字符仅为大写字母和空格符)。假定密钥
为字符串:ELIOT

加密算法为:

  1. 将明文划分成多个密钥字符串长度大小的块(空格符以"+"表示)
    AS+KI NGFIS HERS+ CATCH +FIRE
  2. 用0~26范围的整数取代明文的每个字符,空格符=00,A=01,…,Z=26:
  3. 与步骤2一样对密钥的每个字符进行取代:
    0512091520
  4. 对明文的每个块,将其每个字符用对应的整数编码与密钥中相应位置的字符的整数编码的和模27后的值(整数编码)取代:
    举例:第一个整数编码为 (01+05)%27=06
  5. 将步骤4的结果中的整数编码再用其等价字符替换:
    FDIZB SSOXL MQ+GT HMBRA ERRFY
    如果给出密钥,该例的解密过程很简单。问题是对于一个恶意攻击者来说,在不知道密钥的情况下,利用相匹配的明文和密文获得密钥究竟有多困难?对于上面的简单例子,答案是相当容易的,不是一般的容易,但是,复杂的加密模式同样很容易设计出。理想的情况是采用的加密模式使得攻击者为了破解所付出的代价应远远超过其所获得的利益。实际上,该目的适用于所有的安全性措施。这种加密模式的可接受的最终目标是:即使是该模式的发明者也无法通过相匹配的明文和密文获得密钥,从而也无法破解密文。
    数据加密标准
    传统加密方法有两种,替换和置换。上面的例子采用的就是替换的方法:使用密钥将明文中的每一个字符转换为密文中的一个字符。而置换仅将明文的字符按不同的顺序重新排列。单独使用这两种方法的任意一种都是不够安全的,但是将这两种方法结合起来就能提供相当高的安全程度。数据加密标准(Data Encryption Standard,简称DES)就采用了这种结合算法,它由IBM制定,并在1977年成为美国官方加密标准。
    DES的工作原理为:将明文分割成许多64位大小的块,每个块用64位密钥进行加密,实际上,密钥由56位数据位和8位奇偶校验位组成,因此只有56个可能的密码而不是64个。每块先用初始置换方法进行加密,再连续进行16次复杂的替换,最后再对其施用初始置换的逆。第i步的替换并不是直接利用原始的密钥K,而是由K与i计算出的密钥Ki。
    DES具有这样的特性,其解密算法与加密算法相同,除了密钥Ki的施加顺序相反以外。
    公开密钥加密
    多年来,许多人都认为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) modulo(p - 1)*(q - 1) = 1
根据e、p和q可以容易地计算出d。
4) 公开整数r和e,但是不公开d;
5) 将明文P (假设P是一个小于r的整数)加密为密文C,计算方法为:
C = P^e modulo r
6) 将密文C解密为明文P,计算方法为:
P = C^d modulo r
然而只根据r和e(不是p和q)要计算出d是不可能的。因此,任何人都可对明文进行加密,但只有授权用户(知道d)才可对密文解密。

下面举一简单的例子对上述过程进行说明,显然我们只能选取很小的数字。

例:选取p=3, q=5,则r=15,(p-1)*(q-1)=8。选取e=11(大于p和q的质数),通过(d*11)modulo(8) = 1。
计算出d =3。
假定明文为整数13。则密文C为
C = P^e modulo r
= 13^11 modulo 15
= 1,792,160,394,037 modulo 15
= 7
复原明文P为:
P = C^d modulo r
= 7^3 modulo 15
= 343 modulo 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的签名。
加密行业状况
前言
随着信息化的高速发展,人们对信息安全的需求接踵而至,人才竞争、市场竞争、金融危机、敌特机构等都给企事业单位的发展带来巨大风险,内部窃密、黑客攻击、无意识泄密等窃密手段成为了人与人之间、企业与企业之间、国与国之间的安全隐患。
市场的需求、人的安全意识、环境的诸多因素促使着我国的信息安全高速发展,信息安全经历了从传统的单一防护如防火墙到信息安全整体解决方案、从传统的老三样防火墙、入侵检测、杀毒软件到多元化的信息安全防护、从传统的外部网络防护到内网安全、主机安全等。
传统数据加密技术分析
信息安全传统的老三样(防火墙、入侵检测、防病毒)成为了企事业单位网络建设的基础架构,已经远远不能满足用户的安全需求,新型的安全防护手段逐步成为了信息安全发展的主力军。例如主机监控、文档加密等技术。
在新型安全产品的队列中,主机监控主要采用外围围追堵截的技术方案,虽然对信息安全有一定的提高,但是因为产品自身依赖于操作系统,对数据自身没有有效的安全防护,所以存在着诸多安全漏洞,例如:最基础的手段拆拔硬盘、winpe光盘引导、USB引导等方式即可将数据盗走,而且不留任何痕迹;此技术更多的可以理解为企业资产管理软件,单一的产品无法满足用户对信息安全的要求。
文档加密是现今信息安全防护的主力军,采用透明加解密技术,对数据进行强制加密,不改变用户原有的使用习惯;此技术对数据自身加密,不管是脱离操作系统,还是非法脱离安全环境,用户数据自身都是安全的,对环境的依赖性比较小。市面上的文档加密主要的技术分为磁盘加密、应用层加密、驱动级加密等几种技术,应用层加密因为对应用程序的依赖性比较强,存在诸多兼容性和二次开发的问题,逐步被各信息安全厂商所淘汰。
当今主流的两大数据加密技术
我们所能常见到的主要就是磁盘加密和驱动级解密技术:
全盘加密技术是主要是对磁盘进行全盘加密,并且采用主机监控、防水墙等其他防护手段进行整体防护,磁盘加密主要为用户提供一个安全的运行环境,数据自身未进行加密,操作系统一旦启动完毕,数据自身在硬盘上以明文形式存在,主要靠防水墙的围追堵截等方式进行保护。磁盘加密技术的主要弊端是对磁盘进行加密的时间周期较长,造成项目的实施周期也较长,用户一般无法忍耐;磁盘加密技术是对磁盘进行全盘加密,一旦操作系统出现问题。需要对数据进行恢复也是一件让用户比较头痛的事情,正常一块500G的硬盘解密一次所需时间需要3-4个小时;市面上的主要做法是对系统盘不做加密防护,而是采用外围技术进行安全访问控制,大家知道操作系统的版本不断升级,微软自身的安全机制越来越高,人们对系统的控制力度越来越低,尤其黑客技术层层攀高,一旦防护体系被打破,所有一切将暴露无疑。另外,磁盘加密技术是对全盘的信息进行安全管控,其中包括系统文件,对系统的效率性能将大大影响。
驱动级技术是信息加密的主流技术,采用进程+后缀的方式进行安全防护,用户可以根据企事业单位的实际情况灵活配置,对重要的数据进行强制加密,大大提高了系统的运行效率。驱动级加密技术与磁盘加密技术的最大区别就是驱动级技术会对用户的数据自身进行保护,驱动级加密采用透明加解密技术,用户感觉不到系统的存在,不改变用户的原有操作,数据一旦脱离安全环境,用户将无法使用,有效提高了数据的安全性;另外驱动级加密技术比磁盘加密技术管理可以更加细粒度,有效实现数据的全生命周期管理,可以控制文件的使用时间、次数、复制、截屏、录像等操作,并且可以对文件的内部进行细粒度的授权管理和数据的外出访问控制,做到数据的全方位管理。驱动级加密技术在给用户的数据带来安全的同时,也给用户的使用便利性带来一定的问题,驱动级加密采用进程加密技术,对同类文件进行全部加密,无法有效区别个人文件与企业文件数据的分类管理,个人电脑与企业办公的并行运行等问题。

二、数据加密方法

异或
异或算法的好处便是数A和数B异或后,把结果再和数A异或便可得到B,或者和数B异或可重新得到数据A。利用异或的这个特性可简单实现数据的加密和解密算法。
构建加密机加密
加密机实际上便是异或中的其中一个数,可以根据自己的需要随意构建。

三、加密技术

对称加密技术
对称加密采用了对称密码编码技术,它的特点是文件加密和解密使用相同的密钥,即加密密钥也可以用作解密密钥,这种方法在密码学中叫做对称加密算法,对称加密算法使用起来简单快捷,密钥较短,且破译困难,除了数据加密标准(DES),另一个对称密钥加密系统是国际数据加密算法(IDEA),它比DES的加密性好,而且对计算机功能要求也没有那么高。IDEA加密标准由PGP(Pretty Good Privacy)系统使用。
非对称加密技术
1976年,美国学者Dime和Henman为解决信息公开传送和密钥管理问题,提出一种新的密钥交换协议,允许在不安全的媒体上的通讯双方交换信息,安全地达成一致的密钥,这就是“公开密钥系统”。相对于“对称加密算法”这种方法也叫做“非对称加密算法”。与对称加密算法不同,非对称加密算法需要两个密钥:公开密钥(publickey)和私有密 (privatekey)。公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。


http://www.ppmy.cn/news/466562.html

相关文章

Spring Boot整合RSA加密数据传输

简介 吹水时间开始了,是这样的,公司自研开发一个app,因为要运营和上架需要办理安全评估,办理中说到公司app有可能会泄露用户信息,对用户信息没有加密,遇到抓包的可能会导致用户信息泄露,这时我…

Oracle数据库中的数据加密

Oracle数据库中的数据加密 / Oracle数据库DES加密 有个需求,需要对某些敏感信息字段进行脱敏,要求在数据库中不能显示明文。如果目的侧重保护数据而非脱敏的话,可以考虑用表空间透明数据加密(TDE),不过现在…

.NET(C#)常用数据加密和解密方法汇总

欢迎加入Unity业内qq交流群:956187480 qq扫描二维码加群 一、数据加密的概念 1、 基本概念 2、 基本功能 3、 加密形式 二、 数据加密的项目应用和学习 1、 媒体加密:DRM 2、 文件加密:文本加密、pdf、word 3、 数据加密&…

Web常见数据加密方式

MD5加密 6位和32位,加密密文字符串由A-Z,0-9随机分配,80%网站管理员或用户密码加采取MD5加密。(不可逆) SHA加密 由A-Z,0-9随机组合,SHA1,SHA256,SHA384,SHA512长度固定。(不可逆)。对于任意长度的消息,SHA256都会产…

数据传输过程加密方案

文章目录 前言数据加密方案数据加密细节AES加解密 RSA公钥加密总结 前言 从前一篇网络安全基础要点知识介绍中可以知道,在网络通信中,通信传输数据容易被截取或篡改,如果在传输用户隐私数据过程中,被不法分子截取或篡改&#xff…

数据加密标准(DES)概念及工作原理

0x01 数据加密标准DES介绍 数据加密标准(Data Encryption Standard)(DES)是一种用于加密数字数据的对称密钥算法。密钥长度为56位,安全性不强,但它在密码学的进步中具有很大的影响力。 0x02 数据加密标准历…

数据库数据加密及其他安全性保护

数据加密 数据加密 防止数据库中数据在存储和传输中失密的有效手段 加密的基本思想 根据一定的算法将原始数据—明文(Plain text)变换为不可直接识别的格式—密文(Cipher text) 加密方法 存储加密 传输加密 存储加密 透明…

PostgreSQL 数据加密之 pgcrypto

文章目录 pgcrypto 简介pgcrypto 安装单向加密通用哈希函数密码哈希函数 双向加密PGP 加密函数PGP 函数选项原始加密函数 随机数据函数其他事项pgcrypto 配置NULL 处理安全限制 大家好,我是只谈技术不剪发的 Tony 老师。 根据信息安全的相关要求,用户的…