Cryptography

# Cryptography / 密码学

Safety Notice

This listing is from the official public ClawHub registry. Review SKILL.md and referenced scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "Cryptography" with this command: npx skills add cryptography

Cryptography / 密码学

概念→原理→公式→代码→应用 结构化参考


1. 对称加密

概念

加密和解密使用同一密钥。速度快,适合大量数据。

AES(Advanced Encryption Standard)

原理:SPN 结构,分组大小 128 bit,密钥 128/192/256 bit。轮数:10/12/14。 操作:SubBytes → ShiftRows → MixColumns → AddRoundKey

密文 = E_K(明文)    明文 = D_K(密文)

工作模式

模式特点需要填充并行
ECB相同明文块→相同密文块(不安全)加密可
CBC每块 XOR 前一密文块解密可
CTR计数器模式,流式加密
GCMCTR + 认证标签 (AEAD)
from cryptography.hazmat.primitives.ciphers.aead import AESGCM
import os

key = AESGCM.generate_key(bit_length=256)
aesgcm = AESGCM(key)
nonce = os.urandom(12)
ct = aesgcm.encrypt(nonce, plaintext, associated_data)
pt = aesgcm.decrypt(nonce, ct, associated_data)

ChaCha20-Poly1305

Google 推荐替代 AES-GCM(无硬件加速时更快)。流密码 + MAC。

SM4(国密)

中国国家标准,128 bit 密钥,32 轮。用于金融/政务。


2. 非对称加密

RSA

原理:基于大整数分解困难性。

n = p × q,  φ(n) = (p-1)(q-1)
e(通常 65537),  d = e^(-1) mod φ(n)
加密:c = m^e mod n    解密:m = c^d mod n
签名:s = m^d mod n    验证:m = s^e mod n

密钥 ≥2048 bit。使用 OAEP(加密)/ PSS(签名)填充。

from cryptography.hazmat.primitives.asymmetric import rsa, padding
from cryptography.hazmat.primitives import hashes

private_key = rsa.generate_private_key(65537, 4096)
ct = private_key.public_key().encrypt(
    msg, padding.OAEP(
        mgf=padding.MGF1(hashes.SHA256()),
        algorithm=hashes.SHA256(), label=None))

ECC(椭圆曲线密码学)

基于 ECDLP。同等安全密钥更短。

y² = x³ + ax + b (mod p)
私钥 d ∈ [1, n-1],  公钥 Q = d × G
ECDH 共享密钥: d_A × Q_B = d_B × Q_A
曲线应用
P-256TLS 通用
secp256k1比特币/以太坊
Curve25519ECDH(推荐)
Ed25519签名(推荐)

SM2(国密)

中国国家标准 ECC,配套 SM3 哈希。


3. 哈希函数

单向性、抗碰撞性、雪崩效应。

算法输出状态
SHA-256256 bit✅ 安全
SHA-3可变✅ 安全
SM3256 bit✅ 安全(国密)
MD5/SHA-1128/160 bit❌ 已破解

HMAC

HMAC(K, m) = H((K' ⊕ opad) || H((K' ⊕ ipad) || m))

密码哈希

慢哈希 + 盐,抗暴力/彩虹表。Argon2(推荐)> scrypt > bcrypt。

生日攻击

SHA-256 碰撞需要 ≈2¹²⁸ 次尝试。


4. 数字签名与 PKI

算法特点
RSA-PSSRSA + 概率签名
ECDSA椭圆曲线签名
EdDSA (Ed25519)确定性,推荐

PKI

根 CA → 中间 CA → 终端证书。CRL/OCSP 吊销检查。

Let's Encrypt / ACME

自动签发免费 TLS 证书。HTTP-01 / DNS-01 域名验证。


5. 密钥管理

  • 密钥派生:HKDF / PBKDF2
  • 密钥封装:HPKE(RFC 9180,推荐)
  • 前向保密:临时 ECDH 密钥对

6. 协议安全

TLS 1.3(1-RTT)

ClientHello + KeyShare → ServerHello + KeyShare + Cert + Finished → Finished ECDHE 协商共享密钥,前向保密。

JWT

Header.Payload.Signature
alg: none 攻击需防范;不加密敏感数据

双因素认证

  • TOTPTruncate(HMAC-SHA1(K, ⌊time/30⌋)) → 6 位数字
  • WebAuthn/FIDO2:公钥密码学 + 硬件安全密钥

7. 侧信道攻击

  • 时序攻击:通过操作耗时推断密钥。防护:恒定时间比较。
  • 功耗分析:DPA/SPA 分析设备功耗。防护:掩码、盲化。
  • 缓存攻击:Spectre/Meltdown 类。防护:恒定时间实现、缓存刷新。

8. 密码学应用

区块链

  • Merkle 树H(H(a)||H(b)) 二叉哈希树,高效验证数据完整性
  • PoW:找到 nonce 使得 H(block_header) < target
  • PoS:权益证明,按持币量选验证者

零知识证明(ZKP)

证明者不泄露信息的情况下证明某个陈述为真。

zk-SNARK:简洁非交互知识论证
  特点:证明小(~200B)、验证快、需可信设置
zk-STARK:透明、无需可信设置、证明较大

应用:Zcash 隐私交易、以太坊 zkRollup 扩容。

同态加密

对密文直接计算,解密结果等于对明文计算的结果。

E(a) ⊕ E(b) = E(a + b)    (加法同态:Paillier)
E(a) ⊗ E(b) = E(a × b)    (全同态:Gentry 方案,CKKS/BFV)

安全多方计算(MPC)

多方各自持有私密输入,联合计算函数结果,不泄露各自输入。

应用:隐私集合求交(PSI)、联合建模、密钥分片托管。

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Coding

run.dev — Local Dev Environment Manager

Local dev environment manager. Process management, automatic HTTPS domains, SSL certificates, reverse proxy, and AI crash diagnosis — single binary, zero con...

Registry SourceRecently Updated
Coding

ifly-image-understanding

iFlytek Image Understanding (图片理解) — analyze and answer questions about images using Spark Vision model. WebSocket API, pure Python stdlib, no pip dependencies.

Registry SourceRecently Updated
Coding

Civic Google

Use gog (Google CLI) without manual OAuth setup — Civic handles token management automatically

Registry SourceRecently Updated
2000Profile unavailable
Coding

Agent Browser.Skip

A fast Rust-based headless browser automation CLI with Node.js fallback that enables AI agents to navigate, click, type, and snapshot pages via structured co...

Registry SourceRecently Updated
2000Profile unavailable