我的想法来自Eve Online的BPC(蓝图副本)。游戏中的解释是,制造星际飞船副本的许可被限制为X倍,之后BPC会自动损坏。

我知道解密后的任何内容都可以复制得到的纯文本次数,提出了极限模拟,我只是想知道它是否可能。

评论

我投票结束这个问题为离题,因为我发现它与密码学无关。这里的普遍问题是限制某些程序(在此为解密程序)的执行次数。密码术(至少是非量子的)对此没有帮助。

但是您可以拥有一定数量的不同密钥,这些密钥都可以对密文进行解密。不确定是否有帮助。而且不确定是否可以做得更好。

@fgrieu我发现以下事实是事实,那就是密码学无济于事,因此在此站点上可广泛应用。任何对密码学的合理研究都将包括密码学的局限性,而这是一个相当有趣的局限性,对设计系统的实现具有实质性的意义。

您不能使用类似区块链的解决方案吗?

只是要清楚一点,您是否在询问是否给定n台计算机,每台计算机都运行相同的算法,那么那些运行该算法的计算机是否有可能导致所有其他计算机都无法运行该算法?

#1 楼

密码术本身不能解决这个问题。为了防止盗版,在版权管理领域对此问题进行了长期研究。

主要问题是,很难在密文中保持记录密文已被解密多少次的状态。即使可以,实际上也没有办法阻止某人恢复状态。即您可以解密,然后丢弃新的密文,然后再次使用旧的密文进行解密。

过去设计了一些交互协议,这些协议使用外部可信服务器来跟踪解密次数。这可能可行,但会增加其他一些问题,例如隐私(实际上是在跟踪用户)。

评论


$ \ begingroup $
在这些“其他问题”中,其中包括缺乏鲁棒性-如果您看不到受信任的服务器(无论出于何种原因),则您将无法使用数据。
$ \ endgroup $
– Toby Speight
18年6月20日在13:57

$ \ begingroup $
好答案。我不知道区块链方法是否可以在没有受信任的第三方的情况下工作,就像比特币的区块链防止双重支出一样。
$ \ endgroup $
– John Coleman
18年6月20日在14:26

$ \ begingroup $
@JohnColeman我怀疑区块链能提供多少帮助。本质上,交互式解决方案通过让服务器保留解密密钥并计算解密请求的数量来工作。当前,区块链无法保存秘密,因为不知道该秘密的矿工很难(如果不是不可能)验证涉及该秘密的过程。
$ \ endgroup $
–董长玉
18年6月20日在15:05

$ \ begingroup $
“很难将状态保持在密文中” –我宁愿说这根本上是不可能的。密文是抽象的数学实体。数学对象不在乎时间或我们宇宙中的其他实现细节。如果您在密文的具体物理存储中进行了一些修改,那么您实际上所做的就是创建一个新的不同密文(如果它是唯一的现有副本,则可能会失去对旧密文的访问权限)。如果您进行量子分析,那么讨论会变得很有趣,因为那样的话,从根本上讲不可能复制...
$ \ endgroup $
–leftaround关于
18年6月20日在15:14



$ \ begingroup $
@JohnColeman那么是什么阻止他们丢弃新的区块链并使用旧的区块链解密?
$ \ endgroup $
–user253751
18年6月21日,0:43

#2 楼

起初,我倾向于同意@fgrieu,这并不是一个真正的“密码学”问题。

如果可以的话,它将更多地属于一般信息安全领域,因为–通常–该问题可以在软件以及物理硬件中得到一定程度的解决。然而,使用反向工程技术的软件解决方案以及专用硬件解决方案仍将受到攻击者的攻击,这些技术旨在获得发出强制计数器重置的能力。这样的攻击永远是可行的。尤其是当目标从攻击者的角度来看很有价值时。



没有密码(或非密码)算法本身无法做到这一点。

但是...

让我们看一下事实:


除非有一个受信任的方来控制解密计数器,否则它是无法限制解密内容的次数。 (以为是逆向工程攻击。)
除非有一个受信任方来控制数据和数据处理过程,否则在经过多次解密计数后就不可能限制数据的使用甚至破坏。 (请考虑:通过使用数据副本重复相同的解密过程来进行攻击。)

因此,是的,只有在我们假设存在受信任方的情况下,才有可能。我们需要做的就是向混合中添加一个受信任的方(例如:您或受信任的第三方),以控制数据–包括。解密过程,解密计数器,数据存储,数据处理以及数据销毁。该解决方案的安全性取决于(a)您用于加密/解密的加密算法的安全性,以及(b)控制数据及其处理的受信方的安全性,最终取决于具体现实情况(您未指定)如何最安全,最可行地实施。

评论


$ \ begingroup $
如果一个受信任的一方可以控制数据及其处理,则通常不需要加密。实际上,传统的访问控制就足够了,并且也许更有效率(假设受信方)。
$ \ endgroup $
–董长玉
18年6月21日在6:19

$ \ begingroup $
@ changyu-dong确实……这就是为什么我本人(从非主持人的角度来看)会将这个问题(如我所写的)更多地放在一般信息安全的角落。
$ \ endgroup $
– e-sushi
18年6月21日在18:41



#3 楼

在构建商业软件时,您必须尽力创建这样的方案。

的确,仅密码术无法提供缺乏某些缺点的解决方案;这是事实。绝对可以使用一些基本的加密技术和协议来建立足够的威慑力,以使足够多的人发现更容易遵守规则(这是您真正想要的)。如果您可以可靠地识别违规者,则尤其如此。如果协议中包含您控制的在线服务器,则可以执行一些合理有效的实施。例如,很多方案涉及哈希和秘密。如果您在$ H_k $下加密密文,则可以提供导致它的密钥序列$ H_ {0 \ cdots k} $。每个$ H_n $是唯一的,知道任何$ H_n $意味着您可以找到$ H_k $,知道$ H_n $并不意味着您知道$ H_ {n-1} $,依此类推....

$$
\开始{align}
H_0&= H(k_ {random})\\
H_1&= H(H_0)\\
H_2& = H(H_1)\\
\ cdots&= \ cdots \\
H_k&= H(H_ {k-1})
\ end {align}
$$

您可以使用更多的游戏理论方法;我们认为是一种可以阻止现实世界中违反许可证的行为。假定您的许可证已编码为X509客户端证书。用户不想将他们的秘密密钥发布到世界上。因为这样既会给供应商识别它们,又会带来严重的安全后果。因此,用户需要在遵从和不安全之间进行选择。

评论


$ \ begingroup $
我不清楚您的示例哈希方案如何提供所需的保护:一旦生成了此序列,您将如何处理该序列以限制收件人的使用方式? X509示例似乎可以解决使用同一密钥的多个人的问题,但这与同一人连续多次使用该密钥的问题完全不同,这正是问题的所在。
$ \ endgroup $
–IMSoP
18年6月20日在15:48

$ \ begingroup $
如果没有硬件支持,OP所要求的简单的仅加密方法是不可能的。但这是一个无用的答案。公司必须建立足够的威慑力,以便人们购买许可证,并且以不打扰合法用户的方式轻松实现这一点,通常涉及加密。 x509问题解决了客户获得一个许可证并在其组织中多次安装该许可证的问题。担心安全性的系统管理员会告诉安装者停止在计算机之间共享证书,因为这样做有安全隐患。
$ \ endgroup $
–Rob
18年6月20日在16:00

$ \ begingroup $
廉价微控制器的成本已经下降到可以以不到1美元的价格生产加密狗的地步。更大的困难在于,大多数计算机没有与不会暴露安全风险的软件狗接口的任何好方法(例如,USB端口,要求软件必须能够访问可以看到加密狗的摄像头或可以听到声音的麦克风)等等)
$ \ endgroup $
–超级猫
18年6月20日在16:27