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

嵌入式基础知识-信息安全与加密

本篇来介绍计算机领域的信息安全以及加密相关基础知识,这些在嵌入式软件开发中也同样会用到。

1 信息安全

1.1 信息安全的基本要素

  • 保密性:确保信息不被泄露给未授权的实体。包括最小授权原则、防暴露、信息加密、物理加密。
  • 完整性:保证数据传输过程中是正确无误的,接收和发送的数据相同,不被篡改。包括安全协议、校验码、密码校验、数字签名、公正等手段。
  • 可用性:保证合法的用户能以合法的手段来访问数据,不会被拒绝。
  • 可控性:控制授权范围内的信息流向及行为方式,整个网络处于可控状态。
  • 不可抵赖性:信息数据的参与者不能否认自己发送的数据,参与者身份真实有效。

1.2 安全攻击与威胁

  • 被动攻击:不直接影响通信内容,如监听、窃取。
  • 主动攻击:直接影响通信内容,如中断、篡改、伪造、拒绝服务(DOS)等。

2 加密

2.1 加密基本概念

  • 明文:实际传输的真正数据
  • 密文:经过加密后的数据
  • 加密:将明文转换为密文的过程
  • 解密:经密文转换为明文的过程
  • 加密算法:一般是公开的,包括两大原则:
    • 代换:转换成完全不同的其它数据
    • 置换:打乱明文顺序,进行重新置换
  • 密钥:加密和解密过程中使用的密码

2.2 对称加密

对称加密是指加密和解密的密钥是相同的,属于不公开密钥的加密算法。其缺点的加密强度不高,且密钥分发困难。

对称加密算法描述
DESDES(Data Encryption Standard),即数据加密标准,通过替换+位移,使用56位密钥,64位数据块,速度快,密钥易产生。
3DES即三重数据加密算法,是一种对称密钥加密块密码,相当于是对每个数据块应用三次数据加密标准(DES)算法。
AESAES(Advanced Encryption Standard),是美国联邦政府采用的一种区块加密标准。
RC-5RC5的主要特性是很快,只是用基本的计算机运算(加、异或、移位等),轮数可变,密钥位数可变,从而大大增加灵活性。
IDEAIDEA(International Data Encryption Algorithm),即国际数据加密算法,使用128位密钥,64位数据块,比DES的加密性好,对计算机功能要求相对低。

2.3 非对称加密

非对称加密是指加密和解密的密钥是不同的,信息传递双方都拥有自己的公钥和私钥,用对方的公钥加密,用自己的私钥解密。

公钥只能用做数据加密,公钥加密的数据,只能用对应的私钥才能解密。这是非对称加密的核心概念。

非对称加密算法描述
RSARSA加密算法是由罗纳德·李维斯特(Ronald Linn Rivest)、阿迪·萨莫尔(Adi Shamir)和伦纳德·阿德尔曼(Leonard Adleman)于1977年共同发明的。使用1024或512位密钥,计算量极大,难破解。
ElGamalElGamal加密算法是一个基于迪菲-赫尔曼密钥交换的非对称加密算法。它在1985年由塔希尔·盖莫尔提出。
ECCCC(Ellipse Curve Ctyptography),是一种基于椭圆曲线数学的公开密钥加密算法。椭圆曲线在密码学中的使用是在1985年由Neal Koblitz和Victor Miller分别独立提出的。ECC可以使用更小的密钥并提供相当高等级的安全。ECC164位的密钥相当于RSA1024位密钥提供的保密强度,且计算量较小,处理速度更快,存储空间和传输带宽占用较少。

3 信息摘要

信息摘要,是指一段数据的特征信息,当数据发生变化时,信息摘要也会发生改变。

信息传递时,发送方将数据和对应的信息摘要一起发送,接收方收到后,根据收到的数据重新生成一个信息摘要,若与收到的摘要相同,则说明数据正确。

信息摘要由哈希函数生成。

摘要算法特点
MD5(Message-Digest Algorithm)产生128位的输出
SHA-1(Secure Hash Algorithm 1)产生160位的输出,安全性更高

