加密算法和非对称加密的简单学习

news2024/11/26 17:29:32

加密算法和非对称加密的简单学习

  • 前言
  • 对称加密算法
    • DES
      • 特点:
      • 为什么不使用:
    • 3DES(Triple DES 或者 DESede)
      • 特点:
      • 使用场景:
      • 为什么不用:
    • AES(Advanced Encryption Standard)
      • 特点:
      • 使用场景:
      • 为什么不用:
    • PBE(Password-Based Encryption)
      • 特点:
      • 使用场景:
      • 为什么不使用:
  • 非对称加密算法
    • DH
      • 特点 :
      • 使用场景:
      • 为什么弃用:
    • RSA
      • 特点
      • 使用场景
    • EIGamal
      • 特点:
      • 场景
  • 数字签名(待更新....)
  • bug 记录
    • 问题
      • 简述
      • 问题解决
  • 总结
    • 对称加密
    • 非对称加密

前言

工作中发现安全很是关键,涉及到一些加密算法,故特地简单学一下,该文件为简单的学习笔记,

对称加密算法

初等的加密算法,常见的对称加密算法有:

  • DES
    • 3DES
  • AES
  • PBE
  • IDEA

DES

具体流程:
在这里插入图片描述

特点:

  • 加密解密速度快。密钥长度短,可能会被破解。
  • DES的密钥长度只有56位,有利于攻击者使用穷举法试图破解密钥。

为什么不使用:

现在已经不再使用,被更加安全的加密算法所取代,如AES。

3DES(Triple DES 或者 DESede)

特点:

  • 采用了DES算法的多轮加密方式,进一步提高了加密的安全性。
  • 密钥长度变长,破解难度增加,安全性提高。
  • 能够兼容DES系统,替代单轮DES,提高安全性。

使用场景:

  • 适用于需要高度安全性的场景,例如银行、金融机构等。
  • 适用于需要向多个受信任的实体发送信息时,每个实体都有自己的加密密钥,使用3重DES可以保证这些信息得到足够的安全保护。

为什么不用:

然而,随着计算机处理能力的飞速提高,3重DES对抗攻击的能力已经不足以保证安全。由于3重DES运算速度比单DES慢一倍以上,加/解密效率低下也成为了一个问题。因此,现在一般不再建议使用3重DES,
取而代之的是更加安全快速的AES(高级加密标准)算法,密钥长度从128-256位可选,是目前最广泛使用的加密算法之一。

AES(Advanced Encryption Standard)

AES是目前最流行的加密算法之一,至今尚未被破解
在这里插入图片描述

特点:

  • 高度安全性:AES使用高度安全的加密算法,可避免黑客攻击和数据泄漏。
  • 处理速度快:AES加/解密速度快,计算速度快,是更加高效的加密方式。
  • 安全性强:AES能够支持128位、192位和256位密钥长度,可以为不同的应用提供不同的安全级别。

使用场景:

  • 保护重要数据:AES可用于对敏感信息进行加密保护,如银行账户、个人信息和医疗记录。
  • 保护网络传输安全:AES可用于保护通过网络传输的敏感数据,如电子邮件、文件传输和数据库传输等。
  • 保护通信安全:AES可用于加密通信,如移动电话通话或视频会议中的语音或视频数据。

为什么不用:

  • 从侧信道攻击和行为分析的角度看,AES漏洞可能会让攻击者访问密钥而不是加密文本。
  • 相对于硬件加密,软件AES实现速度相对较慢,因此在特定场景下,如信息量非常大时,可能需要寻求其他安全方案。

PBE(Password-Based Encryption)

即基于密码的加密

在这里插入图片描述

在这里插入图片描述

特点:

可以使用用户输入的密码作为密钥来加密和解密数据。 具体来说,PBE在加密数据之前会根据用户输入的密码生成一个密钥,
在解密时再根据同样的密码重新生成密钥,从而实现加密和解密操作。

使用场景:

  • 需要根据用户的密码来对数据进行加密和解密的场景。

  • 将加密后的数据保存到数据库中,只有在用户输入正确的密码后才能解密和使用的场景。

  • 所有需要加密和解密的场景,例如加密和解密文件、保护敏感信息等。

为什么不使用:

