这里写自定义目录标题

  • 公钥密码
    • 密码学中的常用数学知识
      • 群、环、域
      • 素数和互素数
      • 模运算
      • 模指数运算
      • 费尔马定理、欧拉定理、卡米歇尔定理
      • 素性检验
      • 欧几里得算法
      • 中国剩余定理(CRT)
      • 离散对数
      • 二次剩余
      • 循环群
      • 循环群的选取
      • 双线性映射
      • 计算复杂性
    • 公钥密码体制的基本概念
    • RSA 算法
    • 背包密码体制
    • Rabin 密码体制
    • NTRU 公钥密码系统
    • 椭圆曲线密码体制(ECC)
    • SM2 椭圆曲线公钥密码加密算法

公钥密码

密码学中的常用数学知识

群、环、域

  1. 代数系统:由集合及集合上的运算构成,运算需满足封闭性(运算结果仍在集合内)和结合律((ab)c=a(bc))。
  2. :满足以下条件的代数系统 (G, *):
    • 封闭性:∀a,b∈G,a*b∈G;
    • 结合律:∀a,b,c∈G,(ab)c=a(bc);
    • 单位元:存在 e∈G,∀a∈G,ae=ea=a;
    • 逆元:∀a∈G,存在 a⁻¹∈G,aa⁻¹=a⁻¹a=e。
    • 有限群:G 为有限集,元素个数为群的阶;Abel 群(交换群):运算满足交换律(ab=ba)。
  3. 半群:仅满足封闭性和结合律的代数系统。
  4. :代数系统 (R, +,・),其中:
    • (R, +) 是 Abel 群;
    • (R,・) 是半群;
    • 乘法对加法可分配:a・(b+c)=a・b+a・c,(b+c)・a=b・a+c・a。
  5. :环 (F, +,・),其中非零元素对乘法构成 Abel 群(即每个非零元素有乘法逆元)。
    • 例子:有理数域 (Q, +,・)、实数域 (R, +,・)、复数域 (C, +,・);有限域(Galois 域 GF (q),q 为素数幂)。

素数和互素数

  1. 因子与整除:若存在整数 m 使 a=mb,则 b 整除 a(记为 b|a),b 是 a 的因子。
    • 性质:若 b|a 且 a|b,则 a=±b;若 b|a 且 b|c,则 b|(ma+nc)(m,n 为整数)。
  2. 素数:大于 1 的整数,因子仅为 1 和自身;非素数(大于 1)为合数。
    • 整数分解唯一性:任一整数可唯一分解为素数乘积(如 91=7×13)。
  3. 最大公因子(gcd):两数共有的最大因子,记为 gcd (a,b)。
    • 互素:gcd (a,b)=1 时,a 与 b 互素。
  4. 最小公倍数(lcm):两数共有的最小倍数,记为 lcm (a,b)。
    • 性质:若 a 与 b 互素,则 lcm (a,b)=ab。

模运算

  1. 模与同余:a mod n 表示 a 除以 n 的余数(0≤r<n);若 a mod n = b mod n,则 a≡b mod n(a 与 b 模 n 同余)。
    • 同余性质:n|(a-b) ⇨ a≡b mod n;若 a≡b mod n 且 b≡c mod n,则 a≡c mod n 等。
  2. 模运算规则
    • (a+b) mod n = [(a mod n)+(b mod n)] mod n;
    • (a-b) mod n = [(a mod n)-(b mod n)] mod n;
    • (a·b) mod n = [(a mod n)·(b mod n)] mod n。
  3. 逆元
    • 加法逆元:∀x∈Zₙ,存在 y 使 (x+y) mod n=0(如 2 在 Z₈中的逆元为 6);
    • 乘法逆元:若 gcd (x,n)=1,则存在 x⁻¹ 使 (x・x⁻¹) mod n=1(Zₙ^* 中元素均有乘法逆元,Zₙ^* 是 Zₙ中与 n 互素的元素集合)。

