当前位置: 首页 > news >正文

【密码学】什么是密码?什么是密码学?

一、密码的定义

根据《中华人民共和国密码法》对密码的定义如下:

密码是指采用特定变换的方法对信息等进行加密保护、安全认证的技术、产品和服务。

二、密码学的定义 

密码学是研究编制密码和破译密码的技术科学。由定义可以知道密码学分为两个主要分支:

  • 编码学(Cryptanalysis):专注于密码系统的创建和加密信息,确保信息的安全传输。
  • 破译学(Cryptanalysis):侧重于密码系统的分析和破解,试图揭示加密信息的内容。

        有关信息安全五大属性(机密性、完整性、认证性、不可否认性、可用性)可以跳转阅读我的另一篇文章:【密码学】信息安全五大属性

三、密码算法的基本模型

密码算法的基本模型包括了:密码系统五要素、密码算法的基本要求

(1)密码系统五要素

密码系统五要素分别是:明文空间、密文空间、密钥空间、加密算法、解密算法。有关更多细节知识点可以跳转阅读我的另一篇文章:【密码学】密码学五要素

密码算法本质上是一种带秘密参数的数学函数,它遵循一定的数学规则来转换数据。

  • 知道秘密参数,求逆非常容易
  • 不知道秘密参数,求逆是不可行的 

 (2)密码算法的特征

        一个理想的密码体制应该是在加密过程上具有高度的可逆性,在没有密钥的情况下具有不可逆性,并且对密钥的选择和保护表现出极高的敏感性。这样的密码体制才能在实际应用中提供可靠的信息保护。 

特性描述
可逆性如果使用正确的密钥,加密过程应该是可逆的。
不可逆性(安全性)算法设计时应该考虑对抗各种可能的攻击,敌手无法将密文恢复成明文。
密钥敏感性密钥就是密码算法的秘密参数,即使知道加密算法,没有密钥也很难恢复出明文。

一个好的密码体制至少应该满足两个条件:

  1.  在已知明文和加密密钥时,计算密文容易;在已知密文和解密密钥时,计算明文容易。
  2.  在不知道解密密钥时,不可能由密文恢复出明文。
http://www.lryc.cn/news/394373.html

相关文章:

  • k8s record 20240703
  • Ansible常用模块
  • 【JavaScript脚本宇宙】提升用户体验:探索 JavaScript 库中的浏览器特性支持检测
  • 深度学习:C++和Python如何对大图进行小目标检测
  • Eureka从入门到精通面试题及答案参考
  • io流 多线程
  • 人工智能、机器学习、神经网络、深度学习和卷积神经网络的概念和关系
  • 对话大模型Prompt是否需要礼貌点?
  • 【驱动篇】龙芯LS2K0300之ADC驱动
  • Python入门 2024/7/3
  • Go 语言 Map(集合)
  • SpringCloud学习Day7:Seata
  • 【ubuntu中关于驱动得问题】—— 如何将nouveau驱动程序加入黑名单和安装NVIDIA显卡驱动
  • LabVIEW从测试曲线中提取特征值
  • 【应届应知应会】SQL常用知识点50道
  • 【雷丰阳-谷粒商城 】【分布式高级篇-微服务架构篇】【21】【购物车】
  • 科技赋能智慧应急:“数字孪生+无人机”在防汛救灾中的应用
  • urfread刷算法|构建一棵树
  • 在卷积神经网络(CNN)中为什么可以使用多个较小的卷积核替代一个较大的卷积核,以达到相同的感受野
  • 【学习笔记】Mybatis-Plus(四):MP中内置的插件
  • GlusterFS分布式存储系统
  • 微信公众平台测试账号本地微信功能测试说明
  • Lua语言入门
  • 卷积神经网络有哪些应用场景
  • std::unordered_map和std::map在性能上有何不同
  • C++20中的基于范围的for循环(range-based for loop)
  • PCIe驱动开发(2)— 第一个简单驱动编写和测试
  • k8s-第七节-ConfigMap Secret
  • MySQL架构和工作流程
  • java项目总结8