Autor
|
Tema: Taller: Criptografía asimétrica. (Leído 144,898 veces)
|
|
braulio--
Wiki
Desconectado
Mensajes: 896
Imagen recursiva
|
Tengo para un buen rato, modificaré el mensaje si tengo dudas gracias por todo el material. Saludos PD: Respecto a lo que acaba de comentar braulio-- ¿no daria overflow con estos datos? 6580797576738084736879 ^ 17 mod 3233 No te olvides que "m" siempre tiene que ser menor que el módulo. Cuando yo puse esos datos, no los puse para que sean usados todos juntos, si los ponés todos juntos, después como los separás? Esos son de 2 dígitos, pero si tenés que cifrar algo que no es un texto, vas a tener todo el espectro ascii. Si vos te fijas, yo puse 65^17 mod 3233 y luego 80^17 mod 3233, etc. Ok, perfecto.
|
|
|
En línea
|
|
|
|
WestOn
Desconectado
Mensajes: 272
El testamento Maya...
|
Buenas: No te olvides que "m" siempre tiene que ser menor que el módulo. Aiba que fallo... Yo por el momento no tengo dudas relacionado con lo que has publicado, pero lo sigo releyendo porque 'tiene sustancia' , pero si me gustaría saber en el lenguaje que se va a programar. ¿C/C++? ¿Phyton? Saludos
|
|
|
En línea
|
En mi cabeza existe una barrera espacio-tiempo de 4cm³. ¿Alguien sabe como eliminarla?.
|
|
|
APOKLIPTICO
Desconectado
Mensajes: 3.871
Toys in the attic.
|
Yo creo que el lenguaje idóneo sería C/C++, se que es un lenguaje de medio nivel, muy versatil y util, eficiente y optimizable. No estoy familiarizado con todos los lenguajes como para decir que "hay que usar C++", pero se que por ejemplo, Visual Basic no vamos a usar.
|
|
|
En línea
|
AMD Phenom II 1075T X6 @ 290 Mhz x 11 (HT 2036 Mhz NB Link 2616 Mhz) 1.23 Vcore ASUS M4A89GTD-PRO/USB3 2x2gb G-Skill RipjawsX DDR3 1600 Mhz CL7 (7-8-7-24-25-1T) Seagate 500 Gb XFX HD4850 512Mb GDDR3. 650 Mhz/995 Mhz 1.1 Tflops.
|
|
|
raul338
Desconectado
Mensajes: 2.633
La sonrisa es la mejor forma de afrontar las cosas
|
Habria que hacer la estructura del algoritmo, hacerlo en un lenguaje base tipo C/C++ ... y el que lo quiera que lo pase a otro lenguaje (yo pienso pasarlo a vb cueste lo que cueste ) Ademas, seria bueno hacerlo multilenguaje
|
|
|
En línea
|
|
|
|
bomba1990
|
para lo del lenguaje deberiamos hacerlo en pseudocodigo y algun lenguaje que decidamos entre todos(como c++) y despues cada quien lo puede pasar a otro lenguaje y lo postea
|
|
|
En línea
|
|
|
|
APOKLIPTICO
Desconectado
Mensajes: 3.871
Toys in the attic.
|
Habria que hacer la estructura del algoritmo, hacerlo en un lenguaje base tipo C/C++ ... y el que lo quiera que lo pase a otro lenguaje (yo pienso pasarlo a vb cueste lo que cueste ) Ademas, seria bueno hacerlo multilenguaje La eficiencia de VB es muy baja, un código en VB te tarda muchisimo más que en C++.
|
|
|
En línea
|
AMD Phenom II 1075T X6 @ 290 Mhz x 11 (HT 2036 Mhz NB Link 2616 Mhz) 1.23 Vcore ASUS M4A89GTD-PRO/USB3 2x2gb G-Skill RipjawsX DDR3 1600 Mhz CL7 (7-8-7-24-25-1T) Seagate 500 Gb XFX HD4850 512Mb GDDR3. 650 Mhz/995 Mhz 1.1 Tflops.
|
|
|
raul338
Desconectado
Mensajes: 2.633
La sonrisa es la mejor forma de afrontar las cosas
|
Pero funcionaria igual No te preocupes de la eficiciencia, esta claro que un lenguaje interpretado siempre sera mas lento que uno compilado. El que lo quiera pasar al lenguaje que quiera es libre de hacerlo. No desviemos el tema
|
|
|
En línea
|
|
|
|
APOKLIPTICO
Desconectado
Mensajes: 3.871
Toys in the attic.
|
Por supuesto, aparte, siempre se pueden hacer las funciones en C++, compilar una dll e importarlas en VB, yo lo he hecho muchas veces.
|
|
|
En línea
|
AMD Phenom II 1075T X6 @ 290 Mhz x 11 (HT 2036 Mhz NB Link 2616 Mhz) 1.23 Vcore ASUS M4A89GTD-PRO/USB3 2x2gb G-Skill RipjawsX DDR3 1600 Mhz CL7 (7-8-7-24-25-1T) Seagate 500 Gb XFX HD4850 512Mb GDDR3. 650 Mhz/995 Mhz 1.1 Tflops.
|
|
|
APOKLIPTICO
Desconectado
Mensajes: 3.871
Toys in the attic.
|
Mira esto: Calcular 31^100000000 mod 5200: #include <iostream> #include <ctime> using namespace std; int main() { long startime = clock(); long out = modpow(5200, 31, 100000000); cout << (float) (clock() - startime) / CLOCKS_PER_SEC; } long modpow(long modulus, long base, long exponent) { long Output = 1; for(int i = 1; i <= exponent; i++) { Output = (Output * base)%modulus; } return Output; }
Option Explicit Private Declare Function GetTickCount Lib "kernel32" () As Long Private Sub Form_Load() Dim starttime As Long Dim res As Long starttime = GetTickCount res = modpow(5200, 31, 100000000) MsgBox (GetTickCount() - starttime) End End Sub Function modpow(ByVal modulus As Long, ByVal base As Long, ByVal exponent As Long) Dim i As Long Dim output As Long output = 1 For i = 1 To exponent DoEvents output = (output * base) Mod modulus Next i modpow = output End Function
Resultados:C++: 4,391 Segundos. VB: 58 hs, 20 minutos. Relación: C++ es 47825 veces más rápido que VB. PD: Y si uso OpenCL y calculo con la GPU, puedo calcularlo 100 veces más rápido. Esto es en C++.
|
|
« Última modificación: 11 Octubre 2010, 07:07 am por APOKLIPTICO »
|
En línea
|
AMD Phenom II 1075T X6 @ 290 Mhz x 11 (HT 2036 Mhz NB Link 2616 Mhz) 1.23 Vcore ASUS M4A89GTD-PRO/USB3 2x2gb G-Skill RipjawsX DDR3 1600 Mhz CL7 (7-8-7-24-25-1T) Seagate 500 Gb XFX HD4850 512Mb GDDR3. 650 Mhz/995 Mhz 1.1 Tflops.
|
|
|
|
|