Beispiel #1
0
def imageTest():
   filename = "images/tiny-mars.jpg"
   image = ndimage.imread(filename)
   print("Loaded image")
   shape = (50, 50, 3)
   k = shape[0] * shape[1] * shape[2]
   n = 2 * k
   p = 16231
   e = 1000
   #p = 7387643

   print("Making encoder/decoder")
   enc, dec, solveSystem = makeEncoderDecoder(n, k, p)
   message = imageToVector(image)
   print("encoding the message")
   encoded = enc(message)

   print("corrupting the message")
   corrupted = corrupt(encoded[:], e)

   print("decoding the code")
   Q,E = solveSystem(corrupted)

   P, remainder = (Q.__divmod__(E))
   recoveredImage = vectorToImage([c.n for c in P.coefficients])
   misc.imsave("images/recovered-mars.jpg", recoveredImage)
def imageTest():
    filename = "images/tiny-mars.jpg"
    image = ndimage.imread(filename)
    print("Loaded image")
    shape = (50, 50, 3)
    k = shape[0] * shape[1] * shape[2]
    n = 2 * k
    p = 16231
    e = 1000
    #p = 7387643

    print("Making encoder/decoder")
    enc, dec, solveSystem = makeEncoderDecoder(n, k, p)
    message = imageToVector(image)
    print("encoding the message")
    encoded = enc(message)

    print("corrupting the message")
    corrupted = corrupt(encoded[:], e)

    print("decoding the code")
    Q, E = solveSystem(corrupted)

    P, remainder = (Q.__divmod__(E))
    recoveredImage = vectorToImage([c.n for c in P.coefficients])
    misc.imsave("images/recovered-mars.jpg", recoveredImage)
Beispiel #3
0
def simpleTest():
   integerMessage = [2,3,2]
   k = 3
   n = 7
   p = 11

   enc, dec, solveSystem = makeEncoderDecoder(n, k, p)
   encoded = enc(integerMessage)

   print("plain message is: %r" % (integerMessage,))
   print("encoded message is: %r" % (encoded,)) # cleaner output

   e=1
   corrupted = encoded[:]
   corrupted[n//2][1] = corrupted[n//2][1] + 1
   print("corrupted message is: %r" % (corrupted,))

   Q,E = solveSystem(corrupted)
   P, remainder = (Q.__divmod__(E))

   print("P(x) = %r" % P)
   print("r(x) = %r" % remainder)
Beispiel #4
0
def tkamTest():
   message = '''When he was nearly thirteen, my brother Jem got his arm badly broken at the elbow. When it healed, and Jem's fears of never being able to play football were assuaged, he was seldom self-conscious about his injury. His left arm was somewhat shorter than his right; when he stood or walked, the back of his hand was at right angles to his body, his thumb parallel to his thigh. He couldn't have cared less, so long as he could pass and punt.'''

   k = len(message)
   n = len(message) * 2
   p = 2087
   integerMessage = [ord(x) for x in message]

   enc, dec, solveSystem = makeEncoderDecoder(n, k, p)
   print("encoding...")
   encoded = enc(integerMessage)

   e = int(k/2)
   print("corrupting...")
   corrupted = corrupt(encoded[:], e, 0, p)

   print("decoding...")
   Q,E = solveSystem(corrupted)
   P, remainder = (Q.__divmod__(E))

   recovered = ''.join([chr(x) for x in P.coefficients])
   print(recovered)
def simpleTest():
    integerMessage = [2, 3, 2]
    k = 3
    n = 7
    p = 11

    enc, dec, solveSystem = makeEncoderDecoder(n, k, p)
    encoded = enc(integerMessage)

    print("plain message is: %r" % (integerMessage, ))
    print("encoded message is: %r" % (encoded, ))  # cleaner output

    e = 1
    corrupted = encoded[:]
    corrupted[n // 2][1] = corrupted[n // 2][1] + 1
    print("corrupted message is: %r" % (corrupted, ))

    Q, E = solveSystem(corrupted)
    P, remainder = (Q.__divmod__(E))

    print("P(x) = %r" % P)
    print("r(x) = %r" % remainder)
def tkamTest():
    message = '''When he was nearly thirteen, my brother Jem got his arm badly broken at the elbow. When it healed, and Jem's fears of never being able to play football were assuaged, he was seldom self-conscious about his injury. His left arm was somewhat shorter than his right; when he stood or walked, the back of his hand was at right angles to his body, his thumb parallel to his thigh. He couldn't have cared less, so long as he could pass and punt.'''

    k = len(message)
    n = len(message) * 2
    p = 2087
    integerMessage = [ord(x) for x in message]

    enc, dec, solveSystem = makeEncoderDecoder(n, k, p)
    print("encoding...")
    encoded = enc(integerMessage)

    e = int(k / 2)
    print("corrupting...")
    corrupted = corrupt(encoded[:], e, 0, p)

    print("decoding...")
    Q, E = solveSystem(corrupted)
    P, remainder = (Q.__divmod__(E))

    recovered = ''.join([chr(x) for x in P.coefficients])
    print(recovered)
Beispiel #7
0
from copy import deepcopy
from welchberlekamp import makeEncoderDecoder
from finitefield.finitefield import FiniteField

## Setup ##
n = 3  # Number of Packets we want to send
k = 2  # Maximum number of errors we can tolerate
p = 11  # We're working on finite field modulo p
Fp = FiniteField(p)
enc, dec, solveSystem = makeEncoderDecoder(n + 2 * k, n, p)

## Encode Message like this ##
message = [3, 4, 0]
encoded = enc(message)
print("The encoded message is:")
print(encoded)

## Decode Message like this ##
received = deepcopy(encoded)
received[0] = Fp(2)  #Changing a message in received.
received[1] = Fp(1)  #Changing a message in received.
received[2] = Fp(0)  #Changing a message in received.
received[3] = Fp(2)  #Changing a message in received.
received[4] = Fp(10)  #Changing a message in received.
print("The received message is:")
print(received)
decoded = dec(received)
print("Decoded message is:")
print(decoded)