{"id":18754818,"url":"https://github.com/visa/dise","last_synced_at":"2025-04-13T00:32:27.125Z","repository":{"id":163849769,"uuid":"267209050","full_name":"visa/dise","owner":"visa","description":null,"archived":false,"fork":false,"pushed_at":"2020-05-29T01:43:12.000Z","size":37,"stargazers_count":21,"open_issues_count":0,"forks_count":9,"subscribers_count":21,"default_branch":"master","last_synced_at":"2025-03-26T19:04:32.879Z","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":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/visa.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","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":"2020-05-27T03:13:57.000Z","updated_at":"2024-05-10T01:31:21.000Z","dependencies_parsed_at":"2023-07-06T19:32:02.692Z","dependency_job_id":null,"html_url":"https://github.com/visa/dise","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/visa%2Fdise","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/visa%2Fdise/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/visa%2Fdise/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/visa%2Fdise/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/visa","download_url":"https://codeload.github.com/visa/dise/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248650558,"owners_count":21139670,"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-11-07T17:30:09.403Z","updated_at":"2025-04-13T00:32:27.119Z","avatar_url":"https://github.com/visa.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# DiSE\n\nThis repository contains the reference implementation of [DiSE: Distributed Symmetric-key Encryption](https://eprint.iacr.org/2018/727). This is only a proof of concept implementation and should not be considered production grade. Use at your own risk. \n\nThreshold cryptography provides a mechanism for protecting secret keys by sharing them among multiple parties, who then jointly perform cryptographic operations. An attacker who corrupts upto a threshold number of parties cannot recover the secrets or violate security. Prior works in this space have mostly focused on definitions and constructions for public-key cryptography and digital signatures, and thus do not capture the security concerns and efficiency challenges of symmetric-key based applications which commonly use long-term (unprotected) master keys to protect data at rest, authenticate clients on enterprise networks, and secure data and payments on IoT devices.\n\nWe propose a generic construction of threshold authenticated encryption based on any distributed pseudorandom function (DPRF). When instantiated with the two different DPRF constructions proposed by Naor, Pinkas and Reingold (Eurocrypt 1999) and our enhanced versions, we obtain several efficient constructions meeting different security definitions. We implement these variants and provide extensive performance comparisons. Our most efficient instantiation uses only symmetric-key primitives and achieves a throughput of upto 1 million encryptions/decryptions per seconds, or alternatively a sub-millisecond latency with upto 18 participating parties.\n\n\n## Build Instructions\n\n### Part 1: clone the dependencies               \nSet the parent directory that we will build in\n```\ngit clone https://github.com/visa/dise.git\ngit clone https://github.com/relic-toolkit/relic.git\ngit clone https://github.com/ladnir/cryptoTools\n```\n\nWe require the code has the following structure \n```\n$BUILD_DIR/cryptoTools/\n$BUILD_DIR/dise/\n```\n\n### Part 2: Build and install Relic              \n\n```\ncd relic\n\ncmake . -D MULTI=PTHREAD\nmake -j\nsudo make install\n```\n\nOn windows you can build relic with `-D MULTI=OPENMP`.\n\nNote, you can install to a non-sudo location by calling `make DESTDIR=\u003cpath/to/install\u003e install`\n\n\n### Part 3: build boost and cryptoTools          \n```\ncd ../cryptoTools/thirdparty/linux\nbash boost.get\ncd ../..\ncmake . -D ENABLE_RELIC=ON \nmake -j\n```\n\n\n### Part 4: build DiSE                           \n```\ncd ../dise\ncmake .\nmake -j\n```\n\nRun the unit tests `./bin/dEncFrontent -u`.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvisa%2Fdise","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvisa%2Fdise","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvisa%2Fdise/lists"}