首页 > 其他分享 >了解对称加密与密钥协商技术

了解对称加密与密钥协商技术

时间:2024-08-01 22:25:21浏览次数:15  
标签:加密 协商 Alice 算法 密钥 对称 加密算法

1.对称加密算法

        加密的理论基础是替代换位。替代主要用于扰乱,使用不同的位、字符或字符分组来替换原来的位、字符或字符分组。换位主要用于扩散,并不使用不同的文本来替换原来的文本,而是对原有的值进行置换,即重新排列原来的位、字符或字符分组以隐藏其原有意义。

        对称加密一种加密与解密采用相同密钥的加密算法其特点是速度快,效率高,所以被广泛使用在很多加密协议的核心当中,也是我们平时接触得比较多的一种加密方式。

图1 对称加密算法加密解密过程         

2.常见的对称加密算法 

        常见的对称加密算法主要有以下几种: 

  • 数据加密标准(DES,Data Encryption Standard):使用64位密钥,其中56位用于加密,8位用于奇偶校验。由于加密强度较弱,已不推荐使用;
  • 三重DES,是DES的升级版:3DES并没有直接使用“加密->加密->加密” 的方式,而是采用了“加密->解密->加密”的方式。这样实现的好处主要是,当三个密钥均相同时,前两步加密解密结果相互抵消,整体结果相当于仅实现了一次加密,因此可实现对普通DES加密算法的兼容。这也是为什么三重DES可以流行,而二重DES或者四重DES则消失了;
  • 高级加密标准(AES,Advanced Encryption Standard):AES支持128、192和256位的密钥,较于3DES速度更快、安全性更高;
  • 国际数据加密算法(IDEA,International Data Encryption Algorithm):使用的密钥长度为128位;
  • Blowfish算法:密钥长度为32-448位。

3. 密钥分发

3.1 常见的密钥分发方法

        对称加密需要双方进行加密通信前先协商分配好密钥,一般来说密钥分发可以是以下几种方式:

  • Alice选择一个密钥后以物理的方式传递给Bob;
  • 第三方Cindy选择密钥后物理地传递给Alice和Bob;
  • 如果Alice和Bob之前已经使用过一个密钥,则一方可以将新密钥用旧密钥加密后发送给另一方;
  • 如果Alice和Bob与第三方Cindy之间已有加密连接,则Cindy可以在加密连接上将密钥发送给Alice和Bob。 

3.2Diffie-Hellman算法(简称DH算法)协商密钥 

         受对称加密算法自身的特点影响,当多用户之间使用对称加密算法进行通信时,密钥数量成指数增长,对密钥的分发和管理带来巨大的挑战。当用户数量为n,密钥数量最多为n*(n-1)/2。比如有100个用户,则最多需要4950个密钥。

        随着技术的发展,对称加密的密钥分发也出现了一些新的解决方法,如非对称加密算法,Diffie–Hellman算法等。采用这类算法使得对称加密密钥的协商与管理变得更简单和可靠。采用非对称加密时n个用户只需维护n个密钥对,大大减小了密钥规模。 

        Diffie-Hellman算法(简称DH算法)是Whitefield Diffie和Martin Hellman在1976年公布的一种秘钥交换算法。它是一种建立秘钥的方法,而不是加密方法。基于这种秘钥交换技术:通信双方在完全没有对方任何预先信息的条件下,可以通过不安全信道协商一个密钥。这个密钥一般作为对称加密的密钥应用在双方后续数据传输的加密上。 

        和非对称加密算法的理论基础一样,DH算法也是基于一个数学难题,即计算离散对数的难度。具体来说,假设Alice需要与Bob需要协商一个秘钥,是这样一个过程: 

 图2 DH算法密钥协商过程 

        示例: 

经计算,Alice与Bob本次协商的密钥为36。

标签:加密,协商,Alice,算法,密钥,对称,加密算法
From: https://blog.csdn.net/huaqianzkh/article/details/140842337

