Qt-Vernam

Security

Source i (link to git-repo or to original if based on someone elses unmodified work):

Add the source-code for this project on opencode.net

0
Become a Fan
5.0

Available as/for:
Description:
latest ver. sources: https://code.launchpad.net/~i-vohmin/+junk/Qt-Vernam

Abstract

Qt-Vernam implements Vernam algorithm (OTP) to encrypt and decrypt text messages and files using message-long random keys. The OTP algorithm is proved to be invincible to all common methods of crypto-analysis.

Author

Ivan Vokhmin ,

Version

0.6.2 beta

Disclaimer

This program is a proof of concept. It was nor tested, nor certified for valuable data encryption.

Common usage case

1) Generate a keypair.
2) Give a receiver.rkey to desired person by a secure channel.
3) Encrypt a message using sender.key.
4) Send encrypted message via any insecure channel.
5) The receiver can decrypt the message securely.

Main threats

1) Message can be damaged while in transit. There is no CRC implemented.
2) Message can be altered if ANY of the key is known to man-in-the-middle.

Key generation

A key, which is used in OTP, must have the length of encrypted message.
There is three algorithms to generate the key:
Fast - uses built-in QT random number generator. May be weak depending on implementation.
Normal - uses fast algorithm + making it more safe by taking random bits from screenshot. Keys are merged by using bitwise XOR.
Hardened - uses normal algorithm + making it more safe by taking random user input. When this option is selected, an input dialog will be presented to user while the key is generated, and user must input any symbols using keyboard. These symbols (and the time between inputs) will be used for key hardening (with XOR).

Key types

There are two kinds of keys which are generated - sender.key and receiver.rkey. Sender key is used to encrypt message, receiver key - to decrypt them. The only difference between these keys is that sender keys also stores the number of bits already encrypted, to ensure that no part of the key will be used twice. The key can be used unless the number of used bits + message or file length is less than key size. Otherwise the key is depleted and a new keypair should be used. While receiver.rkey can be write-protected, sender.key must be always writeable to ensure that the key usage data is written.

Key size

One of main generation options is the key size.
The recommended key size is about 100 mb.

Message encryption

To encrypt a message, use encrypt option in file menu, then select mode (file or message). If the mode is set to message, input text message in given text field. If the mode is file, use select file button to select one file to encrypt.
To proceed with encryption, the valid (undepleted) sender key and valid output file name must be supplied.

Message decryption

To decrypt an encrypted message ( *.ems ), use decrypt option in file menu, where the appropriate receiver key and the path to message must be set. After those variables are set, decrypt! button must be pressed. The type of message is determined automatically. If the message contains text, it will be displayed in text field. If message contains file, a "save as" dialog will be presented, with the encrypted file name as a hint, however, user can give file any name.

Key explorer

To present sender key information, key explorer is used. It is located in the main program window. To view key information - use key selection button. If the key is valid, the following data is presented: key length, used bytes amount, remaining key length.

Known bugs

May fail at very big keys (~1 gb).

Next version features plan:
- optimize generators to work with portions of key, not the whole key at once. This will decrease speed, but improve stability with large ( >500 mb ) keys on machines with low memory.
Last changelog:

0.6.2 Misc ui improvements and lots of fixes
0.6.1 Random generator fix for more random init
0.6.0 Basic version with async key generators
0.5 Basic version


Ratings & Comments

0 Comments

Be the first to comment
Pling
0 Affiliates
Details
license
version 0.6.2 Beta
updated
added
downloads 24h 0
mediaviews 24h 0
pageviews 24h 0

Other Security:

KPSAD
joeinnes
last update date: 18 years ago

Score 5.0

userdatadefence
ch-40
last update date: 13 years ago

Score 5.0

kpwg
wusel1007
last update date: 12 years ago

Score 5.0

MyPasswordSafe
sneakin
last update date: 20 years ago

Score 5.0

NewPKI
newpki
last update date: 21 years ago

Score 5.0

knetfilter
genoni
last update date: 20 years ago

Score 5.0



System Tags