首页 > 其他分享 >密码学基础-数据加密

密码学基础-数据加密

时间:2024-08-05 18:58:31浏览次数:12  
标签:AES 加密 数据 密钥 对称 非对称 密码学 加密算法

密码学基础-对称加密与非对称加密

概述

安全通常从四个方面来定义:

  • 机密性
  • 完整性
  • 合法性(可用性,合法的数据才可用)
  • 不可否认性(发送方不可否认发送过的消息,接收方不可否认接收过的消息)

对当前主要的电子设备而言,代码以及数据的读、写、使用(执行)、传输是主要的研究方向。
每当讨论安全的话题,我们都要明白当前要解决的问题是什么,就向在家里,为了避免火灾会安装火警烟雾报警器,为了防止坏人随意进入,会安装门锁;为了存入账户的钱有效,会申请回执存根等等。
关于完整性的保护,可以参考前述的文章:密码学基础-Hash、MAC、HMAC 的区别与联系。你总是可以尝试使用文章中介绍的这些算法来构建完整性保护方案:
在这里插入图片描述

本节主要讨论机密性的话题。就像谍战里的情报人员一样,把要解读的内容加密,不易被敌对分子解密破解数据的真实含义。安装密钥体系的特点,加密算法可以分为:

  • 对称加密
  • 非对称加密

对称加密

对称加密的加密体系中,数据加密方、数据解密方使用相同的密钥。
在这里插入图片描述

对称加密的特点是:

  • 优势:简单、快速
  • 缺点:通信双方必须事先约好这个密钥;对于第一次见面的两个设备,没有提前预制好相同的密钥的情况下,不能使用对称加密。

对称加密的分类

典型的对称加密算法可以分为:

  • 基于流(即字节或者bit)的对称加密算法
  • 基于分块的对称加密算法,把明文数据分块,然后执行分块的加密,典型的有TDES/AES等。
    在这里插入图片描述

AES 分块加密算法

AES 加密算法是目前使用较多的对称加密算法。AES 有很多版本如:

  • AES128,对明文数据的分块大小是 128bit,密钥大小是 128bit,密文分块大小也是 128bit
  • AES256,对明文数据的分块大小是 256bit,密钥大小是 256bit,密文分块大小也是 256bit
    AES 算法也经历了漫长的改进,因此有很多工作模式:
    在这里插入图片描述
    当前在U盘、Flash 存储领域,用的比较多的 AES 加密模式是 XTS。我们这里简单讨论 AES-XTS 的这种加密模式。
    XTS模式 使用两个 AES 密钥。一个密钥用于执行 AES 块加密;另一个用于加密所谓的“调整值”。
    以 XTS-AES-128 为例,它使用 256 位密钥,它将其视为一对 AES-128 密钥。它具有与AES-128相当的安全等级。
    在这里插入图片描述
    以上图为例,典型的用法是,用 Key2 加密数据地址,用 Key1 加密该数据地址处存储的数据。最终融合被加密的地址 + 被加密的数据,得到最终输出的加密的数据。

非对称加密

非对称加密体系中加密、解密使用不同的密钥。密钥通常成对出现,用公钥“加密” 的消息,只能由与其对应的私钥来“解密”。
在这里插入图片描述

非对称加密的特点

  • 非对称密钥系统的优势:密钥方便管理和分发
  • 非对称密钥系统的缺点:实现复杂,运算效率不如对称密钥系统,运算过程复杂(无论软件还是硬件),通常不用于对大量数据做加密。
  • 非对称加密还可以用于身份认证,实现数据合法性的校验。这点我们将在下一节进行讨论。

主流的非对称算法

  • RSA (Rivest–Shamir–Adleman):常用的密钥长度为2048到4096比特
  • ECC (Elliptic-curve椭圆曲线算法):常用的密钥长度为256到512比特
  • Diffie-Hellman,ECDSA
    在这里插入图片描述
    据说对于同一等级的安全水平,ECC密钥长度更小;签名更快,但RSA验签更快。

对称加密与非对称加密的结合使用

如前所述,对称加密有着执行速率快,资源消耗小的特点,但是前提是通信双方提前知道密钥;
而非对称加密有可以让初次通信的双方立即建立加密通信的优势,但是通信过程复杂,加解密比较消耗资源;
在这里插入图片描述
为了节约资源,并且使得初次见面的通信双方就建立加密通信,因此我们常用的策略是结合两者的方案。具体的实施步骤概述如下:

  • 第一阶段使用非对称加密方案发送第二阶段要使用的对称密钥;
  • 第二阶段使用对称密钥对大数据量的交互消息进行加解密,提供运算效率

在这里插入图片描述

