{"id":13630324,"url":"https://github.com/dedis/kyber","last_synced_at":"2025-05-15T11:08:45.084Z","repository":{"id":21929091,"uuid":"25253455","full_name":"dedis/kyber","owner":"dedis","description":"Advanced crypto library for the Go language","archived":false,"fork":false,"pushed_at":"2025-04-14T16:46:12.000Z","size":11652,"stargazers_count":658,"open_issues_count":34,"forks_count":170,"subscribers_count":47,"default_branch":"master","last_synced_at":"2025-04-14T17:52:00.171Z","etag":null,"topics":["crypto-library","elliptic-curves","go"],"latest_commit_sha":null,"homepage":"","language":"Go","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/dedis.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":"2014-10-15T12:25:03.000Z","updated_at":"2025-04-14T16:46:18.000Z","dependencies_parsed_at":"2023-01-13T21:45:19.762Z","dependency_job_id":"2463208e-da3b-4073-9361-9aed10a68e75","html_url":"https://github.com/dedis/kyber","commit_stats":{"total_commits":1824,"total_committers":60,"mean_commits":30.4,"dds":0.7324561403508771,"last_synced_commit":"fc615d5eaae0b33a9a9b0e24c599ce4d6e44a5a7"},"previous_names":["dedis/crypto"],"tags_count":26,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dedis%2Fkyber","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dedis%2Fkyber/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dedis%2Fkyber/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dedis%2Fkyber/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dedis","download_url":"https://codeload.github.com/dedis/kyber/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254328385,"owners_count":22052632,"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":["crypto-library","elliptic-curves","go"],"created_at":"2024-08-01T22:01:38.410Z","updated_at":"2025-05-15T11:08:45.047Z","avatar_url":"https://github.com/dedis.png","language":"Go","funding_links":[],"categories":["Go","库和框架","Frameworks and Libs"],"sub_categories":["Go"],"readme":"[![Go test](https://github.com/dedis/kyber/actions/workflows/tests.yml/badge.svg)](https://github.com/dedis/kyber/actions/workflows/tests.yml)\n[![Coverage Status](https://coveralls.io/repos/github/dedis/kyber/badge.svg?branch=master)](https://coveralls.io/github/dedis/kyber?branch=master)\n[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=dedis_kyber\u0026metric=alert_status)](https://sonarcloud.io/summary/new_code?id=dedis_kyber)\n[![Go Reference](https://pkg.go.dev/badge/github.com/dedis/kyber.svg)](https://pkg.go.dev/github.com/dedis/kyber)\n\nDEDIS Advanced Crypto Library for Go\n====================================\n\nThis package provides a toolbox of advanced cryptographic primitives for Go,\ntargeting applications like [Cothority](https://go.dedis.ch/cothority)\nthat need more than straightforward signing and encryption.\nPlease see the\n[Godoc documentation for this package](https://godoc.org/go.dedis.ch/kyber)\nfor details on the library's purpose and API functionality.\n\nThis package includes a mix of variable time and constant time\nimplementations. If your application is sensitive to timing-based attacks\nand you need to constrain Kyber to offering only constant time implementations,\nyou should use the [suites.RequireConstantTime()](https://godoc.org/go.dedis.ch/kyber/suites#RequireConstantTime)\nfunction in the `init()` function of your `main` package.\n\nTarget Audience\n---------------\n\nThis library is intended to be used by developers who are at least moderately knowledgeable about cryptography. \nIf you want a crypto library that makes it easy to implement \"basic crypto\" functionality correctly - i.e., plain public-key encryption and signing - then [NaCl secretbox](https://godoc.org/golang.org/x/crypto/nacl/secretbox) may be a better choice.\nOr use Google's [Tink](https://developers.google.com/tink)\n\nThis toolkit's purpose is to make it possible - and preferably easy - to do slightly more interesting things that most current crypto libraries don't support effectively.\nThe one existing crypto library that this toolkit is probably most comparable to is the [Charm](https://charm-crypto.com/category/charm) rapid prototyping library for Python.\n\nVersioning - Development\n------------------------\n\nWe use the following versioning model:\n\n* crypto.v0 was the first semi-stable version. See [migration notes](https://github.com/dedis/kyber/wiki/Migration-from-gopkg.in-dedis-crypto.v0).\n* kyber.v1 never existed, in order to keep kyber, onet and cothorithy versions linked\n* gopkg.in/dedis/kyber.v2 was the last stable version\n* Starting with v3.0.0, kyber is a Go module, and we respect [semantic versioning](https://golang.org/cmd/go/#hdr-Module_compatibility_and_semantic_versioning).\n\nSo if you depend on the master branch, you can expect breakages from time\nto time. If you need something that doesn't change in a backward-compatible\nway you should use have a `go.mod` file in the directory where your\nmain package is.\n\nUsing the module\n----------------\n\nKyber supports Go modules, and currently has a major version of 3, which means that\nthe import path is: `go.dedis.ch/kyber/v4`.\n\nHere is a basic example of getting started using it:\n1. Make a new directory called “ex\". Change directory to “ex\" and put this in main.go:\n```go\npackage main\n\nimport (\n    \"fmt\"\n    \"go.dedis.ch/kyber/v4/suites\"\n)\n\nfunc main() {\n    s := suites.MustFind(\"Ed25519\")\n    x := s.Scalar().Zero()\n    fmt.Println(x)\n}\n```\n2. Type “go mod init example.com/ex”. The resulting go.mod file will have no dependencies listed yet.\n3. Type “go build”. The go tool will fill in the new dependencies that it find for you, i.e. \"require go.dedis.ch/kyber/v4 v3.0.13”.\n4. Running `./ex` will print `0000000000000000000000000000000000000000000000000000000000000000`.\n\nA note on deriving shared secrets\n---------------------------------\n\nTraditionally, ECDH (Elliptic curve Diffie-Hellman) derives the shared secret\nfrom the x point only. In this framework, you can either manually retrieve the\nvalue or use the MarshalBinary method to take the combined (x, y) value as the\nshared secret. We recommend the latter process for new softare/protocols using\nthis framework as it is cleaner and generalizes across different types of groups\n(e.g., both integer and elliptic curves), although it will likely be\nincompatible with other implementations of ECDH. See [the Wikipedia\npage](http://en.wikipedia.org/wiki/Elliptic_curve_Diffie%E2%80%93Hellman) on\nECDH.\n\nReporting security problems\n---------------------------\n\nThis library is offered as-is, and without a guarantee. It will need an\nindependent security review before it should be considered ready for use in\nsecurity-critical applications. If you integrate Kyber into your application it\nis YOUR RESPONSIBILITY to arrange for that audit.\n\nIf you notice a possible security problem, please report it\nto dedis-security@epfl.ch.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdedis%2Fkyber","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdedis%2Fkyber","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdedis%2Fkyber/lists"}