Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Consulta sobre la encriptación #307

Open
7 tasks done
diegocostares opened this issue Nov 30, 2021 · 4 comments
Open
7 tasks done

Consulta sobre la encriptación #307

diegocostares opened this issue Nov 30, 2021 · 4 comments
Assignees
Labels
Tarea 3 Dudas sobre la T3

Comments

@diegocostares
Copy link

diegocostares commented Nov 30, 2021

Prerrequisitos

  • Leí las reglas del foro (https://github.com/IIC2233/syllabus/issues/1)
  • Busqué en las issues si ya preguntaron mi duda y no encontré nada parecido (https://github.com/IIC2233/syllabus/issues)
  • Revisé el compilado de dudas de la tarea y no encontré una issue similar a la mía (Duda SOLES_ROBADOS Syllabus#293)
  • Mi duda no se trata sobre una librería, built-in o mala práctica, ya que eso se pregunta en la issue creada para ello.
  • Mi duda no se trata de un tema administrativo o personal, ya que en ese caso debo contactar a mi profe, al Jefe de Bienestar o al correo del curso (https://iic2233.github.io/contacto/)
  • Utilizaré un título descriptivo y llenaré correctamente esta plantilla
  • De ser necesario, solo colocaré código simple que permita explicar mi problema o duda, ya que compartir código de esta evaluación puede ser considerado copia

Duda

Que es lo que ocurre y se debe hacer cuando se compara el primer byte de la parte B y el primero de la parte C y estos son 5 y 3? ¿Puedo asumir que si B[0] o C[0] son iguales a 5 o 3 no haga nada? No me queda muy claro que tipo de comparaciones tendríamos que agregar para estos casos...

Tomando casi el mismo ejemplo del enunciado(cambie el 8 por un 5) me gustaría saber que pasa si se tiene algo así:

A = b’\x05\x02\x05’
B = b’\x05\x04\t’ 3
C = b’\x03\x03’
@diegocostares diegocostares added the Tarea 3 Dudas sobre la T3 label Nov 30, 2021
@fagiannoni fagiannoni self-assigned this Dec 1, 2021
@fagiannoni
Copy link

¡Hola @diegocostares! 👋

Desglosando un poco tus preguntas:


Que es lo que ocurre y se debe hacer cuando se compara el primer byte de la parte B y el primero de la parte C y estos son 5 y 3?

  • En tal caso se sigue el mismo método de encriptación descrito en el enunciado, es decir: al notar que B[0] (5) es mayor a C[0] (3) nos damos cuenta de que se cumple la condición. Luego, el resultado a retornar será de la forma A B C n con n igual a cero luego de intercambiar los 3 por 5 y viceversa.

¿Puedo asumir que si B[0] o C[0] son iguales a 5 o 3 no haga nada?

Si es que te refieres a que sean iguales entre si:

  • Si es que B[0] == C[0], entonces no se cumple que B[0] es mayor a C[0]. Por lo tanto, entras al caso en que no se cumple la condición y el resultado será de la forma B A C n con n igual a uno (sin intercambiar los 3 por 5).

Si es que te refieres a que sean distintos entre si:

  • Si es que B[0] es 5 y C[0] es 3, entonces se cumple la condición y entramos al caso asociado a n igual cero.
  • Si es que B[0] es 3 y C[0] es 5, entonces no se cumple la condición y entramos al caso asociado a n igual uno.

Tomando casi el mismo ejemplo del enunciado(cambie el 8 por un 5) me gustaría saber que pasa si se tiene algo así:
A = b’\x05\x02\x05’
B = b’\x05\x04\t’
C = b’\x03\x03’

  1. En este caso que mencionas, al igual que en el ejemplo del enunciado, se cumple que B[0] es mayor a C[0] por lo que se cumple la condición, asique sabemos que debemos intercambiar los 3 por 5 y luego retornar A B C n con n igual a cero.
  2. Primero, intercambiamos todos los 3 por 5 en las secuencias, obteniendo los siguientes resultados:
    A = b’\x03\x02\x03’
    B = b’\x03\x04\t’
    C = b’\x05\x05’
  3. Luego, el resultado queda de la siguiente manera:
    b’\x03\x02\x03\x03\x04\t\x05\x05\x00’

Espero se hayan resueltos tus dudas, cualquier otra cosa puedes volver a preguntar.

Saludos y ¡mucho éxito! 💪

@diegocostares
Copy link
Author

diegocostares commented Dec 1, 2021

Hola @fagiannoni entiendo el resultado, pero mi problema esta a la hora de desencriptar, me surgen un montón de problemas ya que ahora la condición de tamaño del B[0] y C[0] ya no se cumplen :c

Si es que solo el B[0] = 5 se cambiaría por 3 y ya no tendría como hacer la comparación... Por eso quería hacer el supuesto de que ademas de que B[0] > C[0], se tiene que cumplir que B != (5 o 3) y C[0] != (5 o 3)

@fagiannoni
Copy link

No me queda muy clara tu pregunta, pero te recomiendo considerar que para desencriptar sigas los mismos pasos pero en orden inverso. Por lo tanto, si sabes que al encriptar intercambiaste los 3 por 5, entonces al desencriptar deberías comenzar por intercambiarlos de vuelta para llegar a los valores originales. Respecto a esto, recuerda que el n al final del resultado encriptado te indica si hubo o no intercambio al momento de encriptar. Con esto es suficiente para reconstruir los valores originales.

Espero haber aclarado tu duda 😃

@diegocostares
Copy link
Author

Uff me estaba complicando por nada, muchas gracias!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Tarea 3 Dudas sobre la T3
Projects
None yet
Development

No branches or pull requests

2 participants