You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

寻求满足迭代加密后返回初始输入的单向密码学循环函数

满足需求的单向迭代密码学方案

核心逻辑拆解

你需要的是单向不可逆的迭代密码学机制,同时支持两种可选逻辑:要么迭代指定次数后回到初始输入,要么通过迭代哈希关联初始输入。核心要求是:正向迭代可执行,但无法从任意中间/最终结果反向推导前序步骤或初始输入。

方案一:迭代哈希校验(实用首选)

这是最易落地且完全符合单向要求的方案,不需要让迭代结果回到初始输入,而是通过正向迭代哈希来绑定初始输入:

  • 选择安全的单向哈希函数,比如SHA-256或SHA-3——这类函数天生具备单向性,无法从哈希值反推原始输入。
  • 迭代规则:设初始输入为x,指定迭代次数N,迭代函数就是把x连续哈希N次:F_N(x) = H(H(...H(x)...))(共N次嵌套)。
  • 关联验证:将F_N(x)存储起来,后续验证输入时,对目标输入执行N次哈希,若结果与存储值一致,即可证明是初始输入(或其合法关联值)。
  • 密钥支持:要加入密钥的话,使用HMAC(基于密钥的哈希)即可,比如HMAC-SHA256(key, x)。可以每次迭代用相同密钥,也可以按顺序使用不同密钥列表key_1到key_N,第i次迭代对应使用key_i。

伪代码示例

import hashlib
import hmac

def iterative_hmac(input_str, keys, iterations):
    current = input_str.encode('utf-8')
    for i in range(iterations):
        # 循环复用密钥,或按索引取对应密钥
        key = keys[i % len(keys)].encode('utf-8')
        current = hmac.new(key, current, hashlib.sha256).digest()
    return current.hex()

# 使用示例
initial_data = "my_original_input"
secret_keys = ["secret_key_01", "secret_key_02", "secret_key_03"]
total_iterations = 1500

# 生成并存储迭代结果
stored_hash = iterative_hmac(initial_data, secret_keys, total_iterations)

# 验证函数
def verify(input_to_check, stored_hash, keys, iterations):
    computed_hash = iterative_hmac(input_to_check, keys, iterations)
    return computed_hash == stored_hash

# 验证初始输入
print(verify(initial_data, stored_hash, secret_keys, total_iterations))  # 输出True

方案二:单向置换迭代(满足“回到初始输入”要求)

如果必须让迭代N次后回到初始输入,同时保持单向不可逆,需要用单向置换函数来构造:

  • 单向置换是双射函数(每个输入对应唯一输出,迭代N次后能回到原输入),同时具备单向性(不知道密钥的情况下,无法从输出反推输入)。
  • 实现方式:用分组密码的加密方向作为置换,比如AES-256,密钥k严格保密——加密操作是双射(每个明文对应唯一密文,反之亦然),但不知道k的话,无法通过解密反向推导。
  • 迭代逻辑:找到一个N,使得对初始输入x,连续用k加密N次后回到x(即E_k^N(x) = x,这个N是该置换的阶数,可预先测试得到)。
  • 注意:这种方案的单向性完全依赖密钥的保密性——攻击者拿到密钥就能反向解密,所以密钥必须严格管控。

逻辑示例

用AES-256,密钥k仅由你掌握:

  1. 初始输入x是符合AES分组长度(128位)的数据。
  2. 每次迭代执行x = AES-Encrypt(k, x),重复N次后回到原始x。
  3. 攻击者不知道k,无法通过AES解密反向推导,因此整个迭代过程是单向不可逆的。

重要提醒

  • 绝对不要使用MD5、SHA-1这类弱哈希函数,这类函数已被破解,无法保证单向性。
  • 使用密钥的场景下,务必妥善保管密钥,尤其是方案二中,密钥是单向性的核心保障。
  • 迭代次数建议设置在1000次以上,提高暴力破解的难度。

内容的提问来源于stack exchange,提问作者Mohamed A. Taha

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 14:15:38