Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
RRC_steganography — 通过旋转范围编码将秘密信息嵌入到LLM生成的文本中,实现可证明安全的语言学隐写。包含嵌入、提取和往返验证脚本。 | Kitploit
工具/GitHubGitHub/ryehr/rrc_steganography
隐写术密码学机器学习论文与研究学习与教育AI 安全
GitHubryehr/rrc_steganography

RRC_steganography

通过旋转范围编码将秘密信息嵌入到LLM生成的文本中,实现可证明安全的语言学隐写。包含嵌入、提取和往返验证脚本。

查看仓库
61464天前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

RRC 隐写术

旋转范围编码 (RRC) 隐写术 — 一种高效且可证明安全的语言隐写方法,通过大型语言模型生成的文本嵌入秘密消息。

论文: 通过范围编码实现高效可证明安全的语言隐写

工作原理

步骤描述
嵌入 (算法 3)将秘密消息转换为十进制值,并在语言模型概率分布和 PRNG 生成偏移量引导的收缩区间内迭代旋转该值。每次旋转产生一个 token。
提取 (算法 4)在隐写文本上重新运行语言模型以恢复区间边界,然后逆向旋转回原始十进制值并二值化。

旋转机制解决了标准范围编码隐写术的两个问题:

  1. 概率分布保持 — 旋转后的秘密值在每个区间内均匀分布,因此 token 选择遵循原始语言模型分布。
  2. 新鲜随机性 — 每一步使用新的 PRNG 偏移量,防止随机性重复使用。

仓库结构

root@kitploit:~
.
├── RRC_embed.py   # 嵌入 (算法 3) 
├── RRC_extract.py   # 提取 (算法 4) 
├── test_roundtrip.py         # 自包含端到端验证脚本
├── requirements.txt          # Python 依赖
└── README.md

依赖要求

  • Python ≥ 3.10
  • PyTorch ≥ 2.0
  • Transformers ≥ 4.35

安装依赖:

root@kitploit:~
pip install -r requirements.txt

快速开始

1. 验证正确性

往返测试使用 meta-llama/Llama-2-7b-hf 并在 CPU/CUDA 上运行:

root@kitploit:~
python test_roundtrip.py

预期输出:

root@kitploit:~
>>> Step 3: Verification
    Original: 10110011001010111010011100101011...
    Extracted: 10110011001010111010011100101011...

    ✅ SUCCESS — extracted message matches perfectly!

2. 嵌入秘密消息

准备一个提示文件 0.Prompts.tsv,包含列 idx 和 text,然后运行:

root@kitploit:~
python RRC_embed.py \
    --language_model meta-llama/Llama-3.1-8B \
    --bit_length 128 \
    --key 42 \
    --top_k -1

3. 提取秘密消息

root@kitploit:~
python RRC_extract.py \
    --language_model meta-llama/Llama-3.1-8B \
    --bit_length 128 \
    --key 42 \
    --input_file 1.RC_decimal_Llama-3.1-8B_bit128.tsv

⚠️ 重要: 发送方和接收方必须使用相同的语言模型、密钥、比特长度和 top-k 设置才能正确提取。

CLI 参数

RRC_embed.py

RRC_extract.py

技术说明:Decimal 取模

Python 的 Decimal 类型使用截断除法进行 % 运算,可能返回负数余数(例如 Decimal('-19672') % Decimal('65536') → -19672 而不是 45864)。本实现使用一个 decimal_mod 辅助函数,保证结果始终在 [0, m) 范围内:

root@kitploit:~
def decimal_mod(a, m):
    return a - m * (a / m).to_integral_value(rounding=ROUND_FLOOR)

⚠️ 为了确保可靠提取秘密消息,某些操作(排序、累加和)会卸载到 CPU 并以 float64 精度执行,以避免 CUDA 的非确定性。这在一定程度上牺牲了速度,但保证了编码-解码的一致性。

下载工具
参数默认值描述
--language_modelmeta-llama/Llama-3.1-8BHuggingFace 模型标识符
--bit_length128秘密消息的比特长度
--top_k-1Top-k 截断;-1 表示完整词表
--key42对称密钥 K(PRNG 种子)
--part / --part_max0 / 2用于大型提示集的并行执行
参数默认值描述
--language_modelmeta-llama/Llama-3.1-8B必须与嵌入模型一致
--bit_length128必须与嵌入设置一致
--top_k-1必须与嵌入设置一致
--key42必须与嵌入密钥一致
--input_file(必填)编码器输出的 TSV 文件路径