Beispiel #1
0
def import_key(key_file):

    with open(key_file, 'r') as kf:
        encoded_key = kf.read().replace("\n", "")
        encoded_key = encoded_key.replace(PRIVATE_HEAD_BLOCK, "")
        encoded_key = encoded_key.replace(PUBLIC_HEAD_BLOCK, "")
        encoded_key = encoded_key.replace(END_BLOCK, "")

    plain_key = base58.b58decode(encoded_key).decode()
    object_param_list = plain_key.split("\n")

    params = object_param_list[0].split(",")
    params = [int(i) for i in params]
    params = Parameters(params[0], params[1], params[2], params[3], params[4],
                        params[5])

    h = object_param_list[1].split()
    h = [int(i) for i in h]
    h = poly(h, params.get_N())

    f = g = None
    if len(object_param_list) == 4:
        f = object_param_list[2].split()
        f = [int(i) for i in f]
        f = poly(f, params.get_N())

        g = object_param_list[3].split()
        g = [int(i) for i in g]
        g = poly(g, params.get_N())

    if f and g:
        return NTRUKey(params, h, f, g)
    else:
        return NTRUKey(params, h)
Beispiel #2
0
def main():
    base1 = poly(n=6, r=40, topleft=(50, 50))
    base3 = poly(n=6, r=40, topleft=(50, 270))
    base2 = poly(n=8, r=40, topleft=(250, 50))
    pg=ComboGroup((PolyGroup(base_poly=base1,EVEN=3,ODD=2,line=3),\
                PolyGroup(base_poly=base3,EVEN=3,ODD=2,line=3),\
                PolyGroup(base_poly=base2,EVEN=3,ODD=2,line=3)))
    FontObj = pygame.font.SysFont('stliti', 20)
    x = 0
    for g in pg.groups:
        for p in g:
            pygame.draw.polygon(DIS, (255, 255, 255), p.points, 2)
            text = FontObj.render(str(x), True, (0, 255, 255))
            _rect = text.get_rect()
            _rect.center = p.center
            DIS.blit(text, _rect)
            x += 1
        print(g.rect.xywh)
        pygame.draw.rect(DIS, (255, 255, 255), g.rect.xywh, 2)
    pygame.image.save(DIS, 'demo_img1.jpg')
    pygame.display.update()
    while True:
        time.sleep(0.2)
        for event in pygame.event.get():
            if event.type == QUIT:
                pygame.quit()
                return
            if event.type == MOUSEBUTTONDOWN:
                po = pg.collide(event.pos)
                print(pg.get_neibors_by_num(pg.coord_to_num(po)))
                print(po)
