是否有任何算法模式可以保护网络上的任何内容,以确保我是第一个创建该内容的人?


29

几年前,有一位黑客(不记得他是谁)完全披露了给定系统中的漏洞,但为了确保没人对此表示赞赏,他创建了某种PGP密钥。

我当时的理解是,他创建了一个密钥以确保自己是发现它的那个人,但是没有透露自己的真实身份,只是创建了一种机制来证明他是那个创建披露的人。 。

好。我了解算法和密码学的工作原理。但是我仍然不明白如何创建一个密钥来保护网络上公开的给定内容,以证明您是最先创建它的人!这只是言语!

真的有可能吗?确保您可以凭经验证明的过程应该是什么?我是否理解正确,或者可能错过了一些与此案有关的东西?

我希望这个问题足够具体,基本上就是如何保护您在网络上创建的内容(一段,一段代码,一个单词等),并确保您是第一个创建该内容的人。给定上下文。

据我所知,我不知道这是怎么可能的,但是我对是否有可行的方法很感兴趣。在那儿?


9
也许在crypto.stackexchange.com问一个更好的主意?
欣快感2014年

5
@FagnerBrack-不要复制/粘贴。只需标记要迁移到加密货币SE的问题即可。
mouviciel 2014年

10
But I still don't understand how you can create a key to protect a given content disclosed in the web to prove you are the one who created it first! It is just words!证明您创建了东西与证明您是第一个创造东西之间是有区别的。PGP密钥可以证明黑客提交了漏洞报告。无法保证在他之前没有发现或报告该漏洞,但是他至少可以证明他已在某个日期报告了该漏洞。
Doval 2014年

2
有一个关于数学家的故事,它发现了一个证明并且不想发布它,但也不想让别人获得荣誉。因此,他改为按字母顺序发布证明的句子字母。我忘了他叫什么名字。
保罗

3
@Paul-那是罗伯特·胡克(Robert Hooke),胡克定律en.wikipedia.org/wiki/胡克定律
詹姆斯·麦克劳德

Answers:


1

我可能错过了一些与此案有关的东西?

我认为您缺少的是一个受信任的实体。

当使用要认证的内容对文件进行哈希处理时,您可以向世界展示您是此文档的所有者,而无需透露本文档。一切都很好,但是如何证明您在过去的某个特定时间拥有此文档?

这就是可信时间戳记。这是维基百科的摘录:

该技术基于数字签名和哈希函数。首先,根据数据计算出哈希值。哈希是原始数据的一种数字指纹:每个数据集都不同的一串比特。如果原始数据被更改,则将导致完全不同的哈希。此哈希将发送到TSA *。TSA将时间戳连接到哈希,并计算此串联的哈希。该哈希又使用TSA的私钥进行数字签名。该签名的哈希+时间戳将发送回时间戳的请求者,后者将这些原始数据与原始数据一起存储(请参见图)。

(*)时间戳管理局

我一直在使用Universign的时间戳记服务,该服务具有一组不错的工具,可以使整个操作易于执行。有很多公司提供类似的服务。

有趣的是,正如@JoelFan提到的那样,比特币提供了一种获取不是集中化的受信任实体的方法(为什么我应该信任任何人?)。比特币链提供了一个时间表(您可以证明在比特币链中包含一个文档,然后再创建另一个文档)。但是据我了解,您仍然会错过活动的生效日期和时间。

另外,“可信时间戳”是诉讼中的有效参考。


2
比特币的块头中嵌入了日期时间...尽管它们不是由协议强制执行的,但通常可以相信它们至少具有“精确”的精度(即,在1天以内的精度)...也有可能检查整个区块链直到今天,以确保日期时间单调增加
JoelFan 2014年

抱歉,花了太长时间才能接受答案。黑客可能使用了受信任的实体,没有受信任的实体,我找不到合理的方法来保护内容作者。
Fagner Brack

39

在过去的日子里,科学家会发表他们的工作的字谜,以便能够说“我想到了这个主意”。(请参阅“历史记录”和“优先级的确定”部分)。事实是,他们希望对此表示赞赏,但如果他们有其他想法,而又不以原始想法为基础,那么他们还可以让其他科学家发表他们的研究结果。

