Ejemplo n.º 1
0
def comprobarFirma(archivo, firma, cpub):
    f_archivo = open(archivo,'rb')
    f_firma = open(firma,'r')
    f_cpub = open(cpub,'r')
    
    p = int(f_cpub.readline())
    q = int(f_cpub.readline())
    alpha = int(f_cpub.readline())
    y = int(f_cpub.readline())
    
    r = int(f_firma.readline())
    s = int(f_firma.readline())
    
    u = int((int(hashlib.sha1(f_archivo.read()).hexdigest(),16)*(pow(s,q-2,q)))%q)
    v = int((r*(pow(s,q-2,q)))%q)
    
    r1 = ((potencia(alpha,u,p)*potencia(y,v,p))%p)%q
    
    f_archivo.close()
    f_firma.close()
    f_cpub.close()
    
    if r == r1:
        return True
    else:
        return False
Ejemplo n.º 2
0
	def cifrar(self,e,n,texto):
		blo = funciones.prepa_num_cifrar(n,texto)
		cifrado = []
		for i in blo:
			cifrado.append(funciones.potencia(i,e,n))

		return cifrado
Ejemplo n.º 3
0
def miller_Rabin(P,iteraciones):
    if P <= 5:
        return ("Entrada incorrecta N > 5 ")
    elif P%2 == 0:
		  return ("No es primo")

    es_prob_primo = False
    
    u = 0
    s = P-1
    
    while s % 2 == 0:
        u += 1
        s /= 2
    
    lista_usados=[]
    i = 0
    cont=0
    while cont < iteraciones:
        a = getA(P,lista_usados)
        lista_usados.append(a)
        a = funciones.potencia(a,s,P)
        if a != 1 and a != P-1:
            i = 1
            while i <= u-1:
                #print i
                a = funciones.potencia(a,2,P)
                if a == P-1:
                    es_prob_primo = True
                    i = u
                elif a == 1:
                   print a
                   return "No es primo"
                else:
                   pass
                i += 1
            if(es_prob_primo == False):
              return "no es primo"
        else:
            es_prob_primo = True
        cont +=1
        #probabilidad_act = ((4**i-1.0)/4**i)
    if es_prob_primo == True:
        return "Es probable primo"
Ejemplo n.º 4
0
def miller_Rabin(P, iteraciones):
    if P <= 5:
        return ("Entrada incorrecta N > 5 ")
    elif P % 2 == 0:
        return ("No es primo")

    es_prob_primo = False

    u = 0
    s = P - 1

    while s % 2 == 0:
        u += 1
        s /= 2

    lista_usados = []
    i = 0
    cont = 0
    while cont < iteraciones:
        a = getA(P, lista_usados)
        lista_usados.append(a)
        a = funciones.potencia(a, s, P)
        if a != 1 and a != P - 1:
            i = 1
            while i <= u - 1:
                #print i
                a = funciones.potencia(a, 2, P)
                if a == P - 1:
                    es_prob_primo = True
                    i = u
                elif a == 1:
                    print a
                    return "No es primo"
                else:
                    pass
                i += 1
            if (es_prob_primo == False):
                return "no es primo"
        else:
            es_prob_primo = True
        cont += 1
        #probabilidad_act = ((4**i-1.0)/4**i)
    if es_prob_primo == True:
        return "Es probable primo"
Ejemplo n.º 5
0
Archivo: main.py Proyecto: ad1cted/UTEM
def main():
#menu
    desicion=0
    while desicion!=7:
        print "----------------------"
        print "Menu "
        print "1)factorial(n)"
        print "2)potencia(a,b)"
        print "3)fibonacci(n)"
        print "4)mult(a,b)"
        print "5)cuociente(a,b)"
        print "6)resto(a,b)"
        print "7)Salir"
        desicion=int(input(""))
        if desicion==7:
            exit()
        if desicion==6:
            a=int(input("ingrese a : "))
            b=int(input("ingrese b : "))
            print "Resultado : ",funciones.resto(a,b)
        if desicion==5:
            a=int(input("ingrese a : "))
            b=int(input("ingrese b : "))
            print funciones.cuociente(a,b)
        if desicion==4:
            a=int(input("ingrese a : "))
            b=int(input("ingrese b : "))
            print funciones.mult(a,b)
        if desicion==3:
            n=int(input("ingrese n : "))
            print funciones.fibonacci(n)
        if desicion==2:
            a=int(input("ingrese a : "))
            b=int(input("ingrese b : "))
            print funciones.potencia(a,b)
        if desicion==1:
            n=int(input("ingrese n : "))
            print funciones.factorial(n)
    return 0
Ejemplo n.º 6
0
	def generarFirma(self, texto):
		"""
		Genera una firma digital por RSA

		@type texto: cadena
		@param texto: texto con el que generar la firma

		@rtype: entero
		@return: valor de la firma digital
		"""
		n = self.n
		M = funciones.hash(self.texto, n)
		S = funciones.potencia(M,self.d,n)
		return S
