Stream-ciphers

eStream

eStream project

Stream ciphers video - 1

Stream ciphers video - 2

In order to understand hex and type parameters read HASH

Sosemanuk

spec

Description: Stream cipher and eStream winner.

Uses: Performance is very impportant.

Key size: from 128 to 256 bits, guaranteed security is only 128 bits.

Iv size: 128 bits

Salsa20

spec

Description: Stream cipher and eStream winner.

Uses: Performance is very impportant.

Key size: varibale

Iv size: 64 bits

How to ???

import requests
import json
import os,binascii

def sending(message):
    url = 'http://127.0.0.1:6613/'
    response = requests.post(url, data=message)
    print response.content
    return response.content

def stream(data_js):
    req=json.loads(data_js)
    print "Sosemanuk enc \n " + json.dumps(req) +"\n"
    data_js_n=sending(json.dumps(req))
    answ=json.loads(data_js_n)
    print "Recived enc: \n" + (json.dumps(answ)) +"\n\n\n"
    dec='{"algorithm":"SOSEMANUK","plaintext":"","iv":"b05691ef92cb9c9bf77e5613819fc4ea",\
    "version":1,"key":"7f685ba92789f0d8d421038f2b1b4fcd73be586d81795ec3ab7939975b7b896e","operation":"dec","type":"string"}'
    req=json.loads(dec)
    req["plaintext"]=answ["result"]
    print "Sosemanuk dec \n " + json.dumps(req) +"\n"
    data_js_n=sending(json.dumps(req))
    answ2=json.loads(data_js_n)
    print "Recived dec: \n" + (json.dumps(answ2)) +"\n\n\n"

data_js='{"algorithm":"SOSEMANUK","plaintext":"Hello world!","hex":0,"iv":"b05691ef92cb9c9bf77e5613819fc4ea",\
"version":1,"key":"7f685ba92789f0d8d421038f2b1b4fcd73be586d81795ec3ab7939975b7b896e","operation":"enc","type":"string"}'
stream(data_js)

In this example we encrypt and decrypt Hello world! string with the key and iv given

On data_js["algorithm"] can be SOSEMANUK or SALSA20

Json to enc string (key and iv depends on algorithm you chose)

{"algorithm":"estream flavor","plaintext":"your string","hex": BOOL,"iv":"Hex stringsize=16,32",
"version":1,"key":"Hex stringsize=32-64","operation":"enc","type":"string"}

Json to dec string (key and iv depends on algorithm you chose)

{"algorithm":"estream flavor","plaintext":"your hex enc string ","iv":"Hex stringsize=16,32",
"version":1,"key":"Hex stringsize=32-64","operation":"dec","type":"string"}

Json to enc file (key and iv depends on algorithm you chose)

{"algorithm":"estream flavor","file":"your file","iv":"Hex stringsize=16,32",
"version":1,"key":"Hex stringsize=32-64","operation":"enc","type":"file"}

Json to dec file (key and iv depends on algorithm you chose)

{"algorithm":"estream flavor","file":"your file","iv":"Hex stringsize=16,32",
"version":1,"key":"Hex stringsize=32-64","operation":"dec","type":"file"}

Last updated