{"id":21072147,"url":"https://github.com/anishgg/diffie-helman-key-exchange","last_synced_at":"2025-03-14T03:09:47.866Z","repository":{"id":122610130,"uuid":"237824935","full_name":"AnishGG/diffie-helman-key-exchange","owner":"AnishGG","description":"File sharing with 3DES and key exchange using Diffie hellman","archived":false,"fork":false,"pushed_at":"2020-02-03T15:26:26.000Z","size":13,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-01-20T22:12:05.127Z","etag":null,"topics":["3des","diffie-hellman","python-des","socket-programming"],"latest_commit_sha":null,"homepage":"","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/AnishGG.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":"2020-02-02T19:33:52.000Z","updated_at":"2023-09-04T14:15:48.000Z","dependencies_parsed_at":null,"dependency_job_id":"c10529ff-e2f4-432e-a671-ddb4cb1f944c","html_url":"https://github.com/AnishGG/diffie-helman-key-exchange","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/AnishGG%2Fdiffie-helman-key-exchange","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AnishGG%2Fdiffie-helman-key-exchange/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AnishGG%2Fdiffie-helman-key-exchange/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AnishGG%2Fdiffie-helman-key-exchange/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AnishGG","download_url":"https://codeload.github.com/AnishGG/diffie-helman-key-exchange/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243515569,"owners_count":20303258,"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":["3des","diffie-hellman","python-des","socket-programming"],"created_at":"2024-11-19T18:55:43.333Z","updated_at":"2025-03-14T03:09:47.844Z","avatar_url":"https://github.com/AnishGG.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"3DES implementation with Diffie Hellman key exchange\n====================================================\n\nSuppose there are n users A (clients) want to securely access the files stored in the database of a user B (server).\nAt first, each client will make a connection using socket with the server B and then will establish three symmetric keys, say K1 , K2 and K3 which will be used for encryption and decryption using the 3DES with three keys symmetric cryptosystem.\n\n### Dependencies\n* python3 is needed in order to run the server and client. It can be installed using the following command.\n\n```bash\napt-get install python3\n\n```\n* All the dependencies of the project are given in `requirements.txt`, which can be installed using:\n\n```bash\npip3 install -r requirements.txt\n\n# If you don't have pip3 installed on your system, run:\napt-get install python3-pip\n```\n\nTo run the server and client, follow the given steps:\n```bash\ncd path-to-directory/server\npython3 server.py\n\n# Open a new terminal\ncd path-to-directory/client\npython3 client.py 127.0.0.1\n\n# Type 'help' to find out all the commands\n```\n\nThe protocol messages used in the implementation are provided below\n\n| Opcode |   Message  |                                    Description                                    |\n|:------:|:----------:|:---------------------------------------------------------------------------------:|\n|   10   |   PUBKEY   |          Public key Ya/Yb sent to the server/client by the client/server          |\n|   20   |   REQSERV  | Request for service (transferring a requested file) from the server to the client |\n|   30   |   ENCMSG   |      Sending encrypted message(s) for the file from the server to the client      |\n|   40   |   REQCOM   |              Request completion message from the server to the client             |\n|   50   | DISCONNECT |           Disconnect request message sent from the client to the server           |\n\n### Extra files information\n* All the global settings are stored in `settings.py` present in the root directory.\n* The common data structures and functions used by server and client side are stored in `common.py` also present in the root directory.\n* All the extra dependencies for running the server are stored in `requirements.txt`, which can be installed as described above.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fanishgg%2Fdiffie-helman-key-exchange","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fanishgg%2Fdiffie-helman-key-exchange","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fanishgg%2Fdiffie-helman-key-exchange/lists"}