需要非常高强度以及更加安全的加密过程中。PBE的加密过程是基于密码的,因此其安全性取决于密码的强度。如果密码强度较弱,
黑客可以通过暴力破解来获得密钥,从而可以解密数据。此外,PBE相对于其他加密算法来说,其加密速度较慢。

对数据在传输和存储过程中进行加密保护的场景,但在更加高强度和更加安全的场景中则不太适用。

非对称加密算法

高等的加密算法, 双保险(即公钥、私钥)

  • DH(Diffie-Hellman) 密钥交换算法
  • RSA——基于因子分解(应用范围最广的非对称)
  • ElGamal——基于离散对数
  • ECC(Elliptical curve Cryptography)——椭圆曲线加密

DH

在这里插入图片描述

  1. 发送方生成密钥对,并将公钥发送给接收方。
  2. 接收方收到发送方的公钥后,根据该公钥生成自己的密钥对,并将公钥发送回发送方。
  3. 发送方收到接收方的公钥后,再根据接收方的公钥生成自己的密钥。
  4. 双方生成的密钥相同,用于对称密钥加密,通信加密。

特点 :

  • 安全:由于DH算法采用了离散对数问题,很难被破解,因此安全性较高。
  • 无需预共享密钥:DH算法不需要预先存在共享密钥,可以在协商密钥时动态生成,因此具有很好的灵活性。
  • 高效:DH算法的计算开销较小,可在较短的时间内完成密钥协商。

使用场景:

主要用于需要保障通信安全的场景,比如网上银行、固话与手机通信等。它可以有效地避免密钥被偷窥、窃听等安全问题。
典型的DH算法使用例子是TLS协议,该协议广泛应用于互联网浏览器和Web服务器之间,确保用户的隐私信息在传输过程中得到安全保护。

为什么弃用:

无法解决中间人攻击问题,即攻击者可以伪装成与通信双方进行通信,从而窃取密钥,导致通信数据泄露。
除此之外,DH算法也存在一些种族歧视问题,被认为不能完全保证公正性。

RSA

在这里插入图片描述

在这里插入图片描述

特点

  • 非对称性:RSA算法使用一对密钥(公钥与私钥)进行加解密。公钥可以公开,任何人都可以获得,而私钥只有密钥持有人才能知道。因此,RSA算法具有非对称性,即加密和解密使用不同的密钥。
  • 安全性:RSA算法基于数论中某些难解的问题,如质数分解,因此被认为是一种安全可靠的加密算法。
  • 可签名性:除了可以用于加解密,RSA算法还可以用于数字签名。数字签名在保证通信过程中信息不被篡改,起到防抵赖的作用。

使用场景

  • 加密通信:RSA算法可用于数据加密,保证通信过程中信息不被窃听、修改。
  • 数字签名:RSA算法可用于生成数字签名,保证信息的完整性、真实性和抗抵赖性。
  • 身份认证:RSA算法可用于身份认证,确认对方的身份和合法性。当然,在实际应用场景中,通常需要配合其他加密算法和协议来实现更加安全的通信。

EIGamal

在这里插入图片描述
在这里插入图片描述

特点:

  • 非对称性:ElGamal算法使用一对密钥(公钥与私钥)进行加解密。公钥可以公开,任何人都可以获得,而私钥只有密钥持有人才能知道。因此,ElGamal算法具有非对称性,即加密和解密使用不同的密钥。
  • 安全性:ElGamal算法基于数论中某些难解的问题,如离散对数问题,因此被认为是一种安全可靠的加密算法。
  • 可扩展性:ElGamal算法可扩展到多方秘密共享和群组加密等应用场景。

场景

  • 加密通信:ElGamal算法可用于数据加密,保证通信过程中信息不被窃听、修改。
  • 数字签名:ElGamal算法可用于生成数字签名,保证信息的完整性、真实性和抗抵赖性。
  • 秘密共享:ElGamal算法可用于实现多方秘密共享,如在分布式系统中实现机密信息共享。
  • 群组加密:ElGamal算法可扩展到群组加密中,实现多方通信的安全保障

需要注意的是,ElGamal算法在加解密速度和密钥长度等方面与RSA算法有所不同,具体应用场景需要考虑算法特点和应用需求。

数字签名(待更新…)

bug 记录

问题

简述

java.security.invalidkeyexception: illegal key size or default parameters

问题解决

java环境安装的时候自带的安全策略的密钥长度受限了,因为美国对软件出口的限制。需要去oracle官方网站下载