模指数运算

  1. :满足 aᵐ≡1 mod n 的最小正整数 m,记为 ordₙ(a)。
    • 定理:aᵏ≡1 mod n ⇨ ordₙ(a)|k(m 整除 k)。
  2. 快速指数算法:将指数分解为二进制,通过反复平方简化计算(如 a¹⁵=a⁸・a⁴・a²・a¹)。

费尔马定理、欧拉定理、卡米歇尔定理

  1. 费尔马定理:若 p 是素数,gcd (a,p)=1,则 aᵖ⁻¹≡1 mod p;推广:aᵖ≡a mod p(a 为任意整数)。
  2. 欧拉函数 φ(n):小于 n 且与 n 互素的正整数个数。
    • 性质:若 p 是素数,φ§=p-1;若 n=pq(p,q 为素数),φ(n)=(p-1)(q-1)。
  3. 欧拉定理:若 gcd (a,n)=1,则 a^φ(n)≡1 mod n。
  4. 卡米歇尔函数 λ(n):使所有 gcd (a,n)=1 的 a 满足 aᵐ≡1 mod n 的最小 m。
    • 性质:λ(ab)=lcm (λ(a),λ(b))(a,b 互素);λ§=p-1(p 为素数)。

素性检验

  1. 爱拉托斯散筛法:通过删除小于等于√n 的素数倍数,判断 n 是否为素数。
  2. Miller-Rabin 概率检测法:基于 “若 n 是素数,则 x²≡1 mod n 的解为 x≡±1 mod n”,通过多次测试降低错误概率。
  3. AKS 算法:确定性素性检验,基于多项式恒等式,时间复杂度为多项式级。

欧几里得算法

  1. 基本欧几里得算法:求 gcd (a,b),基于 gcd (a,b)=gcd (b,a mod b),通过辗转相除实现。
  2. 推广欧几里得算法:不仅求 gcd (a,b),还能求 x,y 使 ax+by=gcd (a,b);当 gcd (a,b)=1 时,x 是 a 模 b 的乘法逆元。

中国剩余定理(CRT)

  • 若 n₁,n₂,…,nₖ两两互素,N=n₁n₂…nₖ,则方程组 x≡aᵢ mod nᵢ(i=1,…,k)有模 N 的唯一解:
    x = Σ(aᵢ・N/nᵢ・(N/nᵢ)⁻¹ mod nᵢ) mod N,其中 (N/nᵢ)⁻¹ 是 N/nᵢ模 nᵢ的逆元。
  • 应用:将大数运算转化为小数运算(如 15 以内的数可通过模 3 和模 5 的余数表示)。

离散对数

  1. 指标:设 p 是素数,g 是 p 的本原根(生成元),则对∀b∈Zₚ^*,存在唯一 i 使 gⁱ≡b mod p,i 称为 b 模 p 以 g 为底的指标(离散对数),记为 ind_gᵖ(b)。
  2. 性质:类似对数,ind_g (ab)≡ind_g (a)+ind_g (b) mod (p-1);ind_g (aᵏ)≡k・ind_g (a) mod (p-1)。
  3. 困难性:已知 g,p,b 求 i(离散对数问题)在大素数下计算困难,是许多公钥算法的基础。

二次剩余

  1. 二次剩余:若存在 x 使 x²≡a mod n,则 a 是模 n 的二次剩余;否则为非剩余。
  2. Legendre 符号:对素数 p 和 a∉p,(a|p)=1(a 是二次剩余)、-1(非剩余)、0(p|a),计算式:(a|p)=a^((p-1)/2) mod p。
  3. Jacobi 符号:Legendre 符号的推广,用于合数模,定义为 (a|n)=Π(a|pᵢ)(n=Πpᵢ^k),可通过互反律简化计算。

循环群

  • 循环群:由单个元素 g 生成的群,即 G={gⁱ|i∈Z},g 为生成元。
  • 性质:子群仍是循环群;Lagrange 定理(子群阶整除群阶);n 阶循环群中,元素 gᵏ的阶为 n/gcd (k,n);生成元满足 gcd (k,n)=1。

