{"id":16834978,"url":"https://github.com/dchest/geli-threefish","last_synced_at":"2025-10-30T07:34:02.791Z","repository":{"id":10613328,"uuid":"12831988","full_name":"dchest/geli-threefish","owner":"dchest","description":"geli-threefish is a set of patches for FreeBSD geom-eli and crypto kernel modules to support disk encryption with Threefish-512 algorithm.","archived":false,"fork":false,"pushed_at":"2014-04-30T20:54:43.000Z","size":500,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-01-24T09:42:56.490Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dchest.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2013-09-14T16:11:02.000Z","updated_at":"2017-02-15T12:21:23.000Z","dependencies_parsed_at":"2022-09-16T14:28:14.971Z","dependency_job_id":null,"html_url":"https://github.com/dchest/geli-threefish","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dchest%2Fgeli-threefish","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dchest%2Fgeli-threefish/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dchest%2Fgeli-threefish/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dchest%2Fgeli-threefish/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dchest","download_url":"https://codeload.github.com/dchest/geli-threefish/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244142439,"owners_count":20405002,"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":[],"created_at":"2024-10-13T12:08:35.078Z","updated_at":"2025-10-30T07:34:02.690Z","avatar_url":"https://github.com/dchest.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# geli-threefish\n\n![Logo](logo.png)\n\n**geli-threefish** is a set of patches for FreeBSD\n[geom-eli](http://www.freebsd.org/cgi/man.cgi?query=geli) and\n[crypto](http://www.freebsd.org/cgi/man.cgi?query=crypto\u0026apropos=0\u0026sektion=4)\nkernel modules to support disk encryption with\n[Threefish-512](http://en.wikipedia.org/wiki/Threefish) algorithm.\n\n*This software is experimental. Use at your own risk! Tested on FreeBSD 9.1.*\n\n## Why?\n\nI wanted to install FreeBSD into the encrypted disk on my Atom-based netbook,\nbut didn't want to suffer from the slowness of AES. Since the CPU doesn't have\nAES-NI instructions, AES-128 CBC from OpenSSL runs at about 26 MB/s (AES-XTS\nshould be even slower), while this Threefish implementation achieves about 150\nMB/s.\n\nBasically, **geli-threefish** makes your encrypted disk ~3x faster\nwithout sacrificing security.\n\n\n## Why not?\n\nYou don't want to use these patches if:\n\n  *  you have a modern processor with\n     [AES-NI instructions](http://en.wikipedia.org/wiki/AES_instruction_set)\n     (AES will be faster than Threefish on it), or\n\n  *  you don't want to manage custom kernel modules, or\n\n  *  you trust AES more than Threefish.\n\n\n## How to install\n\nSee [Installation instructions](INSTALL.md).\n\nor, \"I know what I'm doing, [just gimme the patch](https://github.com/dchest/geli-threefish/compare/freebsd...master.patch)\"!\n\n\n## Technical details\n\n  *  Threefish-512 is used in \"tweak counter\" mode. The first 64-bit part of\n     tweak is a sector number, the last 64-bit part of tweak is a block counter.\n     The block counter is incremented for each 512-bit block of the sector.\n\n  *  Encryption and decryption operations of Threefish are swapped, as\n     recommended by the Skein paper to achieve better read performance,\n     which is the more common operation. This doesn't affect security of the\n     cipher.\n\n  *  Metadata (master keys, etc.) is encrypted with AES-256 in CBC mode. This\n     simplifies code and doesn't affect performance.\n\n## License\n\nThreefish implementation is licensed under the FreeBSD license,\nmodifications to `geom-eli` and `crypto` are placed into the public domain.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdchest%2Fgeli-threefish","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdchest%2Fgeli-threefish","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdchest%2Fgeli-threefish/lists"}