Beispiel #3
0
def main():
    ##     base1=poly(n=6,r=40,topleft=(50,50))
    ##     base3=poly(n=6,r=40,topleft=(50,270))
    ##     base2=poly(n=8,r=40,topleft=(250,50))
    ##     pg=ComboGroup((PolyGroup(base_poly=base1,EVEN=3,ODD=2,line=3),\
    ##                    PolyGroup(base_poly=base3,EVEN=3,ODD=2,line=3),\
    ##                    PolyGroup(base_poly=base2,EVEN=3,ODD=2,line=3)))
    XMAR = 2
    YMAR = 40
    size = 40
    GAP = size
    base1 = poly.poly(n=8, size=size, topleft=(XMAR, YMAR))
    base2 = poly.poly(n=6,
                      size=size,
                      topleft=(9.2 * size + XMAR + GAP, YMAR + 0.35 * size))
    base3 = poly.poly(n=8,
                      size=size,
                      topleft=(XMAR + 14.2 * size + XMAR + 2 * GAP, YMAR))
    pg=poly.ComboGroup((poly.PolyGroup(base_poly=base1,EVEN=4,ODD=3,line=5),\
                        poly.PolyGroup(base_poly=base2,EVEN=7,ODD=6,line=3),\
                        poly.PolyGroup(base_poly=base3,EVEN=4,ODD=3,line=5)))
    pg.set_special_neibors({
        14: (18, 19),
        15: (19, 20, 21),
        16: (21, 22, 23),
        17: (3, 24)
    })
    chessurf = pygame.image.load('Eight.png')
    chess_pics[8] = pygame.transform.scale(chessurf, base1.rect.iwh)
    chessurf = pygame.image.load('Six.png')
    chess_pics[6] = pygame.transform.scale(chessurf, base2.rect.iwh)
    x = 0
    FontObj = pygame.font.SysFont('stliti', 20)
    for p in pg:
        background.blit(chess_pics[p.n], p.topleft)
        text = FontObj.render(str(x), True, (0, 255, 255))
        background.blit(text, p.center)
        x += 1
    '''for g in pg.groups:
        for p in g:
            pygame.draw.polygon(DIS,(255,255,255),p.points,2)
        pygame.draw.rect(DIS,(255,255,255),g.rect.xywh,2)'''
    DIS.blit(background, (0, 0))
    pygame.display.update()
    while True:
        time.sleep(0.2)
        for event in pygame.event.get():
            if event.type == QUIT:
                pygame.quit()
                return
            if event.type == MOUSEBUTTONDOWN:
                po = pg.collide(event.pos)
                print(pg.get_neibors_by_num(pg.coord_to_num(po)))
                print(po)
    def __init__(self, DIS):
        global background, hlight_pic
        self._posdict = {n: None for n in range(56)}
        self.DIS = DIS
        self.all_chess = []
        files_image_background = 'backimage.jpg'
        files_sound_boomsound = 'Boomsound.mp3'
        background = pygame.image.load(files_image_background).convert_alpha()
        #boomsound = pygame.mixer.Sound(files_sound_boomsound)

        #Initializing the high light surfaces
        hlight_pic = dict()
        hlight_color = (0, 200, 200, 100)
        for n in (6, 8):
            t_poly = poly.poly(n=n, topleft=(0, 0), size=40)
            highlight = pygame.surface.Surface(t_poly.rect.iwh).convert_alpha()
            highlight.fill((0, 0, 0, 0))
            pygame.draw.polygon(highlight, hlight_color, t_poly.points, 0)
            hlight_pic[n] = highlight
        #Setting up blocks
        XMAR = 2
        YMAR = 40
        size = 40
        GAP = size
        base1 = poly.poly(n=8, size=size, topleft=(XMAR, YMAR))
        base2 = poly.poly(n=6,
                          size=size,
                          topleft=(9.2 * size + XMAR + GAP,
                                   YMAR + 0.35 * size))
        base3 = poly.poly(n=8,
                          size=size,
                          topleft=(XMAR + 14.2 * size + XMAR + 2 * GAP, YMAR))
        self.board=poly.ComboGroup((poly.PolyGroup(base_poly=base1,EVEN=4,ODD=3,line=5),\
                              poly.PolyGroup(base_poly=base2,EVEN=7,ODD=6,line=3),\
                              poly.PolyGroup(base_poly=base3,EVEN=4,ODD=3,line=5)))
        self.board.set_special_neibors({
            14: (18, 19),
            15: (19, 20, 21),
            16: (21, 22, 23),
            17: (3, 24),
            38: (31, 32),
            39: (32, 33, 34),
            40: (34, 35, 36),
            41: (36, 37)
        })
        chess_pics = {}
        chessurf = pygame.image.load('Eight.png')
        chess_pics[8] = pygame.transform.scale(chessurf, base1.rect.iwh)
        chessurf = pygame.image.load('Six.png')
        chess_pics[6] = pygame.transform.scale(chessurf, base2.rect.iwh)
        for p in self.board:
            background.blit(chess_pics[p.n], p.topleft)
Beispiel #5
0
def list_polys():
    f = open("./map.txt", "r")
    polys = f.readlines()
    #print(polys);
    f.close()

    poly_obj = []
    for x in polys:
        #print("pre new line",x);
        if (x != "\n"):  #ignore empty lines
            temp = x.rstrip("\r\n")
            #print("post strip",temp);
            temp = temp.split("/")
            #print("temp:",temp);
            #if( eval(temp[2])[2] > 0 or eval(temp[3])[2] > 0 or eval(temp[4])[2] > 0): #wrong file
            poly_obj.append(
                poly(temp[0], temp[1], eval(temp[2]), eval(temp[3]),
                     eval(temp[4])))
        else:
            #print("empty line");
            pass
    #TODO: rotate objects around camera forward by vector indicated by camera up
    """
    print(poly_obj);
    for x in poly_obj:
        x.get_info();
    """
    #TODO: sort objects to that farthest away is first in list
    return poly_obj
