Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 无顺序依赖的CRC函数_Algorithm - Fatal编程技术网

Algorithm 无顺序依赖的CRC函数

Algorithm 无顺序依赖的CRC函数,algorithm,Algorithm,我需要一个CRC机制来计算多个字符串的CRC,这样,给定两个字符串a和B,和CRC(a)+CRC(B)=CRC(a+B) p.S.XOR太弱了——对于逆向工程来说,该算法应该不是微不足道的。我认为任何校验和都不能满足这个条件 通常大小(CRC(A))==const(CRC编码域是一个有限集,const==size(max_校验和)) 因此,如果消息B的CRC(B)==max_校验和,那么对于任何其他消息大小(CRC(B))+size(CRC(C))>const,(从CRC(B)+CRC(C)>m

我需要一个CRC机制来计算多个字符串的CRC,这样,给定两个字符串a和B,和CRC(a)+CRC(B)=CRC(a+B)


p.S.XOR太弱了——对于逆向工程来说,该算法应该不是微不足道的。

我认为任何校验和都不能满足这个条件

通常大小(CRC(A))==const(CRC编码域是一个有限集,const==size(max_校验和))

因此,如果消息B的CRC(B)==max_校验和,那么对于任何其他消息大小(CRC(B))+size(CRC(C))>const,(从CRC(B)+CRC(C)>max_校验和)

或者换句话说,没有满足要求的CRC函数

编辑:


但是,如果您的意思是希望能够同时确定两条消息的CRC,同时知道两条消息的CRC,那么这是可能的,例如,它被使用并被调用。

我认为任何校验和都不能满足此条件

通常大小(CRC(A))==const(CRC编码域是一个有限集,const==size(max_校验和))

因此,如果消息B的CRC(B)==max_校验和,那么对于任何其他消息大小(CRC(B))+size(CRC(C))>const,(从CRC(B)+CRC(C)>max_校验和)

或者换句话说,没有满足要求的CRC函数

编辑:


但是,如果您的意思是希望能够同时确定两条消息的CRC,同时知道两条消息的CRC,那么这是可能的,例如,它被使用,并被调用。

采用您所需的条件,RHS上的+表示字符串串联,LHS上的整数相加,任何字符串的校验和都是其各个字符校验和的总和。所有这些校验和都是同构的[*],唯一可调的参数是分配给每个字符的值

如果XOR太弱,那么我怀疑任何这样的线性校验和是否足够强

如果+在您所需的条件下表示任何其他内容,也许您可以指定


[*]好的,是变形的。

根据您所需的条件,在RHS上使用+表示字符串串联,在LHS上使用整数加法,任何字符串的校验和都将是其单个字符校验和的总和。所有这些校验和都是同构的[*],唯一可调的参数是分配给每个字符的值

如果XOR太弱,那么我怀疑任何这样的线性校验和是否足够强

如果+在您所需的条件下表示任何其他内容,也许您可以指定

[*]是这样的,有些东西是变形的。

接近你所要求的,但我不知道有哪一种适合字符串接触,而不是数学运算。所有已知的同态散列函数也都非常慢

我推测,可能甚至不可能创建一个具有此属性的安全哈希函数。

接近您的要求,但我不知道有哪个函数适用于字符串接触,而不是数学运算。所有已知的同态散列函数也都非常慢


我推测,可能甚至不可能创建具有此属性的安全哈希函数。

是什么让“XOR”对您来说太弱了?如果你提供更多的细节,有人可以提供一个很好的答案。我认为只有弱校验和才能满足这个条件。你这里的“+”是什么意思?你的意思是,作为一个例子,
CHECKSUM(“texthere”)+CHECKSUM(“othertexthere”)
应该产生与
CHECKSUM(“texthereothertexthere”)
相同的结果吗?请澄清您的问题。是的,校验和(“texthere”)+校验和(“othertexthere”)应产生相同的结果。到底是什么让你觉得“XOR太弱”?如果你提供更多的细节,有人可以提供一个很好的答案。我认为只有弱校验和才能满足这个条件。你这里的“+”是什么意思?你的意思是,作为一个例子,
CHECKSUM(“texthere”)+CHECKSUM(“othertexthere”)
应该产生与
CHECKSUM(“texthereothertexthere”)
相同的结果吗?请澄清您的问题。是的,校验和(“texthere”)+校验和(“othertexthere”)应产生相同的结果。Exactly@Henk,是的,但那不是+,那是XOR:)-要求指定它应该是+,我认为“+”在这里表示“合并”。@Henk,是的,我同意;它可能意味着任何函数/运算符(或非正式组合)。但我试图提出一个观点,即问题需要通过正式证明更加明确,即在当前的要求下,不存在这样的功能(试图激励OP重新思考这个问题);然而,我摸索着,因为我允许自己坚持,在某一点上,它是严格的数字加法,而在另一方面,我允许它的意思是CONCAT。所以为了弥补我自己的不足,我把编辑贴在了滚动哈希上,我相信这对OP应该是有用的。是的,第一个版本的讽刺意味对我来说已经消失了:-}@Henk,是的,但那不是+,那是XOR:)-要求指定它应该是+我认为“+”在这里意味着“合并”。@Henk,是的,我同意;它可能意味着任何函数/运算符(或非正式组合)。但我试图提出一个观点,即问题需要通过正式证明更加明确,即在当前的要求下,不存在这样的功能(试图激励OP重新思考这个问题);然而,我摸索着,因为我允许自己坚持,在某一点上,它是严格的数字加法,而在另一方面,我允许它的意思是CONCAT。因此,为了弥补我自己的不足,我把编辑贴在了滚动哈希上,我认为这对OP应该是有用的。是的,第一个版本的讽刺意味在我身上消失了:-}