¿Cómo puedo diseñar un cifrador y descifrador de cifrado César sin usar componentes de circuito no programables?

0

Mi dispositivo debería poder tomar una entrada de A-Z y otra entrada de 0-25 y finalmente una opción de cifrado o descifrado. Actualmente le he dado a A un código de 0000, B 0001 ... y así la salida será el resultado de un sumador de 4 bits (para cifrado). Me doy cuenta de que mi habilidad con los circuitos no es profunda, por lo que cualquier forma de apoyo sería apreciada. Otro desafío es mostrar cada una de las letras después de recibir la salida.  PD. También me doy cuenta de que el circuito mostrado es primitivo y probablemente incorrecto.

    
pregunta lal

1 respuesta

-2

Aunque es simple en software con la función mod con un For Loop from 1 to n en lógica discreta, no es trivial. Vemos que un Adder es útil para rotar el "Código" para un carácter Ascii, pero también podemos usar la memoria ya que esto no ocuparía mucho. Sin embargo, trate de definir la tabla de verdad básica para cronometrar cada una de las lógicas iterativas en un mapa de funciones de alto nivel, luego considere una tabla de búsqueda de memoria en lugar de un sumador que debe verificar si hay símbolos no alfanuméricos.

Puedes considerar todas las opciones para la arquitectura.

La implementación completa podría estar dirigida a un FPGA.

Esta no es una solución completa, pero uno tiene que comenzar en algún lugar y definir todas las suposiciones primero cómo funciona, en lugar de volcar un diagrama de bloques primitivo y decir ayuda.

  • tabla de caracteres ascii válida,
    límites de caracteres,
    reglas para incluir solo caracteres alfanuméricos,
    y dejar otros caracteres válidos como están. tales como: /; [] {}

Uno puede elegir la arquitectura o considerar todas las opciones desde el sumador completo (FA) hasta la tabla de búsqueda de memoria para cada personaje.

Uno debe determinar si la entrada es válida para cada cadena, carácter y memoria de reserva para esta longitud limitada a un valor máximo.

Luego, cada carácter se "maneja" para comparar si es elegible para ROT-N, luego excute y escriba el resultado concatenado a la cadena de resultados, luego verifique si la cadena LEN ha bajado hasta cero.

Las funciones lógicas deben definirse en un nivel alto y luego dividirse en reglas más pequeñas. Aquí hay una forma de usar funciones de colores asignadas y una tabla de verdad para un algoritmo de alto nivel.

CaesarCipheresunadelasformasmásdébilesdecifradoconunaentropíamuybaja.

PeroluegofueutilizadoporJulius,porloquetieneuninteréshistóricoparalosprincipiantes.

Yaqueseencuentrafácilmenteenlaweb,nodaréningunainformaciónredundante.

ROT-13esuncasoespecialqueseusaenelregistrodeWindowsdondelosnombresderutacompletossealmacenanpormotivosmenoresconofuscación.

InputABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzOutputNOPQRSTUVWXYZABCDEFGHIJKLMnopqrstuvwxyzabcdefghijklm

enlace

Jul qvq gur puvpxra pebff gur ebnq?
Gb trg gb gur bgure fvqr!

enlace

    
respondido por el Tony EE rocketscientist

Lea otras preguntas en las etiquetas