Beispiel #6
0
 def bias(self, x_pos, x_neg):
     m_pos = x_pos.shape[1]
     m_neg = x_neg.shape[1]
     Q = None
     c =     np.bmat([\
             [   zeros(1)    ],\
             [   ones(m_pos) ],\
             [   ones(m_neg) ]\
             ])
     A_ub =  np.bmat([\
             [  ones(m_pos),  -eye(m_pos),             zeros(m_pos,m_neg) ],\
             [ -ones(m_neg),   zeros(m_neg,m_pos),    -eye(m_neg)         ],\
             [  zeros(m_pos), -eye(m_pos),             zeros(m_pos,m_neg) ],\
             [  zeros(m_neg),  zeros(m_neg,m_pos),    -eye(m_neg)         ]\
             ])
     b_ub = np.bmat([\
             [ -ones(m_pos)  ],\
             [ -ones(m_neg)  ],\
             [  zeros(m_pos) ],\
             [  zeros(m_neg) ]\
             ])
     for i in range(m_pos):
         b_ub[i, 0] += self.a(x_pos[:, i])
     for i in range(m_neg):
         b_ub[i + m_pos, 0] -= self.a(x_neg[:, i])
     P = poly(A_ub, b_ub)
     sol = QP(Q, c, P).solve()
     b = sol[0, 0]
     return b
Beispiel #7
0
 def encrypto(self, m):
     phi = self.randpoly_phi()
     phi = poly([-1, 1, 0, 0, 0, -1, 1])
     c = phi.StarMult(self.public_key, self.N, self.q)
     c.expend(self.N)
     m.expend(self.N)
     for i in range(0, self.N):
         c.coe[i] = self.p * c.coe[i] + m.coe[i]
         c.coe[i] %= self.q
     return c
Beispiel #8
0
    def test_creation_and_operations(self):

        key = generate_key()

        m = poly([1,1,0,0,-1,-1,-1,1,1,0,1,-1,1,0,-1,-1,1,0,0,1,0,1,-1,1], 29)

        c = key.encrypt(m)
        d = key.decrypt(c)

        self.assertEqual(m,d)
        self.assertTrue(key.is_private())
Beispiel #9
0
 def __init__(self,s):
     """
         x ∈ R^n
     """
     s = sampled_convex_set.remove_interior_points(s)
     n = s.shape[0]
     m = s.shape[1]
     A_ub = np.bmat([[zeros(m,n),-eye(m)],[zeros(m,n),eye(m)]])
     b_ub = np.bmat([[zeros(m)],[ones(m)]])
     A_eq = np.bmat([[-eye(n),s],[zeros(1,n),ones(1,m)]])
     b_eq = np.bmat([[zeros(n)],[ones(1)]])
     self.P = poly(A_ub,b_ub,A_eq,b_eq)
Beispiel #10
0
def main():
    base1 = poly(n=6, r=40, topleft=(10, 10))
    base2 = poly(n=8, size=40, center=(100, 140), lie=False)  #True)
    FontObj = pygame.font.SysFont('stliti', 20)
    for p in (base1, base2):
        pygame.draw.polygon(DIS, (255, 255, 255), p.points, 2)
        x = 0
        for i in p.points:
            text = FontObj.render(str(x), True, (0, 255, 255))
            _rect = text.get_rect()
            _rect.center = i
            DIS.blit(text, _rect)
            x += 1
        pygame.draw.rect(DIS, (255, 255, 5), p.rect.xywh, 2)
    pygame.image.save(DIS, 'demo_img2.jpg')
    pygame.display.update()
    while True:
        time.sleep(0.2)
        for event in pygame.event.get():
            if event.type == QUIT:
                pygame.quit()
                return
Beispiel #11
0
 def __init__(self,a,b,c,d,P):
     n = P.n 
     m = P.A_ub.shape[0]
     r = P.A_eq.shape[0]
     A_ub = np.bmat([[P.A_ub,-P.b_ub],[zeros(1,n),-ones(1)]])
     b_ub = zeros(m+1)
     A_eq = np.bmat([[P.A_eq,-P.b_eq],[c.T,-d]])
     b_eq = np.bmat([[zeros(r)],[ones(1)]])
     P = poly(A_ub,b_ub,A_eq,b_eq)
     Q = None
     c = np.bmat([[a],[b]])
     self.QP = QP(None,c,P)
     self.n = n
