计算机网络安全
从广义来说,凡是涉及到网络上信息的机密性、报文完整性、端点鉴别等技术和理论都是网络安全的研究领域。
- 机密性指仅有发送方和接收方能理解传输报文的内容,而其他未授权用户不能解密(理解)该报文
- 报文完整性指报文在传输过程中不能被恶意篡改或意外改动
- 端点鉴别指发送方与接收方能确认对方确实具有他所声称的身份
一、机密性
为了满足用户机密性的需求,一种自然而然的选择就是用密码对传输的报文进行加密。即使你为报文设定了巧妙的加密方案,也不能认为万事大吉了,道高一尺魔高一丈,具有丰富经验和高超技艺的攻击者会让你的重要报文始终处于被破解的风险之下,总的来说可以根据攻击者所拥有的信息将破解方式分为三类:
- 唯密文攻击。指在仅知已加密文字的情况下进行穷举攻击,此方案同时用于攻击对称密码体制和非对称密码体制。
- 选择明文攻击。在这种攻击模式中,攻击者可以事先任意选择一定数量的明文,让被攻击的加密算法加密,并得到相应的密文,从而完全破解其加密方案。
- 已知明文攻击。攻击者以某种方式猜测出报文中所含有的部分内容,从而能以更大的概率破解该加密方案。
为了应对攻击者对网络安全带来的严峻挑战,在现代密码学中衍生出两种截然不同的密码系统:对称密钥系统和公钥系统。
对称密钥密码系统中,发送方与接收方通过协商(或其他方式)共享一个密钥,该密钥用于指明此次会话过程中需要采取的加密及解密方案,值得说明的是只有保证该密钥仅被收发双方知道而其他未授权者不知的情况下,这种对称密钥系统才能保证机密性(当然,这种密码系统仍不是无懈可击的,它还有一些可能被攻击者利用的漏洞或缺陷)。
块密码是比较常用的一种对称密钥加密方案,其原理是将明文分割成若干个长度固定的“块”,每块会被独立加密,加密过程通常会使用模拟随机改变次序表的功能,通过多次打乱块之间的顺序和加密的循环过程,最终得到加密后的密文。目前流行的块密码方案有DES、AES。
下面重点说说公开密钥密码系统。
公开密钥密 码系统是由R.Rivest、A.Shamir和L.Adleman于1977年提出的。RSA的 取名就是取自这三位发明者姓氏的第一个字母。后来,在1982年他们又创办了以RSA命名的公司(RSA Data Security Inc.和RSA实验室),该公司和实验室在公开密钥密码系统的研发和商业应用推广方面具有划时代的意义,是全球公认的计算机网络安全的重要里程碑。与"公开密钥密码体制"相对应的是"传统密码体制",又称"对称密钥密码体制",其中用 于加密的密钥与用于解密的密钥完全一样。
在对称密钥密码体制中,加密运算与解密运算使用同样的密钥。通常,使用的加密算法 比较简便高效,密钥简短,破译极其困难。但是,在公开的计算机网络上安全地传送和保管 密钥是一个严峻的问题。1976年,Diffie和Hellman为解决密钥管理问 题,在他们的奠基性 的工作"密码学的新方向"一文中,提出一种密钥交换协议,允许在不安全的媒体上通讯双方 交换信息,安全地达成一致的密钥。在此新思想的基础上,很快出现了"不对称密钥密码体 制",即"公开密钥密码体制",其中加密密钥不同于解密密钥,加密密钥公之于众。
与对称密钥加密相比,优点在于无需共享的通用密钥,解密的私钥不发往任何用户。即使公钥在网上被截获,如果没有与其匹配的私钥,也无法解密,所截获的公钥是没有任何用处的。
假设两个用户A,B进行通信,接收方B的公钥为c,私钥为d,明文为x.
- A用B的公钥对明文进行加密形成密文c(x),然后传输密文;
- B收到密文,用自己的私钥对密文进行解密d(c(x)),得到要通信的明文x。
以上过程中的接收方B通过计算得到自己的公钥和私钥,其中公钥是所有人都可以获取到的,私钥只有B知道。
现在,用一个简单的例子来说明RSA公开密钥密码系统的工作原理。
取两个质数p=11,q=13,p和q的乘积为n=p×q=143,算出另一个数z=(p-1)×(q- 1)=120;再选取一个与z=120互 质的数,例如e=7(称为"公开指数"),对于这个e值,可以算出另一个值d=103(称为"秘密指数 ")满足e×d=1 mod z;其实7×103=721除以120确实余1。(n,e)和(n,d)这两组数分别为"公 开密钥"和"秘密密钥。"
设想张小姐需要发送机密信息(明文,即未加密的报文)s=85给李先生,她已经从公开媒体或网站上得到了李先生的公开密钥(n,e)=(143,7),于是她算出加密值
c=s【RUe】 mod n=85【RU7】 mod 143=123并发送给李先生。
李先生在收到"密文"(即经加密的报文)其中c=123,他就可利用只有他自己知道的秘密密钥(n,d)=(143,123)计算123123 mod 143,
得到的值就是明文(值)85,实现了解密。其中的计算用一般公式来表达,是
c【RUd】 mod n=(s【RUe】)【RUd】 mod n=s【RUed】 mod n
根据初等数论中的欧拉(Euler)定理,应用s【RUz】=1 mod n,所以
s【RUed】=s mod n
所以,李先生可以得到张小姐发给他的真正的信息s=85。
自然,我们要问,在李先生向公众提供了公开密钥,密文c又是通过公开的途径传送的,其安全性何在?
回答是肯定的!只有当n足够大时,例如,有512比特,或1024比特甚至2048比特,n=p×q中的p和q的 位数差不多大小,任何人只知道公开密钥(n,e),目前是无法算出秘密密钥(n,d)的。其困难在于从乘积n难以找出它的两个巨大的质数因子。
上面例子中的n=143,只是示意用的,用来说明RSA公开密钥密码系统的计算过程,从 143找出它的质数因子11和13是毫不困难的。对于巨大的质数p和q,计算乘积n=p×q非常简便,而其逆运算却是相当困难的事情。这是一种"单向性"。相应的函数称为"单向函数"。任何单向函数都可以作为某一种公开密钥密码系统的基础,而单向函数的安全性也就是这种公开密钥密 码系统的安全性。
虽然公开密钥具有杰出的特性,但需要指出的是,RSA所要求的计算过程需要耗费大量的时间,而用硬件实现的DES比RSA快1000~10000倍,尤其是需要传送大量报文时二者所消耗的时间差更明显。所以,在实际应用中通常使用RSA和对称密钥相结合的方式。例如,A选择用于加密报文的对称密钥;为了与B共享该对称密钥,A通过公开密钥系统,利用B所公布的公钥加密该对称密钥并发送给B,B收到密文后用自己的私钥解密该报文,从此,A和B就会话过程中的加密方案取得一致。值得一提的是,该过程中的对称密钥也可称为会话密钥。
相关文章:
计算机网络安全
从广义来说,凡是涉及到网络上信息的机密性、报文完整性、端点鉴别等技术和理论都是网络安全的研究领域。 机密性指仅有发送方和接收方能理解传输报文的内容,而其他未授权用户不能解密(理解)该报文报文完整性指报文在传输过程中不…...
Delphi 实现键盘模拟、锁定键盘,锁定鼠标等操作
Delphi 模拟按键的方法 SendMessageA 说明: 调用一个窗口的窗口函数,将一条消息发给那个窗口。除非消息处理完毕,否则该函数不会返回SendMessage所包含4个参数: 1. hwnd 32位的窗口句柄窗口可以是任何类型的屏幕对象,因为Win32能够维护大多数…...
RTK数据的采集方法
采集RTK(实时动态定位)数据通常涉及使用高精度的GNSS(全球导航卫星系统)接收器,并通过基站和流动站的配合来实现。本文给出RTK数据采集的基本步骤 文章目录 准备设备设置基站设置流动站数据采集数据存储与处理应用数据…...
Next.js 入门学习
一、引言 在现代 Web 开发领域,Next.js 已成为构建高性能、可扩展且用户体验卓越的 React 应用程序的重要框架。它基于 React 并提供了一系列强大的特性和工具,能够帮助开发者更高效地构建服务器端渲染(SSR)、静态站点生成&#…...
2024年认证杯SPSSPRO杯数学建模B题(第一阶段)神经外科手术的定位与导航解题全过程文档及程序
2024年认证杯SPSSPRO杯数学建模 B题 神经外科手术的定位与导航 原题再现: 人的大脑结构非常复杂,内部交织密布着神经和血管,所以在大脑内做手术具有非常高的精细和复杂程度。例如神经外科的肿瘤切除手术或血肿清除手术,通常需要…...
安卓底层相机流的传输方式
这是安卓 相机流的定义 typedef enum {CAM_STREAMING_MODE_CONTINUOUS, /* continous streaming */CAM_STREAMING_MODE_BURST, /* burst streaming */CAM_STREAMING_MODE_BATCH, /* stream frames in batches */CAM_STREAMING_MODE_MAX} cam_streaming_mode_t; 在ca…...
【单链表】(更新中...)
一、 题单 206.反转链表203.移除链表元素 876.链表的中间结点BM8 链表中倒数最后k个结点21.合并两个有序链表 二、题目简介及思路 206.反转链表 给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。 思路简单,但是除了要两个指针进…...
开源堡垒机JumpServer配置教程:使用步骤与配置
开源堡垒机JumpServer配置教程:使用步骤与配置 上一篇文章星哥讲了如何安装JumpServer堡垒机,本篇文章来讲如何配置和使用JumpServer。 安装成功后,通过浏览器访问登录 JumpServer 地址: http://<JumpServer服务器IP地址>:<服务运…...
上门服务小程序开发,打造便捷生活新体验
随着互联网的快速发展,各种上门服务成为了市场的发展趋势,不管是各种外卖、家政、美甲、维修、按摩等等,都可以提供上门服务,人们足不出户就可以满足各种需求,商家也能够获得新的拓展业务渠道,提高整体收益…...
iOS中的类型推断及其在Swift编程语言中的作用和优势
iOS中的类型推断及其在Swift编程语言中的作用和优势 一、iOS中的类型推断 类型推断(Type Inference)是编程语言编译器或解释器自动推断变量或表达式的类型的能力。在支持类型推断的语言中,开发者在声明变量时无需显式指定其类型,…...
工业检测基础-缺陷形态和相机光源选型
缺陷形态与相机选择依据 微小点状缺陷(如微小气泡、杂质颗粒) 相机选择依据: 分辨率:需要高分辨率相机,无论是面阵还是线阵相机,以确保能够清晰地分辨这些微小的点。对于面阵相机,像元尺寸要小&…...
Python100道练习题
Python100道练习题 BIlibili 1、两数之和 num1 20 num2 22result num1 num2print(result)2、一百以内的偶数 list1 []for i in range(1,100):if i % 2 0:list1.append(i) print(list1)3、一百以内的奇数 # 方法一 list1 [] for i in range(1,100):if i % 2 ! 0:lis…...
2024年华中杯数学建模A题太阳能路灯光伏板的朝向设计问题解题全过程文档及程序
2024年华中杯数学建模 A题 太阳能路灯光伏板的朝向设计问题 原题再现 太阳能路灯由太阳能电池板组件部分(包括支架)、LED灯头、控制箱(包含控制器、蓄电池)、市电辅助器和灯杆几部分构成。太阳能电池板通过支架固定在灯杆上端。…...
【JavaWeb后端学习笔记】Java上传文件到阿里云对象存储服务
阿里云对象存储 1、创建阿里云对象存储节点2、上传文件2.1 修改项目配置文件2.2 定义一个Properties类获取配置信息2.3 准备一个alioss工具类2.4 创建注册类,将AliOssUtil 注册成Bean2.5 使用AliOssUtil 工具类上传文件2.6 注意事项 使用阿里云对象存储服务分为以下…...
网盘管理系统
文末获取源码和万字论文,制作不易,感谢点赞支持。 设计题目:网盘管理系统的设计与实现 摘 要 网络技术和计算机技术发展至今,已经拥有了深厚的理论基础,并在现实中进行了充分运用,尤其是基于计算机运行的软…...
learn-(Uni-app)跨平台应用的框架
使用 Vue.js 开发所有前端应用的框架,开发者编写一份代码,可发布到iOS、Android、Web(包括微信小程序、百度小程序、支付宝小程序、字节跳动小程序、H5、App等)等多个平台。 跨平台:Uni-app 支持编译到iOS、Android、W…...
趋同进化与趋异进化的区别及分析方法-随笔03
趋同进化与趋异进化的区别及分析方法 1. 引言 在生物学中,进化是指生物种群随着时间的推移,通过遗传变异、自然选择、基因漂变等机制的作用,逐渐改变其基因型和表型的过程。进化的方式有很多种,其中趋同进化(Converg…...
2024年华中杯数学建模B题使用行车轨迹估计交通信号灯周期问题解题全过程文档及程序
2024年华中杯数学建模 B题 使用行车轨迹估计交通信号灯周期问题 原题再现 某电子地图服务商希望获取城市路网中所有交通信号灯的红绿周期,以便为司机提供更好的导航服务。由于许多信号灯未接入网络,无法直接从交通管理部门获取所有信号灯的数据&#x…...
高效查找秘密武器一:位图
有这样的一个问题: 给40亿个不重复的无符号整数,没排过序。给一个无符号整数,如何快速判断一个数是否在这40亿个数 中。 那么我们一般会想到这样做的 1.遍历,时间复杂度O(n) 2.排序(N*logN),…...
自回归模型(AR )
最近看到一些模型使用了自回归方法,这里就学习一下整理一下相关内容方便以后查阅。 自回归模型(AR ) 自回归模型(AR )AR 模型的引入AR 模型的定义参数的估计方法模型阶数选择平稳性与因果性条件自相关与偏自相关函数优…...
装饰模式(Decorator Pattern)重构java邮件发奖系统实战
前言 现在我们有个如下的需求,设计一个邮件发奖的小系统, 需求 1.数据验证 → 2. 敏感信息加密 → 3. 日志记录 → 4. 实际发送邮件 装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其…...
C++初阶-list的底层
目录 1.std::list实现的所有代码 2.list的简单介绍 2.1实现list的类 2.2_list_iterator的实现 2.2.1_list_iterator实现的原因和好处 2.2.2_list_iterator实现 2.3_list_node的实现 2.3.1. 避免递归的模板依赖 2.3.2. 内存布局一致性 2.3.3. 类型安全的替代方案 2.3.…...
渗透实战PortSwigger靶场-XSS Lab 14:大多数标签和属性被阻止
<script>标签被拦截 我们需要把全部可用的 tag 和 event 进行暴力破解 XSS cheat sheet: https://portswigger.net/web-security/cross-site-scripting/cheat-sheet 通过爆破发现body可以用 再把全部 events 放进去爆破 这些 event 全部可用 <body onres…...
家政维修平台实战20:权限设计
目录 1 获取工人信息2 搭建工人入口3 权限判断总结 目前我们已经搭建好了基础的用户体系,主要是分成几个表,用户表我们是记录用户的基础信息,包括手机、昵称、头像。而工人和员工各有各的表。那么就有一个问题,不同的角色…...
微信小程序云开发平台MySQL的连接方式
注:微信小程序云开发平台指的是腾讯云开发 先给结论:微信小程序云开发平台的MySQL,无法通过获取数据库连接信息的方式进行连接,连接只能通过云开发的SDK连接,具体要参考官方文档: 为什么? 因为…...
pikachu靶场通关笔记22-1 SQL注入05-1-insert注入(报错法)
目录 一、SQL注入 二、insert注入 三、报错型注入 四、updatexml函数 五、源码审计 六、insert渗透实战 1、渗透准备 2、获取数据库名database 3、获取表名table 4、获取列名column 5、获取字段 本系列为通过《pikachu靶场通关笔记》的SQL注入关卡(共10关࿰…...
HDFS分布式存储 zookeeper
hadoop介绍 狭义上hadoop是指apache的一款开源软件 用java语言实现开源框架,允许使用简单的变成模型跨计算机对大型集群进行分布式处理(1.海量的数据存储 2.海量数据的计算)Hadoop核心组件 hdfs(分布式文件存储系统)&a…...
scikit-learn机器学习
# 同时添加如下代码, 这样每次环境(kernel)启动的时候只要运行下方代码即可: # Also add the following code, # so that every time the environment (kernel) starts, # just run the following code: import sys sys.path.append(/home/aistudio/external-libraries)机…...
c++第七天 继承与派生2
这一篇文章主要内容是 派生类构造函数与析构函数 在派生类中重写基类成员 以及多继承 第一部分:派生类构造函数与析构函数 当创建一个派生类对象时,基类成员是如何初始化的? 1.当派生类对象创建的时候,基类成员的初始化顺序 …...
Golang——7、包与接口详解
包与接口详解 1、Golang包详解1.1、Golang中包的定义和介绍1.2、Golang包管理工具go mod1.3、Golang中自定义包1.4、Golang中使用第三包1.5、init函数 2、接口详解2.1、接口的定义2.2、空接口2.3、类型断言2.4、结构体值接收者和指针接收者实现接口的区别2.5、一个结构体实现多…...
