Esempio n. 1
0
async def test_equality(test_runner):
    equality = Equality()

    async def _prog(context):
        share0 = context.preproc.get_zero(context)
        share1 = context.preproc.get_rand(context)
        share1_ = share0 + share1
        share2 = context.preproc.get_rand(context)

        assert await (await equality(context, share1, share1_)).open()
        assert await (share1 == share1_).open()
        assert not await (share1 == share2).open()

    await test_runner(_prog, n, t, PREPROCESSING, 1000,
                      STANDARD_ARITHMETIC_MIXINS)
    DivideShares,
    DoubleSharingMultiply,
    DoubleSharingMultiplyArrays,
    InvertShare,
    InvertShareArray,
)
from honeybadgermpc.progs.mixins.share_comparison import Equality

STANDARD_ARITHMETIC_MIXINS = [
    BeaverMultiply(),
    BeaverMultiplyArrays(),
    InvertShare(),
    InvertShareArray(),
    DivideShares(),
    DivideShareArrays(),
    Equality(),
]

STANDARD_PREPROCESSING = ["double_shares", "rands", "zeros", "triples", "bits"]

n, t = 3, 1


async def run_test_program(prog,
                           test_runner,
                           n=n,
                           t=t,
                           k=1000,
                           mixins=STANDARD_ARITHMETIC_MIXINS):

    return await test_runner(prog, n, t, STANDARD_PREPROCESSING, k, mixins)
Esempio n. 3
0
    PreProcessedElements as FakePreProcessedElements,
)
from honeybadgermpc.utils.typecheck import TypeCheck

from honeybadgermpc.progs.mixins.dataflow import Share
from honeybadgermpc.progs.mixins.share_arithmetic import (
    BeaverMultiply,
    BeaverMultiplyArrays,
    MixinConstants,
)
from honeybadgermpc.progs.mixins.share_comparison import Equality, LessThan

config = {
    MixinConstants.MultiplyShareArray: BeaverMultiplyArrays(),
    MixinConstants.MultiplyShare: BeaverMultiply(),
    MixinConstants.ShareEquality: Equality(),
    MixinConstants.ShareLessThan: LessThan(),
}


def levensteinDistance_normal(x, y):
    m = len(x)
    n = len(y)
    dynamicProgMatrix = [[0 for i in range(n + 1)] for i in range(m + 1)]
    for i in range(1, m + 1):
        dynamicProgMatrix[i][0] = dynamicProgMatrix[i][0] + m
    for j in range(1, n + 1):
        dynamicProgMatrix[0][j] = dynamicProgMatrix[0][j] + n
    for j in range(1, n + 1):
        for i in range(1, m + 1):
            cmp = 1 if (x[i - 1] == y[j - 1]) else 0