Beispiel #1
0
def CIFRAR(clave, mensaje):
    # Codificar el contenido del mensaje
    mensaje_json = json.dumps(mensaje)

    # Cifrar los datos con AES (GCM)
    motor_AES = aes.iniciarAES_GCM(clave)
    cifrado, cifrado_mac, cifrado_nonce = aes.cifrarAES_GCM(
        motor_AES, mensaje_json.encode("utf-8"))

    return cifrado, cifrado_mac, cifrado_nonce
Beispiel #2
0
def cifraPaso3(emisor, receptor, KET, E, t_ne):
    """ Cifra el mensaje del paso 1, y devuelve el cifrado """
    # Codifica el contenido (los campos binarios en una cadena) y contruyo el mensaje JSON
    mensaje_ET = [E, t_ne.hex()]
    json_ET = json.dumps(mensaje_ET)
    print(emisor + " -> " + receptor + " (descifrado): " + json_ET)

    # Cifra los datos con AES GCM
    motor_AES = funciones_aes.iniciarAES_GCM(KET)
    cifrado_T, mac_T, nonce_T = funciones_aes.cifrarAES_GCM(motor_AES, json_ET.encode("utf-8"))

    return cifrado_T, mac_T, nonce_T
Beispiel #3
0
def cifrar12(clave, mensaje):
    mensaje[2] = mensaje[2].hex()  # Ra

    # Codificar el mensaje
    mensaje_json = json.dumps(mensaje)

    # Cifrar el mensaje con AES (GCM)
    motor_AES = aes.iniciarAES_GCM(clave)
    cifrado, cifrado_mac, cifrado_nonce = aes.cifrarAES_GCM(
        motor_AES, mensaje_json.encode("utf-8"))

    return cifrado, cifrado_mac, cifrado_nonce
Beispiel #4
0
def cifraPaso1(emisor, receptor, KET, E, t_ne):
    """ Cifra el mensaje del paso 1, y devuelve el cifrado """
    # Codifica el contenido (los campos binarios en una cadena) y contruyo el mensaje JSON
    msg_TE = []
    msg_TE.append(E)
    msg_TE.append(t_ne.hex())
    json_ET = json.dumps(msg_TE)
    print(emisor + "->" + receptor + " (descifrado): " + json_ET)

    # Cifra los datos con AES GCM
    aes_engine = funciones_aes.iniciarAES_GCM(KET)
    t_cifrado, t_mac, t_nonce = funciones_aes.cifrarAES_GCM(
        aes_engine, json_ET.encode("utf-8"))

    return t_cifrado, t_mac, t_nonce
Beispiel #5
0
def cifrar23(random, receptor, clave, cifrado):
    mensaje = [random.decode("utf-8", "ignore"),
               receptor,
               clave.decode("utf-8", "ignore"),
               cifrado[0].decode("utf-8", "ignore"),
               cifrado[1].decode("utf-8", "ignore"),
               cifrado[2].decode("utf-8", "ignore")]

    # Codificar el contenido del mensaje
    mensaje_json = json.dumps(mensaje)

    # Cifrar los datos con AES (GCM)
    motor_AES = aes.iniciarAES_GCM(clave)
    cifrado, cifrado_mac, cifrado_nonce = aes.cifrarAES_GCM(motor_AES, mensaje_json.encode("utf-8"))

    return cifrado, cifrado_mac, cifrado_nonce
Beispiel #6
0
cifrado_mac = socket_Bob.recibir()
cifrado_nonce = socket_Bob.recibir()

_, t_nb = descifraPasos1y3("B", KBT, cifrado, cifrado_mac, cifrado_nonce)

# Paso 2) T -> B : KBT(K1, K2, Nb) en AES-GCM
# A empezar a resolver!!!!!!!
print("Comienza el paso 2 en T")

mensaje_B1 = [K1.hex(), K2.hex(), t_nb.hex()]
json_EB = json.dumps(mensaje_B1)

print(" T -> B (descifrado): " + json_EB)

motorB_AES = funciones_aes.iniciarAES_GCM(KBT)
cifrado_B1_T, mac_B1_T, nonce_B1_T = funciones_aes.cifrarAES_GCM(
    motorB_AES, json_EB.encode("utf-8"))

socket_Bob.enviar(cifrado_B1_T)
socket_Bob.enviar(mac_B1_T)
socket_Bob.enviar(nonce_B1_T)

# Crear el socket de escucha de Alice (5550)
print("Esperando a Alice...")

socket_Alice = SOCKET_SIMPLE_TCP('127.0.0.1', 5550)
socket_Alice.escuchar()

# Paso 3) A -> T : KAT(Alice, Na) en AES-GCM
cifrado_A = socket_Alice.recibir()
mac_A = socket_Alice.recibir()
nonce_A = socket_Alice.recibir()