{"id":13801503,"url":"https://github.com/shariltumin/tscp","last_synced_at":"2025-05-13T11:31:21.869Z","repository":{"id":166823068,"uuid":"532882816","full_name":"shariltumin/tscp","owner":"shariltumin","description":"An endpoint-to-endpoint encryption based on Diffie-Hellman-Merkle with TLS1.3 styled handshake using MicroPython","archived":false,"fork":false,"pushed_at":"2022-09-05T12:55:26.000Z","size":2084,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-04-22T12:33:10.520Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/shariltumin.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}},"created_at":"2022-09-05T12:05:23.000Z","updated_at":"2023-07-22T12:00:04.000Z","dependencies_parsed_at":"2023-08-29T01:35:50.592Z","dependency_job_id":null,"html_url":"https://github.com/shariltumin/tscp","commit_stats":null,"previous_names":["shariltumin/tscp"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shariltumin%2Ftscp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shariltumin%2Ftscp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shariltumin%2Ftscp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shariltumin%2Ftscp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/shariltumin","download_url":"https://codeload.github.com/shariltumin/tscp/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253932865,"owners_count":21986467,"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-08-04T00:01:23.601Z","updated_at":"2025-05-13T11:31:16.900Z","avatar_url":"https://github.com/shariltumin.png","language":"Python","readme":"# tscp (tiny secure communication protocol)\n\n![tscp](tscp1.jpg)\n\nAn E2EE (endpoint-to-endpoint encryption) is possible to implement on resource constraint microcontrollers using a high-level programming language. A secure protocol based on a well-known key-exchange technique Diffie-Hellman-Merkle and TLS1.3 style session-key negotiation is implemented and tested. \n\nLarge primes are not needed in the modified DHM key-exchange protocol pow(x,b)%P == pow(y,a)%P. MicroPython modules are developed to provide identification, authentication, and privacy of messages between two communicating end-points. The limiting factor of large integers arithmetic in Python is the amount of runtime time RAM available. An end-to-end is an application-level protocol and thus can be used for any form of message exchange.\n\nThis work entitled **Simple E2EE Secure Communication Protocol for Tiny IoT Devices** was submitted to **The 19th. International Conference on Cooperative Design, Visualization and Engineering - CDVE2022**. The proceedings book will be published by the Lecture Notes in Computer Science (LNCS).\n\n## Testing (with debugging)\n\n```python\nMicroPython v1.19.1-358-g0b26efe73-kaki5 on 2022-09-02; ESP32 BLE (KAKI5) module with ESP32\n\u003e\u003e\u003e import test_tscp_aes_debug\n0 ----------------------------------\nThis is the start of a beautiful day!\nb'Hello:KAKI5-1-0-A:C-1-2-38:oXo|AES:102:116297090366876477071146'\nb'Hey:AES:5b750788b9c20329015a0d0f41a060db05f708badfc048792c17770c01d6e142:27756140084870699242461'\nb'5b750788b9c20329015a0d0f41a060dbfd8a61f66078db94502d0e51873a3468cf92f1012da188887d5780d1b0b372f9c7c49c34dc0a17f86ef052afafb0cf94:e12354abaf648620c8bf7bb96a023c0d0437be0e7b5336ba003106d1c360fe5f'\nBob:\n   Client node authenticates? True C-1-2-38\n   Server node authenticates? True S-9-12-10\n   Data hash ok? True\nSRV msg: b'188dc78a7f2707be008a3d33ce39417be0d4e71a6868d80e849768b8abe05da5aaa472a2ba34eb789431fa6ccf6fa3baff921a7c5b45b8cafbdea75c2fae2dfc:50b8f3efe52dfc7c0c139f64f24d1b31d8fdbde293d5ebd6175dbc98a9b4e06b'\nRaw Data:188dc78a7f2707be008a3d33ce39417be0d4e71a6868d80e849768b8abe05da5aaa472a2ba34eb789431fa6ccf6fa3baff921a7c5b45b8cafbdea75c2fae2dfc\nHash: 50b8f3efe52dfc7c0c139f64f24d1b31d8fdbde293d5ebd6175dbc98a9b4e06b\nSRV data: S-9-12-10:C-1-2-38:THIS IS THE START OF A BEAUTIFUL DAY!\nIt hash: b'50b8f3efe52dfc7c0c139f64f24d1b31d8fdbde293d5ebd6175dbc98a9b4e06b'\nAlice:\n   Client node authenticates? True C-1-2-38\n   Server node authenticates? True S-9-12-10\n   Data hash ok? True\nTHIS IS THE START OF A BEAUTIFUL DAY!\n1 ----------------------------------\nThis is the start of a beautiful day!\nb'Hello:KAKI5-1-0-A:C-9-6-11:oXo|AES:101:37324430542233743414781'\nb'Hey:AES:d51b9827885fbdc7e9deea374a76428649c3af9d9a81b6f590fe01da64659bc7:64010375101150211120541'\nb'd51b9827885fbdc7e9deea374a76428617bfaf94c4ddb5731422cb538006eb678133432938431da02756d476c9889bc1dc1125b3485626d5e0b9aa313b44c314:c589638603ed8a484d642f622fb0c5eea2c4febee2d2ed75e5a6dacda6b23d66'\nBob:\n   Client node authenticates? True C-9-6-11\n   Server node authenticates? True S-13-6-28\n   Data hash ok? True\nSRV msg: b'd173839522a4bb7236f8baf9ed85bbd2600600d5dcff141c80f32da8c0e8d4a04f6b01cc5cd2cc5b90d221cbb1a05712fa93c2c7195d8b70900228e170e48635:adbf841852fb500e03c5460e1b0865d97d830105869d60c94d7527e9958ab506'\nRaw Data:d173839522a4bb7236f8baf9ed85bbd2600600d5dcff141c80f32da8c0e8d4a04f6b01cc5cd2cc5b90d221cbb1a05712fa93c2c7195d8b70900228e170e48635\nHash: adbf841852fb500e03c5460e1b0865d97d830105869d60c94d7527e9958ab506\nSRV data: S-13-6-28:C-9-6-11:THIS IS THE START OF A BEAUTIFUL DAY!\nIt hash: b'adbf841852fb500e03c5460e1b0865d97d830105869d60c94d7527e9958ab506'\nAlice:\n   Client node authenticates? True C-9-6-11\n   Server node authenticates? True S-13-6-28\n   Data hash ok? True\nTHIS IS THE START OF A BEAUTIFUL DAY!\n# error: 0 in 2 tests\n\u003e\u003e\u003e \n```\n\nThe tscp.py script was produced by pyminify. Please read tscp_debug.py and test_tscp_aes_debug.py for more information on how this module works.\n\n\n","funding_links":[],"categories":["Libraries"],"sub_categories":["Communications"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshariltumin%2Ftscp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fshariltumin%2Ftscp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshariltumin%2Ftscp/lists"}