JDK6 Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files 6
JDK7 Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files 7 Download
JDK8 JCE Unlimited Strength Jurisdiction Policy Files for JDK/JRE 8 Download

在这里插入图片描述
替换这两个文件即可。

总结

对称加密

对称加密又称为共享密钥加密,它是一种加密方法,使用同一个密钥进行加密和解密。因此,密钥在加密和解密过程中都是相同的。对称加密算法执行快速,但存在密钥分发问题,就是如果敌手截取了密钥,那么其实一切就一点不安全了。对称加密算法的常见算法有DES、3DES和AES。

非对称加密

非对称加密又称为公开密钥加密,它是一种加密方法,使用公钥和私钥进行加密和解密。公钥是公开的,任何人都可以获取,它用于加密数据;而私钥是保密的,只有密钥的所有者可以获取它,它用于解密数据。非对称加密算法执行缓慢,但不需要密钥分发,所以更为安全。非对称加密算法的常见算法有RSA、ECC和DSA。非对称加密算法还广泛用于数字签名、密钥协商和身份验证等场景。

对称加密的优点是执行速度快,缺点是存在密钥分发问题,不适用于公开环境。非对称加密的优点是不需要进行密钥分发,更加安全,但执行速度较慢。两者在实际应用中常常结合使用,以克服各自的缺点。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/513481.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SoLVES模型的详细使用教程

SoLVES(Social Values for Ecosystem Services)模型是由美国地质调查局落基山地理科学中心(RMGSC)和科罗拉多州立大学联合研究开发,主要用于评估生态系统服务的社会价值,能够量化美学、生物多样性、休闲生活…

鸿蒙Hi3861学习十一-Huawei LiteOS-M(内存池)

一、简介 LiteOS将内核与内存管理分开实现,操作系统内核仅规定了必要的内存管理函数原型,而不关心这些内存管理函数是如何实现的。 LiteOS内存管理模块管理系统的内存资源,包括:初始化、分配、释放。 不采用C标准库中的内存管理函…

精准锁定证件材料篡改位置,合合信息智能图像处理技术助力金融机构防范违规开户

得知帮助他人办理几张银行卡、电话卡,就能坐等“分红”,许多人怀着“吃馅饼”的心态掉入了陷阱。今年4月,海南一男子出借银行卡帮助不法分子进行电信网络诈骗,涉案资金流水近10万元,被警方抓捕。此前,西安某…

如何在VUE中使用andflow流程设计组件

andflow_js 是基于js、css、html开发的一个前端流程设计组件,目的是方便前端开发流程设计器。实现各种流程设计的样式风格,以及对设计结果的读取和显示,以便于与将设计结果提供给后端保存和执行。 由于VUE框架在许多实际项目中经常使用&…

安卓稳定性技术栈

涉及技术内容: framework java层 语言:Java 1.开机启动流程:Android 7.0平台开机启动_android7.0开机自启_jamousjang的博客-CSDN博客 Android系统启动流程解析 基于Android13的系统启动流程分析 2.Watchdog机制 3.Anr 机制 4.AMS四大…

Monte carlo 求解积分

Monte carlo 求解积分 文章目录 Monte carlo 求解积分[toc]1 单变量情形2 多变量情形 1 单变量情形 假设待求解积分形式为 θ ∫ 0 1 f ( x ) d x \theta\int_0^1 f(x) \mathrm{d} x θ∫01​f(x)dx 其中 θ \theta θ为积分值。引入随机变量 X ∼ U ( 0 , 1 ) X\sim U(0,1)…

服务攻防-应用协议-远控软件漏洞向日葵VNCTV-平台漏洞KibanaZabbix-附真实案例演示

目录 一、导图 二、远程控制-向日葵&Vnc&Teamviewer 1、向日葵 ▶漏洞利用工具下载地址: ▶实例展示: 2、Vnc ▶Vnc简介: ▶实例展示: 3、Teamviewer ▶Teamviewer简介: ▶实例展示: 三、设备…

小灰的基金,亏了67W。。。

2022年基金市场有多差?相信大家都有目共睹。小灰的基金在去年也赔得很惨,还每次写过几篇文章: 跌吧,继续跌吧,小灰的基金已亏损64万。。。 基金亏损84万,小灰反手把银行客户经理投诉了 今年是疫情结束的第一…