Beispiel #12
0
 def dual(self, x, y):
     m = y.shape[0]
     c_dual = -ones(m)
     Q_dual = eye(m)
     for i in range(m):
         for j in range(m):
             Q_dual[i, j] = y[i, 0] * y[j, 0] * self.K(x[:, i], x[:, j])
     A_ub = -eye(m)
     b_ub = zeros(m)
     A_eq = y.T
     b_eq = zeros(1)
     P_dual = poly(A_ub, b_ub, A_eq, b_eq)
     z = QP(Q_dual, c_dual, P_dual).solve()
     return z
Beispiel #13
0
 def _randpoly(self, one=None, _one=None):
     if one == None and _one == None:
         tot = random.randint(2, self.N - 1)
         one = random.randint(0, tot)
         _one = tot - one
     r = [0] * self.N
     while one != 0 or _one != 0:
         pos = random.randint(0, self.N - 1)
         if r[pos] is 0:
             if one > 0:
                 r[pos] = 1
                 one -= 1
             elif _one > 0:
                 r[pos] = -1
                 _one -= 1
     return poly(r)
Beispiel #14
0
    def __init__(self,x):
        n = x.shape[0]
        m = x.shape[1]
        self.x = x

        P_list = []
        for j in range(m):
            A = zeros(m-1,n)
            b = zeros(m-1,1)
            i_ = 0
            for i in range(m):
                if i != j:
                    A[i_,:] = 2*(x[:,i].T-x[:,j].T)
                    b[i_] = x[:,i].T*x[:,i] - x[:,j].T*x[:,j]
                    i_ += 1
            P_list.append(poly(A,b))
        self.P_list = P_list
Beispiel #15
0
 def soft_dual(self, x, y, λ=0.1):
     assert λ >= 0, "λ >= 0"
     m = y.shape[0]
     c_dual = None
     Q_dual = eye(m)
     for i in range(m):
         for j in range(m):
             Q_dual[i, j] = y[i, 0] * y[j, 0] * self.K(x[:, i], x[:, j])
     A_ub =  np.bmat([\
             [   -eye(m)     ],\
             [    eye(m)     ]\
             ])
     b_ub =  np.bmat([\
             [   zeros(m)    ],\
             [   λ*ones(1)   ]\
             ])
     A_eq = y.T
     b_eq = zeros(1)
     P_dual = poly(A_ub, b_ub, A_eq, b_eq)
     z = QP(Q_dual, c_dual, P_dual).solve()
     return z
Beispiel #16
0
 def __init__(self,
              N,
              p,
              q,
              Fp=None,
              Fq=None,
              g=None,
              private_key=None,
              public_key=None):
     self.N = N
     self.p = p
     self.q = q
     self.private_key = private_key
     self.public_key = public_key
     self.Fp = Fp
     self.Fq = Fq
     self.g = g
     P = [0] * (N + 1)
     P[0] = -1
     P[N] = 1
     self.P = poly(P)