循环群的选取

  • 实际应用中常用循环群:Zₚ^* 的子群(p 为素数)、椭圆曲线群等,要求生成元的阶为大素数,确保离散对数问题困难。

双线性映射

  • 映射 e:G₁×G₂→G₃(G₁,G₂,G₃为阶 q 的群),满足:
    • 双线性:e (aP,bQ)=e (P,Q)^(ab);
    • 非退化性:e (P,Q)≠1(单位元);
    • 可计算性:存在有效算法计算 e (P,Q)。
  • 例子:Weil 配对、Tate 配对,应用于短签名、身份加密等。

计算复杂性

  1. 时间复杂度
    • O (f (n)):渐近上界;o (f (n)):非紧确上界;
    • 多项式时间(O (nᵏ)):“容易” 问题;指数时间(O (2ⁿᵏ)):“困难” 问题。
  2. 问题类
    • P:多项式时间可解;
    • NP:多项式时间可验证解;
    • NPC:NP 中最难问题,若任一 NPC 问题有多项式解,则 P=NP。
  3. 可忽略函数:增长慢于任何多项式的逆(如 2⁻ⁿ);概率多项式时间(PPT)算法:运行时间为多项式,允许随机选择。

公钥密码体制的基本概念

  1. 原理:使用一对密钥(公钥 PK 和私钥 SK),加密用 PK,解密用 SK;已知 PK 求 SK 计算困难。
  2. 要求
    • 产生 PK 和 SK 容易;
    • 加密(c=E (PK,m))和解密(m=D (SK,c))容易;
    • 由 PK 求 SK 困难;
    • 由 c 和 PK 恢复 m 困难;
    • 可选:加解密可交换(E (PK,D (SK,m))=m)。
  3. 陷门单向函数:正向计算容易,逆向计算困难,但若已知陷门信息则逆向容易(公钥密码的核心)。
  4. 攻击:穷搜索(需足够长密钥)、可能字攻击(通过已知明文猜测密钥)。

RSA 算法

  1. 密钥产生
    • 选大素数 p、q,计算 n=pq,φ(n)=(p-1)(q-1);
    • 选 e(1<e<φ(n),gcd (e,φ(n))=1),求 d=e⁻¹ mod φ(n);
    • 公钥 (PK)=(e,n),私钥 (SK)=(d,n)。
  2. 加解密
    • 加密:c=mᵉ mod n(m<n);
    • 解密:m=cᵈ mod n。
    • 正确性:由欧拉定理,若 gcd (m,n)=1,则 m^(e・d)≡m mod n;若 m 与 n 不互素,仍可证明成立。
  3. 计算优化:快速指数算法(降低模指数复杂度);中国剩余定理(加速解密,分解计算 m mod p 和 m mod q)。
  4. 安全性:基于大整数分解困难性(若 n 被分解,可求 φ(n) 和 d);需保证 p 和 q 足够大(1024-2048 比特),且 p 和 q 差距小、有大素因子。
  5. 攻击:共模攻击(多用户用同一 n)、低指数攻击(e 过小且多用户加密同一 m)。

背包密码体制

  1. 背包问题:给定背包向量 A=(a₁,…,aₙ) 和容积 s,求子集 A’ 使和为 s(NPC 问题)。
  2. 超递增背包:aᵢ>Σₖ₌₁ⁱ⁻¹aₖ,可通过贪婪算法求解(从最大元素开始判断是否包含)。
  3. 公钥构造
    • 私钥:超递增背包 A,模数 M(M>Σaᵢ),乘数 w(gcd (w,M)=1);
    • 公钥:B=(w・a₁ mod M,…,w・aₙ mod M)。
  4. 加解密
    • 加密:c=Σxᵢ・bᵢ(x 为明文二进制);
    • 解密:s=c・w⁻¹ mod M,用贪婪算法解超递增背包得 x。
  5. 缺陷:已被破译(无需陷门可还原超递增背包)。

Rabin 密码体制

  1. 特点:破译等价于大整数分解;加密指数 e=2。
  2. 密钥产生:选大素数 p≡3 mod 4,q≡3 mod 4,n=pq;公钥 n,私钥 (p,q)。
  3. 加解密
    • 加密:c=m² mod n;
    • 解密:解 x²≡c mod n,等价于解 x²≡c mod p 和 x²≡c mod q,由 p≡3 mod 4,根为 ±c^((p+1)/4) mod p,再用 CRT 合并得 4 个解,需通过冗余信息确定正确明文。

NTRU 公钥密码系统

  1. 基础:多项式环 Z [x]/(xⁿ-1),参数 (n,p,q)(p,q 为素数,q>p²)。
  2. 密钥产生
    • 选 f,g∈L(L 为低重量多项式集合),求 f⁻¹ mod p 和 f⁻¹ mod q;
    • 公钥 h=p・f⁻¹ mod q・g mod q;私钥 (f,f⁻¹ mod p)。
  3. 加解密
    • 加密:选 r∈L,c=(h・r + m) mod q(m 为明文多项式);
    • 解密:a=f・c mod q,b=a mod p,m=f⁻¹ mod p・b mod p。

椭圆曲线密码体制(ECC)

  1. 椭圆曲线:方程 y²=x³+ax+b(a,b∈GF §,4a³+27b²≠0),点集 Eₚ(a,b) 包括无穷远点 O,对加法构成 Abel 群。
    • 加法规则:三点共线则和为 O;P+Q 的坐标通过直线交点计算;2P 为切线交点的逆。
  2. 椭圆曲线离散对数问题(ECDLP):已知 P,kP∈Eₚ(a,b),求 k,比有限域离散对数更困难。
  3. 应用
    • Diffie-Hellman 密钥交换:双方共享 G,选私钥 kₐ,k_b,计算公钥 kₐG,k_bG,共享密钥 kₐk_bG;
    • ElGamal 加密:公钥 kG,加密 (c₁= rG, c₂= m + rkG),解密 m= c₂ - kc₁。
  4. 优点:安全性高(160 比特 ECC≈1024 比特 RSA)、密钥短、运算快。

SM2 椭圆曲线公钥密码加密算法

  1. 标准:中国商用算法,基于素数域 GF §,参数包括 p,a,b,G,n(G 的阶),h(余因子)。
  2. 密钥产生:私钥 d∈[1,n-2],公钥 Q=dG。
  3. 加解密
    • 加密:选 k∈[1,n-2],c₁=kG,c₂=(M || t)(t=KDF (x₂||y₂, len (M))),c₃=Hash (x₂||M||y₂),密文 (c₁,c₂,c₃);
    • 解密:计算 d c₁=(x₂,y₂),t=KDF (x₂||y₂, len (c₂)),M’=c₂||t,验证 Hash (x₂||M’||y₂)=c₃,输出 M’。
  4. 特点:使用 SM3 哈希函数,参数含用户特异性信息,安全性更高。

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

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

VINS-Fusion+UWB辅助算法高精度实现

VINS-FusionUWB辅助算法高精度实现 摘要 本文详细介绍了基于VINS-Fusion框架结合UWB辅助的高精度定位算法实现。通过将视觉惯性里程计(VIO)与超宽带(UWB)测距技术融合&#xff0c;显著提高了复杂环境下的定位精度和鲁棒性。本文首先分析了VINS-Fusion和UWB各自的技术特点&#…

新手向:Python实现简易计算器

你是否一直想学习编程但不知从何入手&#xff1f;这篇详细的教程将带领完全零基础的读者&#xff0c;循序渐进地掌握如何用Python实现一个简易计算器。我们将从最基本的编程概念讲起&#xff0c;确保每一位初学者都能跟上进度。准备工作在开始之前&#xff0c;你需要&#xff1…

区块链赋能供应链金融:解决信任与效率问题

摘要: 随着全球经济一体化和数字化进程的加速,供应链金融在实体经济发展中的作用愈发关键。然而,传统供应链金融面临着信任机制薄弱和效率低下等诸多挑战。区块链技术凭借其去中心化、不可篡改、可追溯等特性,为供应链金融带来了创新的解决方案,能够有效解决信任与效率问题…

无人机 × 巡检 × AI识别:一套可复制的超低延迟低空视频感知系统搭建实践

✳️ 引言&#xff1a;低空感知&#xff0c;正重构数字世界的“底层感官接口” 随着低空经济进入规模化部署阶段&#xff0c;感知系统不再是“任务辅助”&#xff0c;而是演变为支撑智能化运行的基础设施核心模块。从电力巡检的高空细节识别&#xff0c;到城市安防的区域态势掌…

STM32U5 外部中断不响应问题分析

关键字&#xff1a; EXTI 1. 问题背景 客户的终端客户反馈产品会有偶发性的功能异常。问题比较难以复现。 经过调查&#xff0c;在 BOOT 程序跳转到 APP1 程序中时相对比较容易复现问题。查看客户代码&#xff0c;发现客户在 BOOT 程序中会对 EXTI 进行初始化&#xff0c;跳…

17.Linux :selinux

Linux &#xff1a; selinux DAC vs MAC 对比模型控制方式决策依据安全强度DAC自主访问控制文件所有者的权限设置低MAC强制访问控制系统级安全策略极高SELinux的核心原理是基于 强制访问控制&#xff08;MAC&#xff09; 模型&#xff0c;通过为系统资源打上安全标签并制定精细…

如何在不停机的情况下,将MySQL单库的数据迁移到分库分表的架构上?

在业务高速发展的过程中&#xff0c;单库单表的MySQL架构往往会成为系统性能的瓶颈。将单库迁移到分库分表架构是一种常见的扩展方案&#xff0c;但如何在保证业务连续性的前提下完成这一迁移是一个挑战。以下是不停机迁移的几种主要方案&#xff1a; 一、基于双写的迁移方案 1…

Unix/Linux 系统编程中用于管理信号处理行为的核心概念或模型

在 Unix/Linux 系统编程中&#xff0c;管理信号处理行为涉及以下核心概念和模型&#xff0c;它们共同构成了信号处理的框架&#xff1a;1. 信号&#xff08;Signal&#xff09;模型 软件中断&#xff1a;信号是异步事件通知机制&#xff0c;类比硬件中断预定义类型&#xff1a;…

webrtc弱网-OveruseFrameDetector源码分析与算法原理

一、核心功能CPU负载检测&#xff1a;监控视频帧的捕获、编码、发送全流程耗时&#xff0c;实时计算CPU使用率自适应决策&#xff1a;基于CPU使用率阈值触发视频质量调整&#xff08;降级/升级&#xff09;多策略支持&#xff1a;提供新旧两套CPU负载估计算法&#xff0c;支持实…

Spring Cloud系列—Eureka服务注册/发现

上篇文章&#xff1a; Spring Cloud系列—简介https://blog.csdn.net/sniper_fandc/article/details/149936339?fromshareblogdetail&sharetypeblogdetail&sharerId149936339&sharereferPC&sharesourcesniper_fandc&sharefromfrom_link 在上篇文章中&…

QUdpSocket 详解:从协议基础、通信模式、数据传输特点、应用场景、调用方式到实战应用全面解析

前言 在网络通信的世界里&#xff0c;UDP 协议以其独特的 “快准狠” 特性占据着一席之地。作为 Qt 框架中 UDP 协议的封装者&#xff0c;QUdpSocket 为开发者提供了便捷高效的网络编程接口。​ 一、UDP 协议基础&#xff1a;QUdpSocket 的 历史 要理解 QUdpSocket&#xff0c;…

vue中reactive()和ref()的用法

在 Vue 3 的 Composition API 里&#xff0c;reactive() 和 ref() 都是用来把「普通数据」变成「响应式数据」的函数。 一句话区别&#xff1a; reactive() 只能包裹对象/数组&#xff1b;ref() 可以包裹任何类型&#xff0c;但在 模板 里读取时&#xff0c;不需要 .value。 下…

【公考基础】----备考规划篇

公考 公考&#xff1a;国家公务员考试 即&#xff1a;国考和省考 或 参公考试 包括但不限于&#xff1a;国考、省考、事业单位招考、教师招聘考试、军队文职招考等&#xff0c;一切进入国家党政军事业单位的考试。 考公整体流程 备考前&#xff1a;准备备考资料&#xf…

STM32江科大学习笔记,全功能按键非阻塞式实现,按键点击,双击,长按

目录 一、前言 二、关于实现非阻塞的办法 2.1 中断类型的选择 2.2 定时器中断 二、程序流程图 2.1 状态S0空闲状态 2.2 状态S1按键判断长按还是其他的事件 2.3 状态S2按键判断双击或者单击 2.4 状态S3按键已双击状态 2.5 状态S4长按状态 三、编写代码 3.1 按键初始…

动态代理常用的两种方式?

口语化回答好的&#xff0c;面试官&#xff0c;动态常见的两种&#xff0c;一种是 jdk 动态代理&#xff0c;一种是 cglib 动态代理&#xff0c;两者的最主要区别是 jdk 动态代理主要是依赖于接口创建代理对象&#xff0c;cglib 是通过生成子类的方式&#xff0c;不需要接口&am…

StarRocks vs ClickHouse:2025 年 OLAP 引擎终极对比指南

StarRocks 与 ClickHouse&#xff1a;高性能 OLAP 引擎的两种选择在当今数据驱动的商业环境中&#xff0c;选择合适的分析型数据库对于企业数据战略至关重要。StarRocks 和 ClickHouse 作为两款领先的 OLAP&#xff08;在线分析处理&#xff09;引擎&#xff0c;各自拥有独特的…

RuoYi-Cloud 微服务本地部署详细流程实录(IDEA + 本地 Windows 环境)

本文以 RuoYi-Cloud 3.x 版本为例&#xff0c;开发工具用的是 IntelliJ IDEA&#xff0c;数据库为 MySQL 8.x&#xff0c;注册中心选用本地 Nacos 2.2.3&#xff0c;Redis 为 3.x/5.x 均可。亲测全流程可用&#xff0c;细节与官方文档略有不同&#xff0c;避免新手踩坑。 目录 …

2025年了,程序员转行还这么难?别愁!大模型这趟“顺风车”,你搭不搭?

在“大龄程序员的未来在何方”这篇文章里比较乐观地介绍了程序员保持竞争力的几个方向&#xff0c;但现实依然是残酷的&#xff1a;很多人将不得不离开软件开发工作&#xff0c;转型去从事其他职业。 当你要这么做时&#xff0c;就会感慨&#xff1a;想不到一切竟如此艰难&…

CEH、OSCP、CISP、CISSP 四大网络安全认证攻略

以下是 CEH、OSCP、CISP、CISSP 四大网络安全认证的详细对比&#xff0c;涵盖认证定位、考试难度、适用场景及职业方向&#xff0c;帮助你快速选择适合自己的证书&#xff1a;1. 核心区别速览认证发证机构定位 考试形式适合人群国际认可度CEHEC-Council道德黑客渗透测试基础选择…

SnapDevelop支持uni-app开发:跨平台与原生体验的完美融合

随着移动互联网的迅速发展&#xff0c;开发者面临着多平台需求和技术挑战。传统开发模式要求为每个平台编写独立代码&#xff0c;不仅浪费时间&#xff0c;还增加了维护难度。作为一款强大的低代码开发工具&#xff0c;SnapDevelop打破了这一局限&#xff0c;通过对uni-app的支…