示例#1
0
def test_pad():

    pads = ["None","PKCS7","Zeros","ANSIX923","ISO10126"]
    print("init ",plain)
    for i in pads:
        print(i)
        pad_m = pad(m=plain,blocksize=16,padding=i)
        print("pad:",pad_m)
        unpad_m = unpad(pad(plain,16,i),16,i)
        print("unpad",unpad_m)
        print(plain == unpad_m)
示例#2
0
def test_pad():
    print(sys._getframe().f_code.co_name+"#"*100)
    plain = "1111111111111我11".encode()
    pads = ["NoPadding","PKCS7","Zeros","ANSIX923","ISO10126"]
    print("init ",plain)
    for i in pads:
        print(i)
        pad_m = pad(m=plain,blocksize=16,padding=i)
        print("pad:",pad_m)
        unpad_m = unpad(pad(plain,16,i),16,i)
        print("unpad",unpad_m)
        print(plain == unpad_m)
示例#3
0
def ecb_encrypt(m, k, method, blocksize, padding="PKCS7"):
    method_full = "%s_encrypt" % method.lower()
    f = globals()[method_full]
    m = pad(m, blocksize=blocksize, padding=padding)
    blocknum = len(m) // blocksize
    result = b""
    for i in range(blocknum):
        block = m[blocksize * i:blocksize * (i + 1)]
        result += f(block, k)
    return result
示例#4
0
def cbc_encrypt(m, k, method, blocksize, iv=None, padding="PKCS7"):
    if (iv is None):
        iv = b'\x00' * blocksize
    method_full = "%s_encrypt" % method.lower()
    f = globals()[method_full]
    m = pad(m, blocksize=blocksize, padding=padding)
    blocknum = len(m) // blocksize
    result = b""
    for i in range(blocknum):
        block = m[blocksize * i:blocksize * (i + 1)]
        out = f(xor(block, iv), k)
        result += out
        iv = out
    return result
示例#5
0
def maxsupression(A):
	Values = []
	del Values[:]
	framed = np.zeros(((np.size(A,0)+2),(np.size(A,1)+2)))
	sizx = np.size(A,0)+1
	sizy = np.size(A,1)+1
	framed[1:sizx,1:sizy]=A
	A=framed
	#print(A)

	Shifts = np.zeros((prod(size(A)),9))
	#print(Shifts)

	x=np.eye(9)
	for i in range(0,9):
		y = x[:,i]
		X = pad( A, -inf)
		#print(X)

		z = y.transpose()
		Y1 = np.reshape( z,( 3, 3))
		Y = Y1.transpose()
		#print(Y)
		
		Shift = signal.convolve2d(X,Y, mode='valid')
		#Shift = conv2(X,Y, mode='valid')
		#print(Shift)
		

		fi = find(z)
		#print(fi)

		z1 = np.size(Shift,0)
		z2 = np.size(Shift,1)
		#print(z1,z2,z3)
		l=0
		for j in range(0,z2):
			for k in range(0,z1):
				Shifts[l,fi] = Shift[k,j]
				#print(Shifts)
				l=l+1


		#Shifts[:,fi] = Shift[:]
		#print(Shifts[0,0])
	#np.savetxt('TrainingSet.txt',Shifts)
	#print(Shifts)


	Anms = np.ones((size(A)))
	#print(np.size(Anms))

	for shiftind in range(0,4):
		Anms = np.uint64(Anms) & np.uint64(Shifts[ :, 4] >= Shifts[ :, shiftind])
	#print(Anms)

	for shiftind in range(5,9):
		Anms = np.uint64(Anms) & np.uint64(Shifts[ :, 4] > Shifts[ :, shiftind])

	#print(Anms)

	locmaxind = find(Anms)
	#print(locmaxind)

	#xx=np.meshgrid(A,A)
	#print(xx)
	ysize = np.size(A,1)
	xsize = np.size(A,0)
	Col=np.zeros((xsize,ysize))
	Row=np.zeros((xsize,ysize))	


	for i in range(0,xsize):
		for j in range(0,ysize):
			Row[i][j]=j+1;
			Col[i][j]=i+1;

	#print(Col)
	#print(Row)


	#Pos = [Row(locmaxind) Col(locmaxind)]
	#print(Pos)

	length = np.size(locmaxind)
	#print(length)

	pos = [[] for i in range(length)]

		
	for i in range(0,length):
		point = locmaxind[i]+1
		#print(point)
		c=point/xsize
		r=point%xsize
		#print(c,r)
		
		pos[i] = ([Row[c,r-1],Col[c,r-1]])	
		#print(pos)	
		a = int(Row[c,r-1]-1)
		b = int(Col[c,r-1]-1)

		Values.extend([A[a,b]])

	#print(pos)
	#print(Values)
		

	Anms = np.reshape( Anms, (np.size( A, 0), np.size( A, 1))) * A
	#print(Anms)

	pos1 = np.array(pos)
	pos = pos1-1
	position = []
	del position[:]
	#print(pos)
	position = pos	
	#print(np.size(position))

	Anms=Anms[1:(np.size(Anms,0)-1),1:(np.size(Anms,1)-1)]
	#print(np.size(Anms))

	return position,Values