Beispiel #17
0
def drawtri(color, size, alpha=255):
    X = 0
    Y = 1
    color = color + (alpha, )
    YIN = pygame.surface.Surface((size, size // 5)).convert_alpha()
    YIN.fill((255, 255, 255, 0))
    pygame.draw.rect(YIN, color, (0, 0, size * 2 // 5, size // 5))
    pygame.draw.rect(YIN, color, (size * 3 // 5, 0, size * 2 // 5, size // 5))
    YANG = pygame.surface.Surface((size, size // 5)).convert_alpha()
    YANG.fill(color)
    YI = (YIN, YANG)
    Trigram = []
    for lower in YI:
        for mid in YI:
            for upper in YI:
                GUA = pygame.surface.Surface((size, size)).convert_alpha()
                GUA.fill((255, 255, 255, 0))
                GUA.blit(lower, (0, size * 4 // 5))
                GUA.blit(mid, (0, size * 2 // 5))
                GUA.blit(upper, (0, 0))
                Trigram.append(GUA)
    temp = poly.poly(n=8, topleft=(size, size), size=size * 2)
    picsurf = pygame.surface.Surface((size * 7, size * 7)).convert_alpha()
    picsurf.fill((255, 255, 255, 0))
    for i in range(4):
        Trigram[i] = pygame.transform.rotate(Trigram[i], -(i - 4) * 45)
        TriRect = Trigram[i].get_rect()
        TriRect.center = ((temp.points[4 - i][X] + temp.points[3 - i][X]) // 2,
                          (temp.points[4 - i][Y] + temp.points[3 - i][Y]) // 2)
        picsurf.blit(Trigram[i], TriRect)
    for i in [4, 5, 6, 7]:
        Trigram[i] = pygame.transform.rotate(Trigram[i], (i + 1) * 45)
        TriRect = Trigram[i].get_rect()
        TriRect.center = ((temp.points[i][X] + temp.points[(i + 1) % 8][X]) //
                          2,
                          (temp.points[i][Y] + temp.points[(i + 1) % 8][Y]) //
                          2)
        picsurf.blit(Trigram[i], TriRect)
    return picsurf
Beispiel #18
0
def qvoronoi (points, command = 'qvoronoi'):

    point_fn = get_temp_file_name ()
    fp = open (point_fn, "w")
    fp.write ("2 rbox %i\n%i D2\n" % (len(points), len(points)))
    for x in points:
        fp.write ("%.16f %.16f\n" % (x[0],x[1]))
    fp.close ()

    off_fn = get_temp_file_name ();
    print off_fn
    cmd = 'cat %s | %s s o >%s' % (point_fn, command, off_fn)
    print cmd
    if os.system (cmd) != 0:
        die ("%s failed" % command)

    tessel = poly.poly ()
    tessel.read_from_off (off_fn)

    os.remove (off_fn)
    #os.remove (point_fn)

    return tessel
Beispiel #19
0
def qvoronoi(points, command="qvoronoi"):

    point_fn = get_temp_file_name()
    fp = open(point_fn, "w")
    fp.write("2 rbox %i\n%i D2\n" % (len(points), len(points)))
    for x in points:
        fp.write("%.16f %.16f\n" % (x[0], x[1]))
    fp.close()

    off_fn = get_temp_file_name()
    print off_fn
    cmd = "cat %s | %s s o >%s" % (point_fn, command, off_fn)
    print cmd
    if os.system(cmd) != 0:
        die("%s failed" % command)

    tessel = poly.poly()
    tessel.read_from_off(off_fn)

    os.remove(off_fn)
    # os.remove (point_fn)

    return tessel
Beispiel #20
0
 def gen_rPoly(self):
     """ Generate a random r for security parameters """
     rp = [0] * self._N
     p1,n1 = 0,0
     while p1 != self._dr or n1 != self._dr:
         if p1 == self._dr:
             pass
         else:
             x = CR.randint(0,self._N-1)
             if rp[x] == 0:
                 rp[x] = 1
                 p1+=1
             else:
                 pass
         if n1 == self._dr:
             pass
         else:
             y = CR.randint(0,self._N-1)
             if rp[y] == 0:
                 rp[y] = -1
                 n1+=1
             else:
                 pass
     return poly(rp, self._N)
Beispiel #21
0
 def gen_gPoly(self):
     """ Generate a g private key """
     gp = [0] * self._N
     p1,n1 = 0,0
     while p1 != self._dg or n1 != self._dg:
         if p1 == self._dg:
             pass
         else:
             x = CR.randint(0,self._N-1)
             if gp[x] == 0:
                 gp[x] = 1
                 p1+=1
             else:
                 pass
         if n1 == self._dg:
             pass
         else:
             y = CR.randint(0,self._N-1)
             if gp[y] == 0:
                 gp[y] = -1
                 n1+=1
             else:
                 pass
     return poly(gp, self._N)
Beispiel #22
0
 def gen_fPoly(self):
     """ Generate a f private key """
     fp = [0] * self._N
     p1,n1 = 0,0
     while p1 != self._df+1 or n1 != self._df:
         if p1 == self._df+1:
             pass
         else:
             x = CR.randint(0,self._N-1)
             if fp[x] == 0:
                 fp[x] = 1
                 p1+=1
             else:
                 pass
         if n1 == self._df:
             pass
         else:
             y = CR.randint(0,self._N-1)
             if fp[y] == 0:
                 fp[y] = -1
                 n1+=1
             else:
                 pass
     return poly(fp, self._N)
Beispiel #23
0
 def test_mod_and_eq(self):
     a = poly([3,4,5,6,7], 5)
     b = poly([6,1,2,9,13,0,0,0], 8)
     self.assertFalse(a == b)
     self.assertTrue(a%3 == b%3)
Beispiel #24
0
 def test_conv_product(self):
     f = poly([3,0,2,0,-3,0,1], 7)
     g = poly([1,-3,1,0,0,2,-1], 7)
     fmg = f * g
     self.assertEqual(fmg._coeff, [4, -10, -1, -3, 1, 14, -5])
Beispiel #25
0
 def test_add(self):
     f = poly([3,0,2,0,-3,0,1], 7)
     g = poly([1,-3,1,0,0,2,-1], 7)
     fpg = f + g
     self.assertEqual(fpg._coeff, [4,-3,3,0,-3,2])
Beispiel #26
0
if __name__ == "__main__":
    temp = crossing_point((1, 0), (-1, 0), (0, 1), (0, -1))
    print(temp)
    temp = distance_between((1, 1), (-1, -1))
    print(temp)
    temp = points_in_line((0, 0), (100, 100), (200, 200))
    print(temp)
    temp = points_in_line((0, 0), (100, 100), (200, 205))
    print(temp)

    offset = (500, 400)
    ray_num = 50
    for i in range(ray_num):
        ray(offset, 2 / ray_num * i, 10000)

    poly.poly([(100, 200), (200, 100)], WHITE)
    poly.poly([(100, 200), (0, 200)], WHITE)
    poly.poly([(700, 400), (700, 500), (800, 500), (800, 400)], WHITE)
    poly.poly([(900, 400), (900, 500), (1000, 500), (1000, 400)], WHITE)
    poly.poly([(300, 300), (400, 350), (400, 400), (500, 450), (500, 500),
               (300, 500)], WHITE)

    for r in whole:
        r.update()

    for r in whole:
        r.render()
    for p in poly.whole:
        p.render()

    pygame.display.flip()
Beispiel #27
0
def mainloop():

    done = False
    clock = pygame.time.Clock()

    src_x = 500
    src_y = 400

    keyUP = False
    keyLEFT = False
    keyDOWN = False
    keyRIGHT = False

    ray_num = 200
    ray.ray_source((src_x, src_y), 0, 1 / 4, 30)

    poly.poly([(100, 200), (200, 100)], WHITE)
    poly.poly([(100, 200), (0, 200)], WHITE)
    poly.poly([(700, 400), (700, 500), (800, 500), (800, 400)], WHITE)
    poly.poly([(900, 400), (900, 500), (1000, 500), (1000, 400)], WHITE)
    poly.poly([(300, 300), (400, 350), (400, 400), (500, 450), (500, 500),
               (300, 500)], WHITE)

    speed = 5

    while not done:
        clock.tick(FPS)  #게임의 화면 투사를 30Hz로 설정

        #이벤트 입력받기
        for event in pygame.event.get():  # User did something
            if event.type == pygame.QUIT:  # If user clicked close
                done = True  # Flag that we are done so we exit this loop
            if event.type == pygame.MOUSEMOTION:
                angle_new = 0
                if event.pos[0] == src_x and event.pos[1] - src_y == 0:
                    angle_new = 0
                elif event.pos[0] == src_x and event.pos[1] - src_y > 0:
                    angle_new = numpy.pi * 1 / 2
                elif event.pos[0] == src_x and event.pos[1] - src_y < 0:
                    angle_new = numpy.pi * 3 / 2
                elif event.pos[0] < src_x:
                    angle_new = numpy.arctan((event.pos[1] - src_y) /
                                             (event.pos[0] - src_x)) + numpy.pi
                else:
                    angle_new = numpy.arctan(
                        (event.pos[1] - src_y) / (event.pos[0] - src_x))
                for r in ray.ray_source_whole:
                    r.update_angle(angle_new / numpy.pi)
            if event.type == pygame.KEYDOWN:
                if event.key == 119:  #key 'w'
                    keyUP = True
                elif event.key == 97:  #key 'a'
                    keyLEFT = True
                elif event.key == 115:  #key 's'
                    keyDOWN = True
                elif event.key == 100:  #key 'd'
                    keyRIGHT = True
            if event.type == pygame.KEYUP:
                if event.key == 119:  # key 'w'
                    keyUP = False
                elif event.key == 97:  # key 'a'
                    keyLEFT = False
                elif event.key == 115:  # key 's'
                    keyDOWN = False
                elif event.key == 100:  # key 'd'
                    keyRIGHT = False

        if keyUP:
            src_y -= speed
        if keyLEFT:
            src_x -= speed
        if keyDOWN:
            src_y += speed
        if keyRIGHT:
            src_x += speed

        for r in ray.ray_source_whole:
            r.update_pos((src_x, src_y))

        update()  #call update funtion

        pygame.display.flip()
Beispiel #28
0
        m.expend(self.N)
        for i in range(0, self.N):
            c.coe[i] = self.p * c.coe[i] + m.coe[i]
            c.coe[i] %= self.q
        return c

    def decrypto(self, m):
        a = self.private_key.StarMult(m, self.N, self.q)
        for i in range(0, len(a.coe)):
            if a.coe[i] < 0:
                a.coe[i] += self.q
            if a.coe[i] > self.q / 2:
                a.coe[i] = a.coe[i] - self.q
        M = a.StarMult(self.Fp, self.N, self.p).polydiv(self.P, self.p)[1]
        return M


"""
TEST
"""

NTRU = ntru(97,
            3,
            32,
            Fp=poly([-1, 0, 1, 1]),
            public_key=poly([1, 2, 0, -2, -1]),
            private_key=poly([-1, 1, 0, 0, 1]))
NTRU.createKey_pair()
m = NTRU.encrypto(poly([1, 2, 1, 1, 1, 0, 0, 1, 1]))  #
M = NTRU.decrypto(m)
print(M.coe)
        fitness += sum((1 if y[x.index(e)] == eval(attempt) else 0) for e in x)
        return fitness
    except:
        return 0

x = input("What is the input number set, separated with spaces?\n").split()
y = input("What is the output number set, separated with spaces?\n").split()
z = input("Extra options? (See source for full list.)\n").split(' ')
# Options:
# 1. Minimum complexity (default is 1)
# 2. Charset used (0: basic, 1: advanced)
# 3. Maximum complexity (default is 6)
#x='1 3 5 7 9 11 13 2 4 6 8 10 12 14'.split()
#y='0 0 0 0 0 0 0 5 -10 398053859 -7 -103454 0 2804'.split()
x, y = [eval(e) for e in x], [eval(e) for e in y]
print('Polynomial Regression:',poly.poly(x,y),'\n')
z[0] = 1 if z[0]=='' else int(z[0])
charsets = ["e-0123456789%+*/().","""e\\0123456789%+-_=/*^,.;!()'{}[]:\""""]
chars = charsets[int(z[1])] if len(z)>1 else charsets[0]
maximum = int(z[2]) if len(z)>2 else 10
fitness, bestFit, indices = 0,0,[0]*z[0]
addLen = (len(chars))**z[0]
while fitness < len(x):
    attempt = ''
    for a in indices:
        attempt += chars[a]
    fitness = fit(attempt)
    if bestFit < fitness:
        bestFit = fitness
        print("    {0} received a fitness of {1}.".format(attempt,fitness))
    indices[-1] += 1
Beispiel #30
0
 def test_len(self):
     a = poly([3,4,5,6,7], 5)
     g = poly([1,-3,1,0,0,2,-1], 7)
     self.assertEqual(len(a), 5)
     self.assertFalse(len(a) == len(g))
Beispiel #31
0
 def test_init(self):
     a = poly([3,4,5,6,7], 5)
     b = poly([6,1,2,9,13,0,0,0,0,0,0,0,0,0,0,0,0,0], 18)
     self.assertEqual(str(a), "3 4 5 6 7")
     self.assertEqual(str(b), "6 1 2 9 13")
Beispiel #32
0
    def __init__(self, x_pos, x_neg, p='inf', λ=1):
        """
            x_pos ∈ R^{n,m_pos}
            x_neg ∈ R^{n,m_neg}
        """
        n = x_pos.shape[0]
        m_pos = x_pos.shape[1]
        m_neg = x_neg.shape[1]
        assert x_neg.shape[0] is n
        if p is 1:
            Q = None
            c = np.bmat([[zeros(n + 1)], [λ * ones(m_pos + m_neg)], [ones(n)]])
            A_ub =  np.bmat([\
                    [ -x_pos.T, ones(m_pos), -eye(m_pos), zeros(m_pos,m_neg), zeros(m_pos,n) ],\
                    [ x_neg.T, -ones(m_neg), zeros(m_neg,m_pos), -eye(m_neg), zeros(m_neg,n) ],\
                    [ -eye(n), zeros(n), zeros(n,m_pos), zeros(n,m_neg), -eye(n) ],\
                    [ eye(n), zeros(n), zeros(n,m_pos), zeros(n,m_neg), -eye(n) ],\
                    [ zeros(m_pos,n), zeros(m_pos), -eye(m_pos), zeros(m_pos,m_neg), zeros(m_pos,n) ],\
                    [ zeros(m_neg,n), zeros(m_neg), zeros(m_neg,m_pos), -eye(m_neg), zeros(m_neg,n) ]])
            b_ub =  np.bmat([\
                    [ -ones(m_pos) ],\
                    [ -ones(m_neg) ],\
                    [ zeros(n) ],\
                    [ zeros(n) ],\
                    [ zeros(m_pos) ],\
                    [ zeros(m_neg) ]])
            P = poly(A_ub, b_ub)
            sol = QP(Q, c, P).solve()
            self.a = sol[0:n, 0]
            self.b = sol[n, 0]
        if p is 2:
            Q = zeros(n + 1 + m_pos + m_neg, n + 1 + m_pos + m_neg)
            Q[0:n, 0:n] = 2 * eye(n)
            c = zeros(n + 1 + m_pos + m_neg, 1)
            c[(n + 1 + 1 - 1):(n + 1 + m_pos +
                               m_neg)] = λ * ones(m_pos + m_neg, 1)

            A_ub =  np.bmat([\
                    [ -x_pos.T, ones(m_pos), -eye(m_pos), zeros(m_pos,m_neg) ],\
                    [ x_neg.T, -ones(m_neg), zeros(m_neg,m_pos), -eye(m_neg) ],\
                    [ zeros(m_pos,n), zeros(m_pos), -eye(m_pos), zeros(m_pos,m_neg) ],\
                    [ zeros(m_neg,n), zeros(m_neg), zeros(m_neg,m_pos), -eye(m_neg) ]])
            b_ub = np.bmat([\
                    [ -ones(m_pos) ],\
                    [ -ones(m_neg) ],\
                    [ zeros(m_pos) ],\
                    [ zeros(m_neg) ]\
                    ])
            P = poly(A_ub, b_ub)
            sol = QP(Q, c, P).solve()
            self.a = sol[0:n, 0]
            self.b = sol[n, 0]
        if p is 'inf':
            Q = None
            c = np.bmat([[zeros(n + 1)], [λ * ones(m_pos + m_neg)], [ones(1)]])
            A_ub =  np.bmat([\
                    [ -x_pos.T, ones(m_pos), -eye(m_pos), zeros(m_pos,m_neg), zeros(m_pos) ],\
                    [ x_neg.T, -ones(m_neg), zeros(m_neg,m_pos), -eye(m_neg), zeros(m_neg) ],\
                    [ -eye(n), zeros(n), zeros(n,m_pos), zeros(n,m_neg), -ones(n) ],\
                    [ eye(n), zeros(n), zeros(n,m_pos), zeros(n,m_neg), -ones(n) ],\
                    [ zeros(m_pos,n), zeros(m_pos), -eye(m_pos), zeros(m_pos,m_neg), zeros(m_pos) ],\
                    [ zeros(m_neg,n), zeros(m_neg), zeros(m_neg,m_pos), -eye(m_neg), zeros(m_neg) ]])
            b_ub = np.bmat([\
                    [ -ones(m_pos) ],\
                    [ -ones(m_neg) ],\
                    [ zeros(n) ],\
                    [ zeros(n) ],\
                    [ zeros(m_pos) ],\
                    [ zeros(m_neg) ]])
            P = poly(A_ub, b_ub)
            sol = QP(Q, c, P).solve()
            self.a = sol[0:n, 0]
            self.b = sol[n, 0]