Skip to content

Latest commit

 

History

102 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LibRincewind

A bruteforce protected aproach for encryption using plain text ASCII passwords.

What is it about?

Normal encryption of plain text passwords can theoretically be cracked because decryption attempts with a failure password will result in non-ASCII data.


LibRincewind combines any symmetrical algorithm with a rotational algorithm so that false tries can't be distinguished from valid ones.
The trick is how the ASCII code is being rotated.

Updates
17.04.2025
-The encryption of the rotated data has been removed
-Updated the demo

WIP
A password manager using LibRincewind is currently being developed.

How does it work?

1.) The text is rotated using a random key for each character until it is valid ASCII
2.) The key gets encrypted with a password using a base algorithm.

Caveats:

-The length of the plain text can be guessed, because it equals the length of the encryption/decryption key
-The algorithm is still prone to wordlist attacks
-The Rotation is using normal bitshifts, no circular shifting. thus there is some statistical imablance, which could make it possible to guess which symbols could be correct. It also limits the key to 6 symbols per byte.

so when encrypting an 8 letter password, it will result in
6^8 = 1.679.616
false positives which can't be distinguished from the real password, while requiring the same computation power for an attack.


Usage:

Encryption of passwords using a main password (password managers):
CRincewind rw=new CRincewind("pluginlibrary.dll", 512);
String enc=rw.encryptString("data","password1","password2");
String dec=rw.decryptString(enc,"password1","password2");

Creating custom plugins:

Implement the interface found in LibRincewindPlugin.

ToDo:
IV's for each character

Update v1.1:
-Added demo sourcecode
-Added password authentication

Contact E-Mail: decipher2k20@gmail.com

About

A library for hardening symmetrical encryption algorithms against bruteforcing when encrypting ASCII passwords.

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages