信息安全算法整理

本文梳理了多种信息安全算法,包括DES和AES加密、DSA和RSA签名、椭圆曲线密码体制、RC4、HMAC以及秘密共享等,详细介绍了每种算法的工作原理和步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

DES加密:

明文(64)密钥(56)密文(64)

明文——>IP置换——>轮函数(16)——>逆IP置换——>密文

轮函数:Li = Ri-1 Ri = Li -1 异或 F(Ri-1,ki)

F(Ri-1,ki):E扩展,密钥加,分组,s盒代换,P置换

密钥编排算法:分为C0 D0 28 + 28 然后循环左移,1 2 9 16 移动一位其余移动两位

懒得写了,crtl + c

AES加密:
密钥加
轮函数10轮:
字节代换s盒:
行移位:0 1 2 3
列混合:和c(x)做多项式乘法
密钥加
输出变换
密文

DSA
参数选取
选取大素数p 和 p 的一个素数因子 q
计算g = pow(h,(p-1) * q的逆)mod p【h∈(1,p-1)】
选取x 计算公钥 y = pow(g,x) mod p【x∈(0,q)】
公钥 y g p q私钥 x


签名过程
随机选取一个小于q的数字k
r = pow(g,k) mod p mod q
s = k的逆 * (H(m)+ x * r) mod q


验证过程
w = s的逆 mod q
u1 = H(m) * w mod q
u2 = r * w mod q
v = pow(g,u1) * pow(y,u2) mod p mod q
判断v 和 r
pow(y,u2) = pow(g,x * r * w)mod p mod q


ELGMAL算法
选取大素数p
选择一个本原元g
选择一个x 计算y = pow(g,x) mod p
y g p 作为公开密钥
x 作为私密密钥
加密过程:发送者选择一个ri
c1 = pow(g,ri) mod p c2 = M * pow(y,ri) mod p
解密过程:因为 y = pow(g,x) mod p

### ECC算法信息安全中的流程图详解 ECC(Elliptic Curve Cryptography,椭圆曲线加密)是一种基于椭圆曲线数学特性的非对称加密算法。其安全性依赖于椭圆曲线离散对数问题的难解性[^1]。以下是ECC算法信息安全领域中的一般实现流程及其对应的逻辑结构: #### 1. 参数初始化 在使用ECC之前,需要定义一组公共参数,这些参数通常由可信第三方提供或者标准化机构指定。具体包括: - **椭圆曲线方程**:选择一条适合安全计算的椭圆曲线 \( y^2 \equiv x^3 + ax + b \mod p \)[^3]。 - **基点 G**:选定一个位于该椭圆曲线上的固定点作为生成元。 - **大质数 p 和阶 n**:p 是模运算的基础域大小,n 表示子群的阶。 ```plaintext public parameters: {curve equation, point G(x,y), prime number p, order of subgroup n} ``` #### 2. 密钥生成阶段 此部分涉及私钥与公钥的创建过程: - 用户随机挑选一个小于 n 的正整数 d 作私人密钥; - 计算公开密钥 Q = d * G ,其中乘法表示重复加法操作。 \[ Q=d\cdot G=\underbrace{G+G+\cdots +G}_{d次} \] 最终得到一对密钥对 (private key d , public key Q )[ ^1 ]. #### 3. 加密数据传输 发送者利用接收者的已知公钥完成机密信息编码工作如下所示: - 随意选取临时秘密 r 并验证条件\(r<n\)成立; - 利用上述 r 值构建共享的秘密点 R=r*G ; - 同样通过相同的因子作用到目标地址即收件人的公钥上面得出另一坐标位置 T=r*Q=(rx,ry); - 将原始明文 m 转化成二进制串形式再映射至某特定区域内的新数值 M ; - 把结果分成两部分 C₁=Ciphertext component one=M+x-coordinate(T);C₂=Ciphertext component two=y-coordinate(T). 最后把组合后的双元素列表传递出去[C₁,C₂]. #### 4. 解码恢复原文 接受端凭借自身掌握的信息还原被保护的内容步骤描述如下 : - 使用自身的私钥 d 对收到的第一个分量执行反向变换 S=d*C₂ 获取对应关系下的另一个关联值 s ; - 接着依据先前约定好的规则重新整理出辅助变量 W=S-G ; - 提取 w 中所含有的横纵座标成分 wx wy 进一步处理原初附加项 c′=C₁-wx 得到最后答案 m'. 整个过程中涉及到的所有动作都严格遵循既定协议标准确保通信双方能够顺利完成交互而不会泄露任何敏感资料给第三者知晓 [^3]. ```python def ecc_encrypt(public_key_Q, message_m): import random from ecpy.curves import Point # Select a temporary secret 'r' r = random.randint(1, n - 1) # Compute shared points R = r * G # Temporary public value T = r * public_key_Q # Shared secret derived with recipient's pubKey # Convert plaintext to curve coordinates and encrypt it. M = map_to_curve(message_m) ciphertext_C1 = add_points(M, T.x) ciphertext_C2 = T.y return [ciphertext_C1, ciphertext_C2] def ecc_decrypt(private_key_d, cipher_pair): from ecpy.curves import Point # Recompute the shared secret using private key S = private_key_d * cipher_pair[1] # Derive helper variable & extract original msg W = subtract_points(S, G) decrypted_message = subtract_points(cipher_pair[0], W.x) return unmap_from_curve(decrypted_message) # Example usage would involve defining these functions properly within context... ```
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值