首页 > 其他分享 >密码学基础

密码学基础

时间:2023-11-21 23:36:00浏览次数:37  
标签:公钥 代换 基础 密码 算法 密钥 密码学

第二章 密码学基础

2.1密码学概述

随着早期人类文明的发展,人们开发出属于自己的各种复杂系统————语言系统、数字系统和文字系统,进而随着信息交流的特殊需要演化出密码。
古典密码主要分为代换密码,置换密码和费纳姆密码三种类型,虽然今天在计算机工具的辅助下,破译这些古典密码易如反掌,但是古典密码的两个基本工作原理:代换和置换,仍是构造现代对称密码算法的最重要核心思想。
从单表代换的凯撒密码到多表代换的维吉尼亚密码,到多字母代换的普莱费尔密码,是同一个原理的不断更新和演化,也是人类思考不断深入的表现

手工操作的不便和易错促进了机械密码机的发明,其中最具代表性的是二战时期的ENIGMA密码机。

现代密码学的诞生是信息科学理论与技术不断发展的结晶。
信息论的鼻祖是Claude Shannon,他提出了保密系统的通信理论,明确区分了信息隐藏和信息保密,也被公认为公钥密码学的教父。
Shannon信息论是现代密码学的理论基础。

随着科技发展,密码学也迎来了心得挑战,包括云计算、云存储、大数据、物联网、新型计算机和区块链技术所带来的挑战。

2.2 密码学基本概念

保密学是研究信息系统安全保密的科学,包含两个分支,密码编码学和密码分析学,分别研究加密与解密。

密码体制可分为单钥密码体制和双钥密码体制。
单钥密码体制的加密密钥和解密密钥相同,又称为对称密码体制。
双钥密码体制中的每个用户都有一对选定的密钥,一个是可以公开的称为公钥pk,另一个是秘密的成为私钥dk。

密码分析的几种方法包括:穷举攻击法(暴力破解),数学攻击法,和物理攻击

密码学的理论基础主要包括整数分解,模运算和有限域,欧几里得算法和中国剩余定理。

2.3密码学新进展

身份基公钥密码是一种公钥密码体制,有效简化了公钥基础设施中证书权威对用户证书管理带来的复杂密钥管理问题。
一个身份基加密包含4个算法:系统建立算法,密钥提取算法,加密算法,解密算法。
一个身份基签名包含4个算法:系统建立算法,密钥提取算法,签名算法,验证算法。
身份基公钥密码无需公钥证书。

属性及公钥密码,用户的公私钥均与属性相关,可以实现非交互式访问。
同态密码可以在不泄露敏感信息的前提下完成对密文的处理任务,有着与生俱来的保护用户数据安全和营私的特性,成为保护数据安全,提高密文处理分析能力的关键技术。

2.4密码学主要研究方向

1.密码理论,包括密码基础理论、对称密码设计与分析、公钥密码设计与分析、密码协议设计与分析、新型密码设计与分析
2.密码工程与应用,包括密码芯片设计、密码模块设计、密码技术应用
3.密码安全防护:密码系统安全防护、抗攻击安全防护、密码系统测评
4.量子密码:量子计算、量子密钥分配、量子密码协议
5.密码管理:密码管理理论与方法、密码管理工程与技术、密码管理政策与法治

标签:公钥,代换,基础,密码,算法,密钥,密码学
From: https://www.cnblogs.com/20232316re/p/17847893.html

相关文章

  • Git学习笔记:基础使用
    本随笔用于记录随笔作者在一般情况下使用Git的一些步骤和操作,主要用于在经过一段时间没有使用Git后能够通过该随笔马上回忆起基础操作,所以该随笔一开始并不会介绍Git的高级特性。本随笔内容摘录自官方教程随笔作者还在学习当中,难免会出现书写上和技术上的错误,如果发现类似错误,欢......
  • pwn打打基础——BUUCTF篇(1)
    BUUCTF刷刷基础题先,打牢下基础test_your_nc就非常经典的起引导作用的nc题格式:ncIP端口ripchecksec一下发现开启了部分地址随机化,其它保护什么也没开,有可读写权限,再来看看源代码发现有gets()函数(并不会限制输入的字节数),也有system("/bin/sh"),没有什么其它陷阱。那这就......
  • 线程基础
    线程和进程1.进程是系统进行资源分配和调度的独立单位,每一个进程都有它自己的内存空间和系统资源2.进程实现多处理机环境下的进程调度,分派,切换时,都需要花费较大的时间和空间开销3.为了提高系统的执行效率,减少处理机的空转时间和调度切换的时间,以及便于系统管理,所以有了线程,线程......
  • 前端学习-JavaScript学习-js基础05
    学习教程:黑马程序员视频链接对象了解<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0"><title>Docum......
  • 【Java基础】String类 && StringBuilder类
    String类String类特点字符串底层是字节类型的数组:byte[]Java程序中所有双引号字符串,都是String类的实例(对象)字符串在创建之后,其内容不可更改字符串虽然不可以改变,但是可以被共享(通过字符串常量池)字符串常量池(StringTable)-->当使用双引号创建字符串对象时,会检查常量池中是......
  • 【Java基础】内存分配
    1.栈方法运行时所进入的内存2.堆需要new的引用数据类型会在堆内存中开辟空间并产生地址堆内存中的数据在生命周期结束后会由垃圾回收器不定时回收(C语言需要手动写代码清理释放内存空间)3.方法区字节码文件加载时进入的内存4.本地方法栈(辅助虚拟机)---了解5.寄存......
  • python基础语法
    启航注释\(\textcolor{Orange}{(解释说明,提升可读性)}\)分类单行,'#'开头多行,'''或"""包裹(python中单双引号没有区别)基础的控制台输出(basicconsoleoutput)#f(x)print->f;(x)->("Datawhale");x->"Datawhale"......
  • python基础学习
    注释Comment单行注释,使用#开头,只能写在一行中多行注释,使用'''或"""包裹起来,头尾都是3个(python中'与“无太大区别)注释并不会被当做代码处理#magiccomment除外输出一个内容print()的作用是将填入的内容显示在Console中,默认每次输入后会换行(等......
  • 手机APP开发的注意事项及基础代码分享
    随着智能手机的普及,手机APP的需求也日益增长,开发一款手机APP不仅需要创新的设计理念,还需要注意一些关键的开发事项,以确保APP的稳定性和可靠性,下面,我们将分享一些手机APP开发的注意事项及基础代码,帮助大家更好地进行APP开发。一、手机APP开发的注意事项1、确定目标用户群体:在开发APP......
  • Python+C语言·········基础知识点
    一:常数、变量和数据类型1。常数和变量的差异一个程序通常都会有被处理的对象,而这些对象在被处理之前要以一些特定的类型存放在内存的某一个位置,需要的时候再拿出来处理。程序设计语言会把放置数据的那些内存位置都给一个名字,并把这个概念以“变量”来命名。放在这些位置的里面的数......