成为Smartbi合伙人,现金奖励可达15000元

2023年Smartbi推出合伙人计划即日起至2023年12月31日只要您成为思迈特软件合伙人推荐有效商机即有机会赢取上万元现金奖励商机奖励1000元,合同签约奖励可达15000元同时我们将为您提供全方位的支持和帮助实现共谋、共创、共赢!*点击https://www.smartbi.c…

长文多图一步步讲清楚:DDD理论、建模与代码实现全流程

欢迎大家关注公众号「JAVA前线」查看更多精彩分享文章,主要包括源码分析、实际应用、架构思维、职场分享、产品思考等等,同时欢迎大家加我个人微信「java_front」一起交流学习 1 六个问题 1.1 为什么使用DDD DDD方法论核心是将问题不断分解&#xff0c…

院内导航移动导诊服务体系,院内导航怎么实现?

院内导航怎么实现?经过多年发展,医院规模愈加庞大,尤其是综合性医院,院区面积较大,门诊、医技、住院等大楼及楼区内部设计复杂,科室、诊室数量众多,对于新患者犹如进入了迷宫,客观环…

《花雕学AI》Poe:一个让你和 AI 成为朋友的平台,带你探索 ChatGPT4 和其他 八种AI 模型的奥秘

你是否曾经梦想过,能够在一个平台上,和多种不同的 AI 模型进行有趣、有用、有深度的对话,甚至还能轻松地把你的对话分享给其他人?如果你有这样的梦想,那么 Poe 一站式 AI 工具箱就是你的不二之选! Poe 是国…

让AI来告诉你什么叫幽灵堵车

使用环境参考 CocosCreator v3.7.2 ChatGPT 正文 什么是幽灵堵车 堵车,大家都不陌生! 堵车时我就思维发散,用 CocosCreator 模拟下堵车应该挺好玩,网上总说高速上最前面如果有个龟速的车,后面能堵车堵个两三公里。…

计算机毕业论文选题推荐|软件工程|系列四

文章目录 导文题目导文 计算机毕业论文选题推荐|软件工程 (***语言)==使用其他任何编程语言 例如:基于(***语言)门窗账务管理系统的设计与实现 得到:基于JAVA门窗账务管理系统的设计与实现 基于vue门窗账务管理系统的设计与实现 等等 题目 基于(***语言)的人脸识别系统…

python定时任务2_celery flower计划任务

启动worker: celery -A tasks worker --loglevelerror --poolsolo worker启动成功 启动beat celery -A tasks beat --loglevelinfo beat启动成功 启动flower celery -A tasks flower --loglevelinfo flower启动成功,然后进入http://localhost:5555 可…

手把手教你怎么搭建自己的ChatGPT和Midjourney绘图(含源码)

AI程序采用NUXT3LARAVEL9开发(目前版本V1.1.7) 授权方式:三个顶级域名两次更换 1.AI智能对话-对接官方和官方反代(markdown输出)PS:采用百度与自用库检测文字 2.AI绘图-根据关键词绘图-增加dreamStudio绘画-增加mid…

每日一个小技巧:1分钟告诉你图片怎么转语音

随着科技的不断进步,人们对于信息的获取方式也越来越多样化。而在这些方式中,图片和文字无疑是比较常见的两种。图片以其生动直观的特点吸引了许多人的眼球,而文字则以其更为详尽的信息呈现方式成为了人们了解事物的首选。然而,对…

金融行业数据分类分级“五步走” | 盾见

文|查浩奇 《数据安全法》明确提出,国家要建立数据分类分级保护制度,根据数据在经济社会发展中的重要程度,以及一旦遭到篡改、破坏、泄露或者非法获取、非法利用,对国家安全、公共利益或者个人、组织合法权益造成的危害程度&…

java泛型通配符

通配符有三种: 第一种: 问号(?),表示所有类型 第二种:extends 类名 ,表示该类及继承了该类的类型 第三种:super 类名, 表示该类和该类的父类 第一种:&…

大屏设计都是收费的吗?今天教你用积木报表做大屏,完全免费吆!

一、登录积木报表 1. 打开网址 输入用户名、密码,即可登录,如下图1.11所示: 备注:如果没有账号,需要自己用手机号注册一个账号,即可使用;图1.11 2. 进入系统后,点击“我的大屏” …