如何做出模糊承诺以np数组代替字节

2024-05-18 15:47:52 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图在https://github.com/cburkert/fuzzy-commitment中使用模糊承诺,我想在以下内容中使用见证作为np数组:

    c = cs.commit(witness,message)

其中: 消息:要提交的二进制消息。 见证人:承诺的见证人

我编写了一段代码,将np数组转换为位向量数组,稍后使用消息(相同类型)将其转换为xord

函数是(如第14https://github.com/cburkert/fuzzy-commitment/blob/master/fcs/fcs.py行中所示),但不是字节,而是列表或numpy数组:

    def list_extractor1(value: list) -> BitVector:
        b=np.array(np.zeros((len(value))))

        for i in range(len(value)):
            b[i]=bin(int(value[i]))[2:].zfill(8)

     return BitVector(bitlist=b)

但是,我可以有一个错误吗 我的阵列是:

    a=[1.0, 1.0, 0.0, 1.0, 1.0]

然后我创建了一个FCS对象,其中包含5位和1个错误

   cs = FCS(5, 1, extractor=list_extractor1) #5 as 'a' length
   c = cs.commit(a, b"\x01")  # uses a random message to commit to

然后我放置相同的特征向量,得到的是“false”而不是“true”

    cs.verify(c, b"\x03")  # Verification succeeds. One bit changed.
    >> False

你能帮我找到错误吗,输出应该是真的而不是假的! 或

你能帮我做一个列表提取器来代替“列表提取器1”吗

谢谢你


Tags: githubcom消息message列表value错误np

热门问题