{"id":18361854,"url":"https://github.com/swapnilraj/groupie-wellman","last_synced_at":"2025-04-10T04:33:21.585Z","repository":{"id":123117603,"uuid":"114487634","full_name":"swapnilraj/groupie-wellman","owner":"swapnilraj","description":null,"archived":false,"fork":false,"pushed_at":"2018-01-17T13:14:57.000Z","size":11,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-02-15T19:16:52.786Z","etag":null,"topics":["cryptography","diffie-hellman-algorithm","key"],"latest_commit_sha":null,"homepage":null,"language":"Python","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/swapnilraj.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-12-16T20:13:58.000Z","updated_at":"2018-01-17T13:14:21.000Z","dependencies_parsed_at":null,"dependency_job_id":"5a4770a1-b0e0-4fa2-891b-f1c32d37e476","html_url":"https://github.com/swapnilraj/groupie-wellman","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/swapnilraj%2Fgroupie-wellman","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/swapnilraj%2Fgroupie-wellman/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/swapnilraj%2Fgroupie-wellman/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/swapnilraj%2Fgroupie-wellman/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/swapnilraj","download_url":"https://codeload.github.com/swapnilraj/groupie-wellman/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248157636,"owners_count":21057046,"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":["cryptography","diffie-hellman-algorithm","key"],"created_at":"2024-11-05T22:35:37.631Z","updated_at":"2025-04-10T04:33:21.526Z","avatar_url":"https://github.com/swapnilraj.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Groupie-Wellman\nThis is an implementation of the Diffie Hellman Key Exchange Algorithm.\n\n# How to Run?\n``` \npip install -r requirements.txt\npython3 cage.py\npython3 cage2.py\n```\n\n`cage.py` acts as server, `cage2.py` acts as a client.\n\n# Diffie Hellman Algorithm\nDHA is an algorithm for exchanging public keys over a public domain, the \nunderlying Mathematics is pretty easy to understand, all you need to understand is modulo arithmetic.\n\nIf prime numbers came to your mind when you read this, then you are right all we need is just a `big prime numbers`.\n\n## Understanding with an example:\nLet us meet our friends Jorik and Swapnil, further referred as J and S, now\nthey want to exchange cryptographic keys, pretty easy print them off and share them right? The issue here is J and S live in different countries Malawi and \nZimbabwe respectively, anyway so they need to exchange keys. That's where this algorithm comes into play.\n\n|J|Public Domain|S|\n|:---:|:---:|:---:|\n|Generates a relatively big prime number `a`|Two prime numbers in the public domain `p`, `g`|Generates a relatively big prime number `b`|\n|Calculates `h = p^a mod g`| | Calculates `j = p^b mod g`|\n|Sends the result| `p^a mod g` \u0026 `p^b mod g` go through the public domain|Sends the result\n|Calculates `j^a mod g`| | Calculates `h^b mod g`|\n\nThat's it! Pretty easy eh? If you pay attention the number that both J and S\ncalculate at the end is the key, `p^ab mod g`. You can try to construct the key\nfrom the stuff that is available in the public domain, but you wouldn't be able\nto owing to the fact that prime numbers are pretty hard to factorize especially \nbig ones.\n\n### Why this project exists?\nWe just wanted to understand the Diffie Hellman Key Exchange Algorithm, what better way to do it than writing it, we acknowledge the network we implemented is nothing close to a real one. Thanks to Jorik Schllekens for the help.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fswapnilraj%2Fgroupie-wellman","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fswapnilraj%2Fgroupie-wellman","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fswapnilraj%2Fgroupie-wellman/lists"}