例如,伽利略(Gallileo)出版了SMAISMRMILMEPOETALEVMIBVNENVGTTAVIRAS,这是altissimvm planetam tergeminvm obseravi的字谜,从拉丁语翻译成“我观察到三倍形状的最高行星”。他弄错了-土星(当时已知的“最高”行星)没有三部分组成。五十年后,克里斯蒂安·惠更斯(Christiaan Huygens)出版了AAAAAAA CCCCC D EEEEE H IIIIIII LLLL MM NNNNNNNNN OOOO PP Q RR S TTTTT UUUUU,在拉丁文中是Annulo cingitur,tenui,plano,nusquam cohaerente,ad eclipticam inclinato,翻译成“ It is不会碰到黄道的扁平环。”

尽管这些是现在感兴趣的历史位,但是它们在当时显示了一个重要的概念-提供一个易于理解的“哈希”,“此哈希对文本进行编码”。从已知文本到字谜或哈希表很容易,但是如果您首先不知道它是什么,则很难弄清楚它是什么。

使用现代机械,我们还有其他方式可以进行哈希处理。它们中的许多与密码学密切相关。有加密哈希函数。想法仍然是,从您知道的文本到散列很容易,但是很难从散列到您不知道的文本。

所以,如果你有一个程序,你可以发布,做节目的散列东西,然后当你准备披露(可能是该公司修正后,或一段时间后),您可以发布真实的代码,每个人都可以看到,是的,此代码与该哈希匹配。


1
关于在数字时代之前使用哈希的历史非常不错:)
mika 2014年

30

您可以轻松完成。如果您具有明文text,秘密密钥S和公共密钥,则P可以这样做S(text)并获得密钥cipher

现在您可以发布cipherP但不能发布S。因此,每个人都可以解密cipherPP(cipher)。如果现在想证明自己是创建的人cipher(因此是原始人text),则可以发布S,或者-如果您不希望任何人知道S,则可以创建另一个S("I was really the one who found the text first")并发布它。因为无法创建使用该密码解密的密码,所以P(cipher)会产生一些有意义的文本。

这样便可以证明这一点。


13
这有什么帮助?任何可以解密密码的人都可以使用自己的秘密密钥以相同的方式重新发布,并且如果不信任某些第三方的发布时间记录,您将无法证明哪一方先发布并从另一方复制。
R.,

2
@R ..互联网上的内容通常具有与之关联的日期(例如,论坛帖子)。如果有多个人声称是原始的发明者/发现者,那么您只需要检查日期即可。
保罗

2
您还可以在通过P(content)加密的纯文本中包含一些内容。S的真正拥有者将能够解密该附加信息,而拒绝输入者将无法做到这一点。
Dancrumb

10
@Paul:但是加密是无关紧要的。这等效于仅发布纯文本内容并依赖日期。
R..

2
@R ..的想法是,不知道S,这是很难拿出一段文字cipher2这样P(cipher2)是不是胡言乱语。随着S它是微不足道的,如S("the text you want")= cipher2。进行相反的操作等同于破坏加密方法。
congusbongus 2014年

21

可以对您希望时间戳记的数据进行哈希处理并将其转换为比特币地址。这就是所谓的可信时间戳。通过向其支付一小笔付款(satoshi或0.00000001 BTC),付款将与您付款的地址一起存储在区块链上。

由于只有散列存储在比特币区块链上,因此没人能告诉您存储了什么数据,但是鉴于已预先加密的数据,您可以证明数据是在包含对该地址付款的区块之前创建的。


1

一种非常简单的方法来确定您是第一个发布内容的人,而不会立即透露您的身份,但可以选择稍后再发布:

  1. 将其发布在知名的公共资源上(每个人都可以看到您发布了它)
  2. 在此出版物中,添加一行:最初由xxx@gmail.com的所有者在dd / mm / yyyy发布

无需加密任何东西。

当然,您可能还不想发布结果。在这种情况下,您需要加密除带有电子邮件地址的行以外的所有内容。但是,现在可能很难在知名网站上发布此内容。