相关文章

  • 密码学基础:从对称加密到公钥加密
    密码学基础:从对称加密到公钥加密大家好,我是微赚淘客系统3.0的小编,是个冬天不穿秋裤,天冷也要风度的程序猿!密码学是信息安全的核心技术之一,广泛应用于数据保护、通信安全等领域。在密码学中,对称加密和公钥加密是两种主要的加密方式。本文将介绍这两种加密技术的基础知识及其实现方......
  • JSEncrypt 传输加密 -前端
    1.有些特殊要求,要求前端传给后端参数时把一些密码,手机号等加密,具体使用方式如下引入 jsencrypt.min.js,我是在app中使用,有些 jsencrypt.min.js文件只支持h5,使用的时候会报错,这个jsh5,app都可以使用,js文件内容在最下面import{JSEncrypt}from'@/common/utils/jsencrypt.m......
  • Python爬虫 - js逆向之扣出某平台的_signature加密字段
    前言好久没有做逆向案例分析了,最近都在看同行朋友写好的案例,感觉学到很多,算是取长补短了不多bb,机缘巧合下,拿到个目标网站分析首先抓个包,就看到请求参数里带着这几个参数主要就是_signature了,其他的参数都不重要得想必你一看就知道啥意思了。行,开始分析_signature......
  • 加密解密你了解多少?
    这个题目一写出来,笔者自己也思考了下自己在以前职业生涯中涉及到的加密解密技术,也思考了自己熟知的公知度高的几种加密方式。下面我来说说一些理解上的东西。加密解密中间参与的是一个算法,有这个算法规律你才可以将简单的语言或者数据转换成只有了解此算法的人才能看懂才能知道......
  • MYSQL 8.0 社区版的透明数据加密
    和MySQL5.0不同,MySQL8.0不再使用keyring插件,而是使用keyringcomponent。这包括:component_keyring_filecomponent_keyring_encrypted_filecomponent_keyring_ociMySQL企业版支持所有3个,MySQL社区版只支持第一个,即component_keyring_file。本文测试的也是这个。MySQL5......
  • 数组加密问题例题day05
    importjava.util.Scanner;/* 某个公司采用公用电话传递数据信息,数据是小于8位的整数,为了确保安全,在传递过程中需要加密,加密规则如下:首先将数据倒序,然后将每位数字都加上5,再用和除以10的余数代替该数字,最后将第一位和最后一位数字交换......
  • 由于 OpenAI API 密钥错误,无法使用 Autogen 代理的本地模型
    我正在尝试将Autogen库与本地Huggingface模型一起使用,而不是使用OpenAIAPI。但是,我遇到了一个问题,收到以下错误:OpenAIError:Theapi_keyclientoptionmustbeseteitherbypassingapi_keytotheclientorbysettingtheOPENAI_API_KEYenvironmentvariable......
  • LKT加密芯片优势
    凌科芯安公司作为加密芯片行业的高新技术企业,通过了ISO9001质量体系标准认证,其芯片操作系统LKCOS,通过了权威部门的严格检测,通过技术自主创新研发,保护了自己的知识产权和经济利益,更有效的保护了行业内的信息安全。凭借多年的智能卡技术的深入研究的同时,以及嵌入式加密领域积累的深......
  • 协议加密
    根据上篇,如果我们通讯协议不进行加密,被人抓包后很容易解析出来,这个时候我们就需要对协议进行加密处理,协议传输本质上是传输的二进制字节流,我们可以考虑用一定的方式修改字节数据,最简单的方式是把0改成1,把1改成0,也就是直接取反,这也是一种加密方式,虽然比较容易被破解,意义不大,我们可......
  • Python应用—加密、解密文件
    1.创作需求日常生活中我们有很多文件想要保密。这个脚本可以方便大家对所有的文件类型进行加密,解密。最大程度保护我们的隐私。2.话不多说,直接上代码fromcryptography.fernetimportFernetimportdocx#加密defencrypt_file(filename):#生成密钥key=Fer......