虽然通过信息摘要,可以判断数据有没有被篡改,但仍然会存在的问题是:如果发送方的数据和摘要都被篡改了,那么接收方拿到错误的数据生成的摘要也和篡改的摘要相同,接收方就无法判断接收的数据是否正确了。

4 数字签名与数字证书

4.1 数字签名

数字签名用于验证发送方是否合法。

数字签名的基本原理是:

  • 若发送方需要发送数据,应使用发送方的私钥进行数字签名
  • 因为公钥是可以共享的,发送方将自己的公钥发送给接收方
  • 接收方使用发送方的公钥对接收的数据核实签名,则可验证数据发送方的身份

另外,由上述示意图可以看出,数字签名技术与非对称加密技术使用公钥和私钥的过程正好是相反的。

当数字签名和信息摘要合用后,就能保证数据不会产生错误。

  • 数字签名确定了唯一的发送方,如果被篡改,数字签名肯定错误
  • 若签名无误,则数据未被篡改,然后根据信息摘要,确定数据的完整性

4.2 数字证书

数字证书指的是互联网通信中,标志通信各方身份信息的一个数字认证,用于识别对方的身份。

数字证书由用户申请,证书签证机关CA(Certificate Authority)对其核实签发,是对用户公钥的认证。

每一个发送方都要先向CA申请数字证书,数字证书是经过CA数字签名的,即CA使用私钥加密。当发送方要发送数据时,接收方首先下载CA的公钥,来验证数字证书的真伪,如果是真的,就能保证发送方是真的,因为CA是权威机构,会确保合法性。

5 总结

本篇介绍了信息安全的基础知识,以及数据加密相关的基础知识,包括加密的分类,信息摘要,数字签名与数字证书等。

相关文章:

嵌入式基础知识-信息安全与加密

本篇来介绍计算机领域的信息安全以及加密相关基础知识,这些在嵌入式软件开发中也同样会用到。 1 信息安全 1.1 信息安全的基本要素 保密性:确保信息不被泄露给未授权的实体。包括最小授权原则、防暴露、信息加密、物理加密。完整性:保证数…...

TCP的三次握手与四次挥手

首先,源端口号和目标端口号是不可少的,这一点和 UDP 是一样的。如果没有这两个端口号。数据就不知道应该发给哪个应用。 接下来是包的序号。为什么要给包编号呢?当然是为了解决乱序的问题。不编好号怎么确认哪个应该先来,哪个应该…...

【Face Swapping综述】Quick Overview of Face Swap Deep Fakes

【Face Swapping综述】Quick Overview of Face Swap Deep Fakes 0、前言Abstract1. Introduction2. Face Swapping Process2.1. Preprocessing2.2. Identity Extraction2.3. Attributes Extractor2.4. Generator2.5. Postprocessing2.6. Evaluation Methods3. Challenges4. Con…...

etcd选举源码分析和例子

本文主要介绍etcd在分布式多节点服务中如何实现选主。 1、基础知识 在开始之前,先介绍etcd中 Version, Revision, ModRevision, CreateRevision 几个基本概念。 1、version 作用域为key,表示某个key的版本,每个key刚创建的version为1&#…...

Android 网络配置

ip tables 和 ip route 是两个不同的工具,它们在不同的阶段执行不同的功能。ip route 是用来管理和控制路由表的,它决定了数据包应该从哪个网卡或网关发送出去。ip tables 是用来配置、管理和控制网络数据包的过滤、转发和转换的,它根据用户定…...

【网络通信 -- WebRTC】Open WebRTC Toolkit 环境搭建指南

【网络通信 -- WebRTC】Open WebRTC Toolkit -- OWT-Server 编译安装指南 【1】OWT Server 与 Web Demo 视频会议环境搭建 【1.1】编译 OWT Server 安装依赖 ./scripts/installDepsUnattended.sh编译 scripts/build.js -t all --check 注意若不支持硬件加速则采用如下命令 s…...

文件上传漏洞(CVE-2022-30887)

简介 多语言药房管理系统(MPMS)是用PHP和MySQL开发的,该软件的主要目的是在药房和客户之间提供一套接口,客户是该软件的主要用户。该软件有助于为药房业务创建一个综合数据库,并根据到期、产品等各种参数提供各种报告…...