4
如果“受邀站点”更改了日期或发布电子邮件该怎么办?即使网站遭到黑客入侵,也可能出于恶意目的。(好吧,我在这里很偏执,但这就是重点。如果除了原作者之外还有其他人可以改变证明,那么您的解决方案就不是确定性的)。这里的重点不是仅依靠人类的见证人,而是任何人都可以以某种方式确认作者身份,而不必由受信任的实体“发布”或“授予专利”您的内容。
Fagner Brack 2014年

@ FagnerBrack,arxiv.org已被证明足以用于近100万篇研究论文。
Brian S

1
我可以在这里放什么东西,还是应该经过同行评审,并且只能在特定的限制下进行授权?这个问题并非直接针对研究论文,而是关于以编程方式获得相同结果(或等效结果)的可能性。
Fagner Brack 2014年

2
使用archive.org进行发布-就像arXiv一样,它是一个持久且受信任的存储库,但与arXiv不同,它可以免费在此上载内容。您在此处发布的任何内容的时间戳都将被认为是非常可靠的。
史蒂夫·米德利

1
我同意,成名是快速而可靠地传播知识的唯一方法。
bigstones 2014年

0

这是对valenterry答案的不同看法。

使用PGP的方法如下:

生成公钥/私钥对。

  1. 您保留私钥,并确保将其保密。
  2. 您用您的公共密钥加密您的想法:P(idea)
  3. 您将P(idea)放置在不受您信任的位置(不是您而是一般),它将记录时间。
  4. 当您需要证明自己是第一个提出想法时,可以从存储数据时获得时间戳记,然后使用私钥解密数据。S(P(idea))=>想法

此方法不需要释放您的密钥,通常这是一个坏主意。当然,您可以随时制作一个新的PGP密钥对-它不花任何钱,但是如果您希望获得可信的密钥,则不应该鲁ck地分发秘密密钥。

最困难的部分是证明时间,但是就记录漏洞而言,我们不需要100%的防弹和可验证的法庭解决方案,我们只需要“足够好”的东西。假设云存储提供者实现了安全服务,则其日志可能足够好(投递箱,机架空间,Google等)。

还值得注意的是,成为第一个提出想法并加盖时间戳记的人从来不会意味着您是第一个想到这个想法的人。如果有人在您之前想到了它,但从未在时间戳记机制中注册过该想法,那么他们就无法证明他们在您之前做到了。因此,如果我们要弄清楚谁是第一人创造的,而我们所知道的只是您提出它的时间,那么我们就必须假设您首先提出它(其他人可能会撒谎)。


-1

哎呀,这么多答案都没有抓住重点。

1)黑客所做的与加密无关。

2)黑客的所作所为与时间无关(时间戳等)。

黑客所做的就是公开签署发布文档。当您对PGP进行签名(电子邮件,Word文档等)时,您将创建一个哈希,该哈希是要签名的文档的哈希与您自己的私钥的总和。现在,要证明您是文档的创建者,您只需要“显示”私钥,因为大概只有作者才知道。从密码学角度来讲,您可以“显示”您拥有私钥,而无需实际显示密钥本身。

因此,实际上,他对文档进行了数字签名。唯一可以复制该签名的人是拥有私钥的人。没什么可说的是该文件是今天或昨天制作的,或者是有史以来第一个实例。没有任何哈希时间戳或任何会改变它的时间戳。

及时对某事进行数字签名的唯一方法是使用区块链la bitcoin。没有时间验证就不可能有数字货币-除非我们知道何时,否则人A向人B汇款是无关紧要的。您不能带着纸去商店里说“我妈妈给我寄了100美元。我想买些面包”,因为收到交易记录并不意味着钱仍然属于您。在过渡期间,您可能已将其交给了其他人。区块链通过让大量人(比特币矿工)都同意交易发生在某个特定时间这一事实(然后通过将该时间永久记录在区块链中)来解决这个问题。


2
在先前的6个答案中,这似乎并没有提供任何实质性的解释(特别是很多关于可信时间戳的文章,并且已经介绍了比特币方法)
gnat 2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.