示例#6
0
def aes_cfb_encrypt(m, k, iv=b'\x00' * 16, blocksize=16, padding="PKCS7"):
    m = pad(m, blocksize=blocksize, padding=padding)
    result = AES.new(k, mode=AES.MODE_CFB, IV=iv).encrypt(m)
    return result
示例#7
0
def des3_cfb_encrypt(m, k, iv=b'\x00' * 8, blocksize=8, padding="PKCS7"):
    m = pad(m, blocksize=blocksize, padding=padding)
    result = DES3.new(k, mode=DES3.MODE_CFB, IV=iv).encrypt(m)
    return result
示例#8
0
def des3_ctr_encrypt(m, k, blocksize=8, padding="PKCS7"):
    m = pad(m, blocksize=blocksize, padding=padding)
    ctr = Counter.new(64)
    result = DES3.new(k, mode=DES3.MODE_CTR, counter=ctr).encrypt(m)
    return result
示例#9
0
def des_cbc_encrypt(m, k, iv=b'\x00' * 8, blocksize=8, padding="PKCS7"):
    m = pad(m, blocksize=blocksize, padding=padding)
    print(m.hex())
    result = DES.new(k, mode=DES.MODE_CBC, IV=iv).encrypt(m)
    return result
def maxsupressionn(A):
	#A=np.array([[1,0,6],
	#	[8,0,0]])
	Values = []
	del Values[:]
	framed = np.zeros(((np.size(A,0)+2),(np.size(A,1)+2)))
	sizx = np.size(A,0)+1
	sizy = np.size(A,1)+1
	framed[1:sizx,1:sizy]=A
	A=framed
	#print(A)

	Shifts = np.zeros((prod(size(A)),9))
	#print(Shifts)

	x=np.eye(9)
	for i in range(0,9):
		y = x[:,i]
		X = pad( A, -inf)
		#print(X)

		z = y.transpose()
		Y = np.reshape( z,( 3, 3))
		#print(Y)
	
		Shift = signal.convolve2d(X,Y, mode='valid')
		#Shift = conv2(X,Y, mode='valid')
		#print(Shift)
	

		fi = find(z)
		#print(fi)

		z1 = np.size(Shift,0)
		z2 = np.size(Shift,1)
		#print(z1,z2,z3)
		l=0
		for j in range(0,z2):
			for k in range(0,z1):
				Shifts[l,fi] = Shift[k,j]
				#print(Shifts)
				l=l+1


		#Shifts[:,fi] = Shift[:]
		#print(Shifts[0,0])

	#print(Shifts)


	Anms = np.ones((size(A)))
	#print(np.size(Anms))

	for shiftind in range(0,4):
	  	  Anms = np.uint64(Anms) & np.uint64(Shifts[ :, 4] >= Shifts[ :, shiftind])
	#print(Anms)

	for shiftind in range(5,9):
		  Anms = np.uint64(Anms) & np.uint64(Shifts[ :, 4] > Shifts[ :, shiftind])

	#print(Anms)

	locmaxind = find(Anms)
	#print(locmaxind)

	#xx=np.meshgrid(A,A)
	#print(xx)
	ysize = np.size(A,1)
	xsize = np.size(A,0)
	Col=np.zeros((xsize,ysize))
	Row=np.zeros((xsize,ysize))	


	for i in range(0,xsize):
		for j in range(0,ysize):
			Col[i][j]=j+1;
			Row[i][j]=i+1;

	#print(Col)
	#print(Row)


	#Pos = [Row(locmaxind) Col(locmaxind)]
	#print(Pos)

	length = np.size(locmaxind)
	#print(length)
	
	
	for i in range(0,length):
		point = locmaxind[i]
		#print(point)
		c=point/xsize
		r=point%xsize	
	
		Values.extend([A[c,r-1]])

	return Values
示例#11
0
def des3_ecb_encrypt(m, k, blocksize=8, padding="PKCS7"):
    m = pad(m, blocksize=blocksize, padding=padding)
    result = DES3.new(k, mode=DES3.MODE_ECB).encrypt(m)
    return result