Ejemplo n.º 7
0
	def descifrar(self,d,n,cifrado):
		"""
		Descifrado por el método RSA

		@type d: entero
		@param d: clave d

		@type n: entero
		@param n: clave n

		@type cifrado: lista
		@param cifrado: lista con los valores a descifrar

		@rtype: cadena
		@return: texto descifrado
		"""
		descifro = []
		for i in cifrado:
			descifro.append(funciones.potencia(i,d,n))
		descifrado = funciones.num_letra(n,descifro)
		return descifrado
Ejemplo n.º 8
0
	def cifrar(self,e,n,texto):
		"""
		Cifrado por el método RSA

		@type e: entero
		@param e: valor de e

		@type n: entero
		@param n: valor de la clave n

		@type texto: cadena
		@param texto: texto a cifrar

		@rtype: lista
		@return: valores del texto cifrado
		"""
		blo = funciones.prepa_num_cifrar(n,texto)
		cifrado = []
		for i in blo:
			cifrado.append(funciones.potencia(i,e,n))

		return cifrado
Ejemplo n.º 9
0
cant_periodos = 6

tolerancia_picos = 1  # si es >1 aumentara la cantidad de picos reconocidos como streamers, si es <1 los mas chicos se eliminaran.

fuente_continua = -9.02  #en kV

alta_frecuencia = True  #si es una medicion de alta frecuencia poner True, o False de lo contrario.

iper, tper = func.calculo_per(
    cant_periodos, t_volt,
    volt)  #calcula la cantidad de elementos en un periodo y su duracion

potencia_istr, cor_media_istr, istr_aux = func.potencia(
    t_istr,
    istr,
    volt,
    cant_periodos,
    altafrec=alta_frecuencia,
    v_dc_in=fuente_continua * 1000,
    tolerancia_corte=tolerancia_picos)

print('Potencia media de streamers en W:', potencia_istr)
print('Corriente media de streamers en mA:', cor_media_istr * 1000)
print('voltaje pico a pico en kV:', func.pico_pico(volt) / 1000)

plt.figure()
plt.plot(t_istr[:iper] * 1000, istr_aux[:iper] * 1000)
plt.xlabel('tiempo (ms)', fontsize=20)
plt.ylabel('Corriente de streamers (mA)', fontsize=20)
plt.grid()
plt.tick_params(axis='both', which='both', length=4, width=2, labelsize=15)
Ejemplo n.º 10
0
	def generarFirma(self, texto):
		n = self.n
		M = funciones.hash(self.texto, n)
		S = funciones.potencia(M,self.d,n)
		return S
Ejemplo n.º 11
0
	def descifrar(self,d,n,cifrado):
		descifro = []
		for i in cifrado:
			descifro.append(funciones.potencia(i,d,n))
		descifrado = funciones.num_letra(n,descifro)
		return descifrado
Ejemplo n.º 12
0
# para RGB retorna MxNx3, RGBA  retorna MxNx4

img_path = "D:/Documents/Tarpuy/Procesamiento-R/2dconv-verilog/src/py/Metrica/img/da_bossGS.jpg"
input_img = img.imread(img_path)

# Filtro para la convolucion
kernel = np.array(
    [
        [0, 1, 0],
        [1, -4, 1],
        [0, 1, 0]
    ])

# nomralizacion con 'l2'
fix1 = fun.cross_corr(input_img, kernel)  # convolucon de la senal originla
Signal = fun.potencia(fix1)  # potencia de la senal convlucionada
ker_fix = np.asarray(ivn.ker_norm(kernel))
ker_fix = np.asarray(fun.fix_matriz(ker_fix, 8, 7, 'S', 'round', 'saturate'))  # kernel a punto fijo

input_S = fun.norm_m(input_img, 'l2')  # fincion normalizada l2
SNR1 = []
f_vec = np.arange(5, 11, 1)  # rango de iteracion

for i in f_vec:
    img_fix = np.asarray(fun.fix_matriz(input_S, i, i-1, 'S', 'round', 'saturate'))
    input_N = fun.cross_corr(img_fix, ker_fix)
    input_N = fix1 - input_N  # diferencia entre original y nueva
    Noise = fun.potencia(input_N)
    SNR1.append(Signal / Noise)

print "end 1..."
Ejemplo n.º 13
0
# imagen modificada en rango (1,0) y pasada a punto fijo
input_S = np.asarray(ivn.torange(input_img, 1, 0))
# imagen en Punto fijo
img_fix = np.asarray(fun.fix_matriz(input_S, 8, 7, 'S', 'round', 'saturate'))

# convolucion
Conv_2 = fun.cross_corr(img_fix, ker_fix2)

Conv_fix2 = np.asarray(
    fun.fix_matriz(np.asarray(Conv_2), 20, 14, 'S', 'round', 'saturate', 1))

# comparacion
SNR1 = []
SNR2 = []
Signal = fun.potencia(Conv_original)

# defino vectores
vec = np.arange(8, 15, 1)

for i in xrange(8, 15):
    Conv_fix = fun.pos(Conv_fix2, 20, int(i))
    Conv_fix = ivn.torange(Conv_fix, 1, 0)
    Conv_fix = Conv_original - Conv_fix
    Noise = fun.potencia(Conv_fix)
    SNR1.append(Signal / Noise)

print 10 * np.log10(SNR1)

plt.plot(vec, 10 * np.log10(SNR1), label="Corte_Pos")
plt.title('Comparacion Orginal y Fixed')