总结

  • 安全的话题可以从完整性、机密性、合法性、不可否认性四个方面进行讨论;不同的安全风险需要不同的安全组件来抵抗风险。
  • 机密性保护可以使用对称密钥、非对称密钥来实施保护方案。
  • 对称加密有着执行速率快,资源消耗小的特点,但是前提是通信双方提前知道密钥;
  • 非对称加密有可以让初次通信的双方立即建立加密通信的优势,但是通信过程复杂,加解密比较消耗资源;
  • AES XTS 分组加密模式使用两个 AES 密钥。一个密钥用于执行 AES 块加密;另一个用于加密所谓的“调整值”。
  • 结合对称密钥、非对称密钥的特点可以实施效率更高,更安全的机密性保护方案。

标签:AES,加密,数据,密钥,对称,非对称,密码学,加密算法
From: https://blog.csdn.net/wangyx1234/article/details/140584632

相关文章

  • 【数据结构】Map和Set
    目录1.前言2.搜索树2.1概念2.2操作-查找2.3操作-插入2.4操作-删除2.5性能分析3.搜索3.1概念及场景3.2模型3.3Map的使用3.3.1关于Map的说明3.3.2关于Map.Entry的说明,>3.3.3Map的常用方法说明3.3.4TreeMap的使用3.4Set的使用3.4.1Set的说明3.4.2Set的常......
  • mysql:使用乐观锁保护数据一致性和完整性
    在数据库操作中,保持数据一致性和完整性至关重要。乐观锁(OptimisticLock)是一种不锁定资源的锁机制,它在数据更新时才会检测是否发生冲突。本文将介绍乐观锁的概念、使用方法、优缺点,并特别罗列它与悲观锁的区别。乐观锁的概念乐观锁基于这样一个假设:数据冲突并不频繁发生,因此在读......
  • mysql:使用悲观锁保护数据完整性
    在数据库操作中,确保数据一致性和完整性至关重要。悲观锁(PessimisticLock)是一种锁机制,它在读取数据时就对其加锁,从而防止其他事务同时修改该数据。本文将介绍悲观锁的概念、使用方法,以及它的优点和缺点。悲观锁的概念悲观锁是一种认为并发操作总会发生冲突的锁机制。当一个事务......
  • SqlDbx客户端连接服务器Oracle数据库
    查了很多文章,介绍的不对,走了好多弯路,最后整理一下,供参考一、下载Oracle客户端1、SqlDbx如果是32位的,客户端也要下载32位的2、Oracle客户端版本要和服务端版本一致(本例用的是12.1.0.2.0)3、32位客户端下载地址:https://www.oracle.com/database/technologies/instant-client/mic......
  • 加固三防笔记本电脑:保护数据安全的首选设备
    随着信息技术的飞速发展,笔记本电脑早已成为现代生活中不可或缺的工具。然而,普通的笔记本电脑无法适应一些特殊的环境,在数据安全保护方面也有着一定的风险。加固三防笔记本电脑则是保护数据安全的首选设备。下面将介绍加固三防笔记本电脑的特点及应用。一、加固三防笔记本电脑......
  • 《数据结构习题解析与实验指导_李冬梅,张琪编著》总结出的大纲
        下面大纲为《数据结构习题解析与实验指导_李冬梅,张琪编著》总结出的大纲,可装13学习下:          ......
  • 获取第三方GET接口的data数据,服务器需要设置正确的 Access-Control-Allow-Origin
    在现代Web开发中,由于同源策略的限制,浏览器通常不允许从一个域名(origin)直接访问另一个域名的资源,除非服务器端设置了适当的CORS(跨源资源共享)策略。项目中如何直接获取get接口https://api.cp.139.com/cgate/cme/v1/appUpgrade/version?channel=baidu02下的接口相应对象:{"code":......
  • Vuex简介及数据管理
    Vuex1.Vuex简介Vuex就是一个vue的状态管理工具(状态就是数据)。其实vuex就是一个插件,帮忙管理Vue通用的数据而已。日常生活中的购物车数据、个人信息等。在Vue中特点为:多个组件使用,多个组件共同维护这份数据。vuex优势:共同维护一份数据,数据集中化管理响应式变化操作简洁(v......
  • ETL数据集成丨将GreenPlum数据同步至Doris数仓
    在当今数据驱动的时代,高效、可靠的数据集成成为企业数字化转型的关键一环。ETLCloud作为一款创新的数据集成平台,通过其强大的零代码配置能力,为企业提供了从数据抽取、转换到加载(ETL)的全链条解决方案,尤其在跨系统数据迁移方面展现出显著优势。本次实践通过将GreenPlum数据库的数据......
  • USB通讯架构及数据模型
    注意:(1)一个usb设备由一个或者多个接口组成;(2)每一个接口为usb设备的一个功能,比如上面的usb设备由两个接口,一个可用于鼠标,一个可用于键盘;(3)每个接口占用usb设备的多个端口资源;(4)windows通过一组管道(pipes)与usb设备的某个接口的端点进行数据交互实现某种功能;(5)usb设备最多具有16个......