目前文件防篡改,可以通过GPG私钥签名,然后别人通过公钥来验证,电子文档水印不知道什么原理。
有没有这样一种自包含的文件校验机制:
假设一个文件A,用一种对计算时点敏感的指纹算法FT[假设每次计算必须通过公共网络校验真正时间点],生成该文件以时间戳S为基的内容特征指纹X=FT(A,S0),使得A+X这个新文件的指纹Y=FT(A+X,S1),可用于文件完整性校验Check(X,Y),还可反向求解出唯一正确的S0=GT(Y,S1) ,也就是说发布该文件和它的指纹X后,无论更改文件内容A,或更改指纹内容X,或更改A后用FT重新生成X达到同步更改A+X的目的,由于指纹算法FT和GT本身是计算时点敏感的,会使得校验无法通过,且能算出更改的时间戳S2。
对比:目前的Checksum机制,发布文件A,同时发布MD5值X供校验,如果随后更改A成为A2,会和X不匹配,但只要原作者再生成新的MD5值X2,清除原来X就行了,人们根本无从知晓A+X悄悄变成了A2+X2,因为生成MD5的算法对计算时点并不敏感。另有Bitstamp用Bitcoin的Blockchain记录曾经算过的文件指纹,但算法本身并不随时间演化。
请问这样的不依赖Blockchain的自包含指纹算法有吗?或者不可能有吗?
有没有这样一种自包含的文件校验机制:
假设一个文件A,用一种对计算时点敏感的指纹算法FT[假设每次计算必须通过公共网络校验真正时间点],生成该文件以时间戳S为基的内容特征指纹X=FT(A,S0),使得A+X这个新文件的指纹Y=FT(A+X,S1),可用于文件完整性校验Check(X,Y),还可反向求解出唯一正确的S0=GT(Y,S1) ,也就是说发布该文件和它的指纹X后,无论更改文件内容A,或更改指纹内容X,或更改A后用FT重新生成X达到同步更改A+X的目的,由于指纹算法FT和GT本身是计算时点敏感的,会使得校验无法通过,且能算出更改的时间戳S2。
对比:目前的Checksum机制,发布文件A,同时发布MD5值X供校验,如果随后更改A成为A2,会和X不匹配,但只要原作者再生成新的MD5值X2,清除原来X就行了,人们根本无从知晓A+X悄悄变成了A2+X2,因为生成MD5的算法对计算时点并不敏感。另有Bitstamp用Bitcoin的Blockchain记录曾经算过的文件指纹,但算法本身并不随时间演化。
请问这样的不依赖Blockchain的自包含指纹算法有吗?或者不可能有吗?