MINI-CONCURSO Programación (java/visual basic)

Topic created · 74 Mensajes · 6577 Visitas
  • din din din din din
    han cantado bingo!
    jejeje, premio, cifrado del César. Como bien dice reyhurbano, rot13 y rot47 lo que hacen es desplazar letras. Por ejemplo, si encriptas la letra A con rot13, lo que hace es cambiar la A por la letra que esté 13 posiciones más adelante. Y rot47 pues la cambia por la letra que esté 47 posiciones más adelante.
    Se llama cifrado del César en honor a Julio César, porque él usaba ese método de encriptación en sus mensajes a los generales.

    Pues bien, nuestro cifrado del césar particular no tiene como clave ni 13 ni 47. Tiene una clave que es secreta 😃
    Lo que sí os puedo decir es qué letras usamos, o cómo encriptamos ahora que ya habéis descubierto el sistema. Os explico:

    Lo primero de todo, vamos a llamarle X al número de desplazamientos. Segundo, trabajamos con sólo una pequeña parte de la tabla ASCII. oh! cielos qué es eso? Calma o te suelto una colleja! La tabla ascii es un conjunto de 256 letritas, o caracteres. Aquí están todos los 256: [http://www.cdrummond.qc.ca/cegep/informat/Professeurs/Alain/files/ascii.htm][0]">[http://www.cdrummond.qc.ca/cegep/inform][1] ... /ascii.htm
    Pero nosotros no usaremos tantos, porque muchos de esos caracteres no tienen representación, por ejemplo, el caracter 7 es "timbre", qué coño es eso?? xDDD muchos se usaban para comunicación con impresoras y dispositivos por el estilo.
    El caso es que no nos interesan, nosotros vamos a usar únicamente estos:

    Es decir, desde el 32, que es el espacio, hasta el 126 que es el gusanito este: ~ (ambos incluídos)
    En total, 95 caracteres.

    Vale, un ejemplo para ayudar a comprender cómo va el encriptado:
    Tenemos el mensaje: abc
    Queremos encriptarlo desplazándolo 3 veces, como hacía Julio César. Pues bien, vamos a la tabla y vemos que la "a" mínúscula es el número 97. Pues 97+3=100
    El 100 se corresponde con la letra: d
    Hacemos esto con el resto del mensaje y queda:
    def

    1. ¿Qué pasará si encriptamos el gusanito con una clave de 2 desplazamientos?
    2. ¿Qué ocurre si desplazamos la letra A (mayúscula) 95 veces?
    3. ¿Y si al signo de exclamación lo encriptamos con una clave de -2 (sí, negativo, en vez de positivo jeje)?

    Venga, pensad un poquitín, a ver si os ha quedado claro, y nos metemos a desencriptar el mensaje.

    [0]: <a href=
    [1]: http://www.cdrummond.qc.ca/cegep/inform

  • Manda huevos, a veces la explicación más sencilla hace comprender a la gente. De todo lo que me soltaste anteriormente salva no me enteré de nada. Resulta que ahora lo entiendo xDDDDDD

  • Bueno, no estoy de acuerdo, es una encriptacion cesar, bale, pero esa linea de encriptacion no es cesar, sino rot47, proque si fuese cesar(rot13), solo habria letras, y hay podemos encontrar letras y caracteres especiales, como ya antes he dicho yo, en mi otro post.

    explicacion rot47, variante:

    Hay otros sistemas de ofuscación poco utilizados con propósitos similares al ROT13. ROT13 sólo maneja letras y deja intactos el resto de caracteres, como los signos de puntuación, los números y los espacios en blanco. A causa de esto, el ROT13 es inapropiado para algunos propósitos, por ejemplo, ocultar la respuesta numérica de un enigma o manejar datos binarios arbitrarios.

    ROT47

    El ROT47 es una variante del ROT13 que, además de desordenar las letras básicas, también trata números y muchos otros caracteres. En lugar de usar la secuencia A-Z como alfabeto, el ROT47 utiliza un alfabeto más largo derivado de una codificación de caracteres llamada ASCII. El ASCII asocia letras, dígitos, signos de puntuación y otros caracteres especiales con una serie de números que van del 0 al 127. Visto en ASCII, el ROT13 cubre los códigos 65--90 y 97--122: las letras mayúsculas y minúsculas, respectivamente. En cambio, el ROT47 emplea 94 caracteres, desde ! (el signo de exclamación, código ASCII 33) a ~ (la tilde, código ASCII 126), rotándolos con un desplazamiento de 47. El uso de un alfabeto más largo está destinado a producir más ofuscación que el ROT13, pero el ROT47 se utiliza mucho menos.

  • Vamos a ver si nos entendemos juamarras:

    Cesar es una encriptacion basada, como ha dicho salva, en el desplazamiento de caracteres X posiciones. Rot13 se basa en que un desplazamiento de TRECE caracteres, y Rot47 en uno de CUARENTA Y SIETE caracteres a grandes rasgos, no te compliques la cabeza.

    Y fijate tambien que ya se ha especificado la cantidad de caracteres usados. Hemos dicho que la encriptacion está basada en Cesar. Yo creo que no da lugar a confusion 😛

  • vale jumarras, en ningún momento hemos dicho que la encriptación del césar sea exactamente igual que la rot13 o 47. Dijimos, que tanto la rot13 como la 47 se basaban en la del césar. Y así es, que luego el rot47 sea especialito y no trabaje con puntos bueno, eso ya son otras historias jeje. El caso es que hemos usado una variante de la idea de encriptación del césar. Echad un vistazo a las preguntas que he dejado, respondedlas y nos ponemos a programar, que la clave del mensaje aun no la habéis descifrado y sin ella, el mensaje sigue codificado jeje.

    Pero vamos poco a poco, que el concurso queremos que lo siga el máximo número de gente, y que no sea complicado 😃

  • @yandrac said:

    @Salvatore said:

    1. ¿Qué pasará si encriptamos el gusanito con una clave de 2 desplazamientos?
    2. ¿Qué ocurre si desplazamos la letra A (mayúscula) 95 veces?
    3. ¿Y si al signo de exclamación lo encriptamos con una clave de -2 (sí, negativo, en vez de positivo jeje)?

    1- Gusanito = ! (nº 32)
    2- Quedaría el nº 34
    3- Quedaria el gusanito (nº 126)

    1. Efectivamente, el gusanito es el 126. Si le sumamos 1, pasa a ser el numero 32 (hemos dicho que sólo usamos caracteres imprimibles, por tanto el 127 ya no entra y pasamos al 32 que es el primero). Y si le sumamos otro, sale el 33, que es el signo de exclamación como bien dices, aunque es el numero 33.

    2. nº 34? Tenemos sólo 95 caracteres (del 32 al 126 incluídos). Si desplazamos un caracter, 95 veces, es como si a un giro de 10º le sumas 360 jeje se vuelve a quedar la A mayúscula. Por tanto, se podrán usar claves mayores o iguales que 95? o no tiene mucho sentido?
    A=65
    65+95=160
    El caracter 160 se nos sale de rango. 160-126=34 (restamos 126, que es el último caracter de nuestro grupo)
    Es decir, que hay que empezar desde el caracter 31, a contar esos 34 desplazamientos que nos quedan.
    De forma que si quedase un desplazamiento, saldría el caracter 32 cierto? Por tanto:
    31+34=65
    Y el 65, es la A mayúscula, que es el carácter que queríamos codificar.

    Vamos, que hemos hecho una codificación cojonuda, recordadme que no usemos la clave 95 :icon_mrgreen:

    3. Efectivamente, si al caracter 33 (!) lequitamos 2: 33-2=31. Como se sale de rango, hacemos como en el anterior ejemplo pero al revés, tomando el extremo superior: 127.
    32-31=1 (es decir, que se nos ha salido de rango por 1)
    127-1=126 (pues nada, le restamos ese desplazamiento que nos queda al extremo superior)
    Es decir, queda el gusanito 😃

    Alguien sabría decirme, con qué otra clave podríamos haber encriptado la exclamación para que nos quedase el gusanito? Es que me dan por saco los números negativos...

  • Me parece que no hay ninguna manera más de decriptar el "!" para que de el gusanito, está claro que si fuera con números negativos y no los aceptase, "daría la vuelta", no sé si me entiendes.
    Que cuando un número sea menor de 32 inicie en el 126.
    Es decir: 33-3= al "}"
    Por lo tanto, si 33 es "!"
    33-2=31=126=~ 🙂
    Si no me habéis entendido lo vuelvo a explicar xD

  • @Anghios said:

    Me parece que no hay ninguna manera más de decriptar el "!" para que de el gusanito, está claro que si fuera con números negativos y no los aceptase, "daría la vuelta", no sé si me entiendes.
    Que cuando un número sea menor de 32 inicie en el 126.
    Es decir: 33-3= al "}"
    Por lo tanto, si 33 es "!"
    33-2=31=126=~ 🙂
    Si no me habéis entendido lo vuelvo a explicar xD

    Correccion:
    33=!
    126=~
    por lo tanto
    33+93=126,126 =~
    🙂 😃 xD

  • Si, cierto, pero esa era otra manera de decodificar ese cifrado. Es decir, si tomamos en cuenta que el número 32 es 0
    A partir de que un número menor de 32 sería un número negativo.
    Entonces, a partir de 0 (o 32) empezaría desde 126 (cualquier número que sea menor de 32, empezaría la cadena desde 126, depende de los números que restes.
    Entonces 33-5=123 ("{")
    Y claro, tomando esa decisión, si a 33, (!) le quitamos 2...
    33-2=126, ahí tenemos una nueva manera de decodificar el gusanito de las narices xD

  • Efectivamente Reyhurbano, eso es lo que se quería decir XD

    Si tenemos la (!) cuyo codigo ASCII es 33 y el gusanito es ~ y no podemos usar la triquiñuela de meter negativos, si cogemos el valor ASCII de ~ -> 126 y restamos 126(valor de ~)-33(valor de !) que nos queda? XD 93, sumamos 33+93 y tendremos el gusanito 🙂

    Creo que Salva quería decir que no se pudiera restar un numero a otro, solo con sumas (sino salva corrígeme, pero así lo he entendido yo xD) puesto que tu razonamiento anghios es el que ha empleado Salva en su explicación 😃