{"id":23363945,"url":"https://github.com/decipher2k/librincewind","last_synced_at":"2025-06-20T19:32:43.187Z","repository":{"id":222217409,"uuid":"756613292","full_name":"decipher2k/LibRincewind","owner":"decipher2k","description":"A library for hardening symmetrical encryption algorithms against \"known keyspace\" attacks","archived":false,"fork":false,"pushed_at":"2024-10-28T16:40:40.000Z","size":97,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-12-21T13:12:40.620Z","etag":null,"topics":["encryption","known-keyspace-attacks","symmetrical","symmetrical-encryption"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/decipher2k.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-02-13T00:22:25.000Z","updated_at":"2024-10-28T16:40:44.000Z","dependencies_parsed_at":null,"dependency_job_id":"c50d1da0-5bf2-48c0-bd6a-6745dcc99829","html_url":"https://github.com/decipher2k/LibRincewind","commit_stats":null,"previous_names":["decipher2k/librincewind"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/decipher2k%2FLibRincewind","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/decipher2k%2FLibRincewind/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/decipher2k%2FLibRincewind/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/decipher2k%2FLibRincewind/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/decipher2k","download_url":"https://codeload.github.com/decipher2k/LibRincewind/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":238754220,"owners_count":19524904,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["encryption","known-keyspace-attacks","symmetrical","symmetrical-encryption"],"created_at":"2024-12-21T13:12:43.234Z","updated_at":"2025-02-13T23:39:19.880Z","avatar_url":"https://github.com/decipher2k.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# LibRincewind\n\nA bruteforce protected aproach for encryption using plain text ASCII passwords.\u003cbr\u003e\n\u003cbr\u003e\nWhat is it about?\u003cbr\u003e\n\u003cbr\u003e\nNormal encryption of plain text passwords can theoretically be cracked because decryption attempts with a failure password will result in non-ASCII data.\u003cbr\u003e\n(Known Key Space Attack)\u003cbr\u003e\n\u003cbr\u003e\nLibRincewind combines any symmetrical algorithm with a rotational algorithm so that false tries can't be distinguished from valid ones.\u003cbr\u003e\n\u003cbr\u003e\nHow does it work?\u003cbr\u003e\n\u003cbr\u003e\n1.) The plain text gets encrypted using a password\u003cbr\u003e\n2.) The encrypted result is rotated using a random key for each character until it is valid ASCII\u003cbr\u003e\n3.) The key gets encrypted with another password\u003cbr\u003e\n\u003cbr\u003e\nCaveats:\u003cbr\u003e\n\u003cbr\u003e\n-The length of the plain text can be guessed, because it equals the length of the encryption/decryption key\u003cbr\u003e\n-The algorithm is still prone to wordlist attacks\u003cbr\u003e\n-The Demo is using Blowfish as the base algorithm, which is vulnerable to attacks using quantum computers. Yet the library is independend of the base algorithm, thus Blowfish can easily be replaced with AES or RC6 by creating a custom Plugin.\u003cbr\u003e\n-The Demo is using the DotNet Pseudo-RNG. Replace it with a QRNG in real world applications.\u003cbr\u003e\n-The method practically halves the password length compared to the really used password.\u003cbr\u003e\n\n\u003cbr\u003e\nUsage:\u003cbr\u003e\n\u003cbr\u003e\nEncryption of passwords using a main password (password managers):\u003cbr\u003e\nCRincewind rw=new CRincewind(\"pluginlibrary.dll\", 512);\u003cbr\u003e\nString enc=rw.encryptString(\"data\",\"password1\",\"password2\");\u003cbr\u003e\nString dec=rw.decryptString(enc,\"password1\",\"password2\");\u003cbr\u003e\n\u003cbr\u003e\nPassword authentication (password login):\u003cbr\u003e\nCRincewind rw=new CRincewind(\"pluginlibrary.dll\", 512):\u003cbr\u003e\n//store this in the db\u003cbr\u003e\nString enc=rw.generatePwAuth(password);\u003cbr\u003e\n//test for validity\u003cbr\u003e\nbool valid=isPwAuthValid(password,enc);\u003cbr\u003e\n\u003cbr\u003e\nCreating custom plugins:\u003cbr\u003e\n\u003cbr\u003e\nImplement the interface found in LibRincewindPlugin.\u003cbr\u003e\n\u003cbr\u003e\nToDo:\u003cbr\u003e\nIV's for each character\u003cbr\u003e\u003cbr\u003e\nUpdate v1.1:\u003cbr\u003e\n-Added demo sourcecode\u003cbr\u003e\n-Added password authentication\n\u003cbr\u003e\u003cbr\u003e\nContact E-Mail: decipher2k20@gmail.com\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdecipher2k%2Flibrincewind","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdecipher2k%2Flibrincewind","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdecipher2k%2Flibrincewind/lists"}