Exemple #1
0
 def generate_hash(self):
     self._get_keys()
     c1 = DES.encrypt(self.text, self.key1, padding=False)
     c2 = DES.encrypt(self.text, self.key2, padding=False)
     zeros = '0' * 16
     h1 = hex(bitarray2int(string2bits(c1)))[2:]
     h1 = zeros[len(h1):] + h1
     h2 = hex(bitarray2int(string2bits(c2)))[2:]
     h2 = zeros[len(h2):] + h2
     return h1 + h2
Exemple #2
0
 def encrypt(self):
     text = self.textEdit.toPlainText()
     key = self.textEdit_2.toPlainText()
     print(key)
     print(text)
     des = DES()
     encrypt_text = des.encrypt(key, text)
     print(base64.b64encode(encrypt_text))
     self.textEdit_3.setText(str(base64.b64encode(encrypt_text))[2:-2])
Exemple #3
0
def des_method(client_socket):

    # send methond message
    method_message = "method:des"
    try:
        client_socket.send(method_message)
        client_socket.recv(1024)
    except:
        client_socket.close()
        print "\n[*] Connection is broke."
        return

    # send des key
    print "[*] Please enter the key, and the length must longer than 8 characters."
    while True:
        key_text = raw_input("> ")
        if len(key_text) > 8:
            break
        else:
            print "[!] The length must longer than 8 characters.\
                    Please try again:)."
    try:
        client_socket.send(key_text)
        client_socket.recv(1024)
    except:
        client_socket.close()
        print "\n[*] Connection is broke."
        return

    print "[*] Please enter the message:"
    
    # send encrypted message
    while True:
        try:
            plain_text = raw_input('> ')
            cipher_text = DES.encrypt(plain_text, key_text)
            print "[*] The cipher is [%s]" % cipher_text
            client_socket.send(cipher_text)
            response_content = client_socket.recv(1024)

            print response_content

        except:
            client_socket.close()
            print "\n[*] Connection is broke."
            return
Exemple #4
0
from des import DES
a = DES("hllowrld", "0123456789abcdef")
print a.encrypt()

# Author: soachishti ([email protected])
# Link: http://page.math.tu-berlin.de/~kant/teaching/hess/krypto-ws2006/des.htm

from des import DES

d = DES()

print "\n" + "=" * 5 + "HEX Demo" + "=" * 5 + "\n"

hex_message = "0123456789abcdef"
key = "133457799BBCDFF1"  # Must be hex
encryted = d.encrypt(hex_message, key)
decrypted = d.decrypt(encryted, key)

print "Message: ", hex_message
print "Key: ", key
print "Encryted: ", encryted
print "Decrypted: ", decrypted

print "\n" + "=" * 5 + "ASCII Demo" + "=" * 5 + "\n"

ascii_message = "OwaisAli"
hex_message = d.process_message(ascii_message)
encryted = d.encrypt(hex_message, key)
decrypted = d.decrypt(encryted, key)

print "ASCII Message: ", ascii_message
print "Hex Message: ", hex_message
print "Key: ", key
print "Encryted: ", encryted
print "Decrypted: ", decrypted.decode('hex').split('\0')[0]
from des import DES

while True:
    mode = input('Select DES mode (E: Encryption, D: Decryption)\nor Enter Q to quit\nSelection: ')
    if mode == 'Q' or mode == 'q':
        break

    elif mode == 'E' or mode == 'e':
        key = input('Enter the key in hex: ')
        plain = input('Enter the plain text in hex: ')
        des = DES(key=key, plain=plain)
        print('Cipher text: ' + des.encrypt())

    elif mode == 'D' or mode == 'd':
        key = input('Enter the key in hex: ')
        cipher = input('Enter the cipher text in hex: ')
        des = DES(key=key, cipher=cipher)
        print('Plain text: ' + des.decrypt())

    print()
from des import DES


d = DES('qwertyui')

cipher = d.encrypt('hello world!')

print(cipher)

deciphered = d.decrypt(cipher, msg_in_bits=True)

print(deciphered)
Exemple #8
0
import os
import random
import threading
import time

from des import DES

d = DES()
input = 'test'
c = d.encrypt(input)[0]


def des_brute_force(key: list):
    d.subkeys = d._prepare_keys(key)
    return d.decrypt(c).strip() == input


def random_key():
    return random.choices([0, 1], k=64)


class Task(threading.Thread):
    def run(self):
        print('Starting {}'.format(self.name))
        start = time.time()
        while True:
            r_k = random_key()
            if des_brute_force(r_k):
                end = time.time()
                print('Found key: {}'.format(r_k))
                print('Elapsed: {}s'.format(end - start))
Exemple #9
0
def main(f_input="input.txt"):
    cipher = DES()
    #cipher.encrypt("abcdefgh")
    c = cipher.encrypt(f_input)
    p = cipher.decrypt(c)
Exemple #10
0
def mix_method(client_socket):
    # send method
    method_message = "method:mix"
    client_socket.send(method_message)
    client_socket.recv(1024)

    prime_length = 512
    rsaKeys = rsa.RSAKey()
    pub_key_client, priv_key_client = rsaKeys.gen_keys(prime_length)

    # send public key
    print "[*] RSA Keys generated. Sending public key to the server..."
    pub_key_string_client = str(pub_key_client[0]) + "," + str(pub_key_client[1])
    print pub_key_string_client
    try:
        client_socket.send(pub_key_string_client)
    except:
        client_socket.close()
        print "\n[*] Connection is broke."
        return
 
    print "[*] Public key sent. Waiting for the server public key..."

    # waiting for public key of the client
    print "Wating for public key of the server"
    try:
        pub_key_string_server = client_socket.recv(2048)
        pub_key_array_server = pub_key_string_server.split(',')
        pub_key_server = (long(pub_key_array_server[0]), long(pub_key_array_server[1]))
    except:
        client_socket.close()
        print "\n[*] Connection is broke."
        return

    print "[*] Server public key accepted."
    print pub_key_server

    # generate des key
    print "[*] Please enter des key, and the length must longer than 8 characters."
    while True:
        des_key = raw_input("> ")
        if len(des_key) > 8:
            break
        else:
            print "[!] The length must longer than 8 characters.\
                    Please try again:)."

    # encryte des key with server public key
    rsaKeys = rsa.RSAKey()
    try:
        client_socket.send(rsaKeys.encrypt(pub_key_server, des_key))
        print client_socket.recv(1024)
    except:
        client_socket.close()
        print "\n[*] Connection is broke."
        return

    # send encrypted digest
    print "[*] Please enter the message."
    while True:
        try:
            plain_text = raw_input('> ')
            digest_text = sha1.sha1(plain_text)
            print "[*] The digest is [%s]" % digest_text
            client_socket.send(rsaKeys.encrypt(priv_key_client, digest_text))
            response_content = client_socket.recv(1024)
            print response_content
            cipher_text = DES.encrypt(plain_text, des_key)
            client_socket.send(cipher_text)
            response_content = client_socket.recv(1024)
            print response_content
        except:
            client_socket.close()
            print "\n[*] Connection is broke."
            return
Exemple #11
0
 def hexdigest(self):
     self._pad_key()
     c = DES.encrypt(self.text, self.deskey, padding=False)
     zeros = '0' * 16
     h = hex(bitarray2int(string2bits(c)))[2:]
     return zeros[len(h):] + h
Exemple #12
0
    
text = ''.join([char for char in text.lower() if char in 'abcdefghijklmnopqrstuvwxyz'])

def build_freq(text):
    freq = {char: 0 for char in 'abcdefghijklmnopqrstuvwxyz'}
    for char in text:
        if char in freq:
            freq[char] += 1
    return freq

def plot(text, max_freq_plaintext, label, marker):
    freq = build_freq(text)
    rel_freq = {char: freq[char]/max_freq_plaintext for char in freq}
    plt.plot(sorted(rel_freq.values(), reverse=True), label=label, marker=marker)

ccipher = CaeserCipher()
vcipher = VigenereCipher("cryptography")
pcipher = PlayfairCipher("cryptography")
dcipher = DES()

max_freq_plaintext = max(build_freq(text).values())
plot(text, max_freq_plaintext, 'Plaintext', '>')
plot(ccipher.encrypt(text), max_freq_plaintext, 'Caeser Cipher', '<')
plot(vcipher.encrypt(text), max_freq_plaintext, 'Vigenere Cipher', '+')
plot(pcipher.encrypt(text), max_freq_plaintext, 'Playfair Cipher', 'x')
plot(dcipher.encrypt("monarchy", text), max_freq_plaintext, 'DES', 'o')
plt.xlabel('Frequency ranked letters')
plt.ylabel('Relative frequency')
plt.title("Simmon's Experiment")
plt.legend()
plt.show()