LeetCode-77-组合

一:题目描述: 给定两个整数 n 和 k,返回范围 [1, n] 中所有可能的 k 个数的组合。 你可以按 任何顺序 返回答案。 二:示例与提示 示例 1: 输入:n 4, k 2 输出: [[2,4],[3,4],[2,3],[1,2],[1,3],[1,4…...

Oracle中instr,rtrim,XMLPARSE,XMLAGG,GETCLOBVAL函数的使用

1:INSTR()函数 INSTR 是一个字符串函数,用于查找子字符串在源字符串中的位置。 它的语法如下: INSTR(source_string, search_string)source_string 是源字符串,即要在其中进行搜索的字符串。search_string 是要查找的子字符串。…...

java接入apiv3微信小程序支付(以java的eladmin框架为例)

一、需要准备的资料 1.小程序AppID 如:wx2e56f5****** 2.商户号 如:1641****** 3.商户API私钥路径:什么是商户API证书?如何获取商户API证书? 获取文件如下图: 如: 本地路径:E:\Env\e…...

第19节-PhotoShop基础课程-历史记录画笔工具

文章目录 前言1.历史记录画笔工具1.从当前状态创建文档2.创建新快照 2.历史记录艺术画笔工具 前言 任何记录都会被记录下来,并且可以拍快照,从历史中恢复,特别适合艺术创作的孩子 1.历史记录画笔工具 不只是画笔,所有操作记录都…...

MongoDB常用的比较符号和一些功能符号

比较符号 results collection.find({age: {$gt: 20}})功能符号 results collection.find({name: {$regex: ^M.*}})...

网络安全(黑客)技术自学

前言 一、什么是网络安全 网络安全可以基于攻击和防御视角来分类,我们经常听到的 “红队”、“渗透测试” 等就是研究攻击技术,而“蓝队”、“安全运营”、“安全运维”则研究防御技术。 无论网络、Web、移动、桌面、云等哪个领域,都有攻与防…...

C++ 引用

C 引用 引用变量是一个别名,也就是说,它是某个已存在变量的另一个名字。一旦把引用初始化为某个变量,就可以使用该引用名称或变量名称来指向变量。 C 引用 vs 指针 引用很容易与指针混淆,它们之间有三个主要的不同:…...

9.1.tensorRT高级(4)封装系列-自动驾驶案例项目self-driving-道路分割分析

目录 前言1. 道路分割总结 前言 杜老师推出的 tensorRT从零起步高性能部署 课程,之前有看过一遍,但是没有做笔记,很多东西也忘了。这次重新撸一遍,顺便记记笔记。 本次课程学习 tensorRT 高级-自动驾驶案例项目self-driving-道路分…...

稳定的 Glance 来了,安卓小部件有救了!

稳定的 Glance 来了,安卓小部件有救了! 稳定版本的 Glance 终于发布了,来一起看看吧,看看这一路的旅程,看看好用么,再看看如何使用! 前世今生 故事发生在两年的一天吧,其实夸张了…...

用友U8与MES系统API接口对接案例分析

企业数字化转型:轻易云数据集成平台助力 U8 ERPMES 系统集成 为什么选择数字化转型? 领导层对企业资源规划(ERP)的深刻理解促使了数字化转型的启动。采用精确的“N5”滚动计划,为供应商提供充分的预期信息&#xff0c…...

web UI自动化介绍

文章目录 一、web UI自动化介绍1.1 执行UI自动化测试前提1.2 Selenium介绍以及知识点梳理 二、Selenium 学习2.1 基础2.1.1 环境安装与基础使用2.1.2 web浏览器控制2.1.3 常见控件的八大定位方式2.1.3.1 八大定位方式介绍2.1.3.2 NAME、ID定位2.1.3.3 css_selector定位2.1.3.4 …...

小米13Pro/13Ultra刷面具ROOT后激活LSPosed框架微X模块详细教程

喜欢买小米手机,很多是因为小米手机的开放,支持root权限,而ROOT对普通用户来说更多的是刷入DIY模块功能,今天ROM乐园小编就教大家如何使用面具ROOT,实现大家日常情况下非常依赖的微X模块功能,体验微X模块的…...

文盘Rust -- 给程序加个日志 | 京东云技术团队

日志是应用程序的重要组成部分。无论是服务端程序还是客户端程序都需要日志做为错误输出或者业务记录。在这篇文章中,我们结合log4rs聊聊rust 程序中如何使用日志。 log4rs类似java生态中的log4j,使用方式也很相似 log4rs中的基本概念 log4rs 的功能组件也由 appe…...

RestClient

什么是RestClient RestClient 是 Elasticsearch 官方提供的 Java 低级 REST 客户端,它允许HTTP与Elasticsearch 集群通信,而无需处理 JSON 序列化/反序列化等底层细节。它是 Elasticsearch Java API 客户端的基础。 RestClient 主要特点 轻量级&#xff…...

Prompt Tuning、P-Tuning、Prefix Tuning的区别

一、Prompt Tuning、P-Tuning、Prefix Tuning的区别 1. Prompt Tuning(提示调优) 核心思想:固定预训练模型参数,仅学习额外的连续提示向量(通常是嵌入层的一部分)。实现方式:在输入文本前添加可训练的连续向量(软提示),模型只更新这些提示参数。优势:参数量少(仅提…...

解决Ubuntu22.04 VMware失败的问题 ubuntu入门之二十八

现象1 打开VMware失败 Ubuntu升级之后打开VMware上报需要安装vmmon和vmnet,点击确认后如下提示 最终上报fail 解决方法 内核升级导致,需要在新内核下重新下载编译安装 查看版本 $ vmware -v VMware Workstation 17.5.1 build-23298084$ lsb_release…...

从深圳崛起的“机器之眼”:赴港乐动机器人的万亿赛道赶考路

进入2025年以来,尽管围绕人形机器人、具身智能等机器人赛道的质疑声不断,但全球市场热度依然高涨,入局者持续增加。 以国内市场为例,天眼查专业版数据显示,截至5月底,我国现存在业、存续状态的机器人相关企…...

基于当前项目通过npm包形式暴露公共组件

1.package.sjon文件配置 其中xh-flowable就是暴露出去的npm包名 2.创建tpyes文件夹,并新增内容 3.创建package文件夹...

智能仓储的未来:自动化、AI与数据分析如何重塑物流中心

当仓库学会“思考”,物流的终极形态正在诞生 想象这样的场景: 凌晨3点,某物流中心灯火通明却空无一人。AGV机器人集群根据实时订单动态规划路径;AI视觉系统在0.1秒内扫描包裹信息;数字孪生平台正模拟次日峰值流量压力…...

CVE-2020-17519源码分析与漏洞复现(Flink 任意文件读取)

漏洞概览 漏洞名称:Apache Flink REST API 任意文件读取漏洞CVE编号:CVE-2020-17519CVSS评分:7.5影响版本:Apache Flink 1.11.0、1.11.1、1.11.2修复版本:≥ 1.11.3 或 ≥ 1.12.0漏洞类型:路径遍历&#x…...

算法:模拟

1.替换所有的问号 1576. 替换所有的问号 - 力扣(LeetCode) ​遍历字符串​:通过外层循环逐一检查每个字符。​遇到 ? 时处理​: 内层循环遍历小写字母(a 到 z)。对每个字母检查是否满足: ​与…...

Go 语言并发编程基础:无缓冲与有缓冲通道

在上一章节中,我们了解了 Channel 的基本用法。本章将重点分析 Go 中通道的两种类型 —— 无缓冲通道与有缓冲通道,它们在并发编程中各具特点和应用场景。 一、通道的基本分类 类型定义形式特点无缓冲通道make(chan T)发送和接收都必须准备好&#xff0…...

LangChain知识库管理后端接口:数据库操作详解—— 构建本地知识库系统的基础《二》

这段 Python 代码是一个完整的 知识库数据库操作模块,用于对本地知识库系统中的知识库进行增删改查(CRUD)操作。它基于 SQLAlchemy ORM 框架 和一个自定义的装饰器 with_session 实现数据库会话管理。 📘 一、整体功能概述 该模块…...