Exemplo n.º 1
0
def set_context_key_encrypt_decrypt_string(text: str, p: int, q: int):
    """
    Gera chaves privadas e públicas a partir dos parâmetros 'p' e 'q', criptografa
    o texto informado a partir do pâmetro text e posteriormente descriptografa o resultado.
    Todos os estados são salvos em um dicionário como contexto da criptografia para análise.
    As seguintes função são utilizadas para gerar esse contexto do dicionário:

    :func:`transform_string_to_number <rsa_core.rsa.util.transform_string_to_number>`
    :func:`calculate_n <rsa_core.rsa.key.calculate_n>`
    :func:`calculate_tocient <rsa_core.rsa.key.calculate_tocient>`
    :func:`select_e <rsa_core.rsa.key.select_e>`
    :func:`calculate_d <rsa_core.rsa.key.calculate_d>`
    :func:`encrypt_string <rsa_core.rsa.encrypt.encrypt_string>`
    :func:`decrypt_string <rsa_core.rsa.decrypt.decrypt_string>`

    :param text: string que representa o texto a ser criptografado
    :param p: número primo qualquer
    :param q: número primo qualquer
    :return: dicionário contento as seguintes chaves: 'plain_text', 'converted_text', 'p', 'q', 'n', 'tocient', 'e',
    'd', 'public_key', 'private_key', 'encrypted_text' e 'decrypted_text'
    """
    context = {}
    context['plain_text'] = text
    context['converted_text'] = transform_string_to_number(text)
    context['p'] = p
    context['q'] = q
    context['n'] = calculate_n(p, q)
    context['tocient'] = calculate_tocient(p, q)
    context['e'] = select_e(context['tocient'])
    context['d'] = calculate_d(context['e'], context['tocient'])
    context['public_key'] = (context['n'], context['e'])
    context['private_key'] = (context['n'], context['d'])
    context['encrypted_text'] = encrypt_string(context['plain_text'], context['n'], context['e'])
    context['decrypted_text'] = decrypt_string(context['encrypted_text'], context['n'], context['d'])
    return context
Exemplo n.º 2
0
 def setUp(self):
     self.p = 17
     self.q = 11
     self.n = calculate_n(self.p, self.q)
     self.phi = calculate_tocient(self.p, self.q)
     self.e = select_e(self.phi)
     self.d = calculate_d(self.e, self.phi)
     self.number = 88
     self.text = "i"
     self.encrypted_number = encrypt_number(self.number, self.n, self.e)
     self.encrypted_text = encrypt_string(self.text, self.n, self.e)
Exemplo n.º 3
0
 def setUp(self):
     self.p = 17
     self.q = 11
     self.n = calculate_n(self.p, self.q)
     self.phi = calculate_tocient(self.p, self.q)
     self.e = select_e(self.phi)
     self.d = calculate_d(self.e, self.phi)
     self.number = 88
     self.encrypted_number = encrypt_number(88, self.n, self.e)
     self.decrypted_number = decrypt_number(44, self.n, self.d)
     self.text = "i"
     self.converted_text = 105
     self.encrypted_text = encrypt_string("i", self.n, self.e)
     self.decrypted_text = decrypt_string(95, self.n, self.d)
     self.public_key = (self.n, self.e)
     self.private_key = (self.n, self.d)
Exemplo n.º 4
0
def set_context_encrypt_string(text: str, n: int, e: int):
    """
    Criptografa o texto informado a partir da chave informada ('n', 'e').
    Todos os estados são salvos em um dicionário como contexto da criptografia para análise.
    As seguintes função são utilizadas para gerar esse contexto do dicionário:

    :func:`transform_string_to_number <rsa_core.rsa.util.transform_string_to_number>`
    :func:`encrypt_string <rsa_core.rsa.encrypt.encrypt_string>`

    :param text: string que representa o texto a ser criptografado
    :param n: parte da chave pública
    :param e: parte da chave pública
    :return: dicionário contento as seguintes chaves: 'plain_text', 'converted_text', 'n', 'e', 'public_key'
    e 'encrypted_text'
    """
    context = {}
    context['plain_text'] = text
    context['converted_text'] = transform_string_to_number(text)
    context['n'] = n
    context['e'] = e
    context['public_key'] = (context['n'], context['e'])
    context['encrypted_text'] = encrypt_string(context['plain_text'], context['n'], context['e'])
    return context
Exemplo n.º 5
0
 def test_encrypt_text(self):
     encrypted_message = encrypt_string(self.text, self.n, self.e)
     self.assertEqual(encrypted_message, self.encrypted_text,
                      ENCRYPT_MESSAGE)