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
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
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"
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"
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
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
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
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
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)
def generarFirma(self, texto): n = self.n M = funciones.hash(self.texto, n) S = funciones.potencia(M,self.d,n) return S
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
# 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..."
# 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')