{"id":20109971,"url":"https://github.com/distributed-lab/pollard-kangaroo-plus-testing","last_synced_at":"2026-02-09T17:33:20.970Z","repository":{"id":259101834,"uuid":"865502718","full_name":"distributed-lab/pollard-kangaroo-plus-testing","owner":"distributed-lab","description":null,"archived":false,"fork":false,"pushed_at":"2024-12-23T22:14:49.000Z","size":17961,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2024-12-23T23:23:12.544Z","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":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/distributed-lab.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":"2024-09-30T16:28:48.000Z","updated_at":"2024-12-18T07:46:24.000Z","dependencies_parsed_at":"2024-12-10T18:38:37.116Z","dependency_job_id":null,"html_url":"https://github.com/distributed-lab/pollard-kangaroo-plus-testing","commit_stats":null,"previous_names":["distributed-lab/pollard-kangaroo-plus-testing"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/distributed-lab%2Fpollard-kangaroo-plus-testing","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/distributed-lab%2Fpollard-kangaroo-plus-testing/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/distributed-lab%2Fpollard-kangaroo-plus-testing/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/distributed-lab%2Fpollard-kangaroo-plus-testing/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/distributed-lab","download_url":"https://codeload.github.com/distributed-lab/pollard-kangaroo-plus-testing/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":233699714,"owners_count":18716262,"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-13T18:09:55.579Z","updated_at":"2025-09-21T01:32:06.438Z","avatar_url":"https://github.com/distributed-lab.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🦘 Testing the usage of enhanced Pollard's kangaroo algorithm for solving DLP faster\n\nThis repository provides tools for launching a series of tests and combining different \nconstants for the enhanced Pollard's kangaroo algorithm. The algorithm is used from \n[this](https://cr.yp.to/dlog/cuberoot.html) article.\n\n## Steps to launch an experiment\n\n### 1. Generating secrets \n\nFor launching an experiment it is required to generate some amount of secrets to launch \ntests on. These are simply random numbers of some length. This can be done be using\n[secret-gen](secret-generator). Go to the config-gen folder and launch the following \ncommand to generate 200 64-bit secrets:\n\n```shell\ngo run main.go --size 64 --amount 200 --path secrets.bin\n```\n\nThis command will generate secrets.bin file with 200 64-bit secrets.\n\n### 2. Generating experiment configurable file\n\nFor testing the algorithm on different constants mix [config-gen](config-gen) can be used.\nIt mixes all provided constants creating unique tuples and writes them into .json file.\n\nTo create own configurable file go to [constants.go](config-gen/generator/constants.go) \nfile and change constants number and ranges. Constant number defines how many constants \nthere should be in a specific range. For example, setting `MinTame` to 10, `MaxTame` to 20\nand `NumberTames` to 5 will generate 5 different tames in range from 10 to 20.\n\nLaunch the next command to generate config.json file with provided constants for 64-bit \nsize secrets.\n\n```shell\ngo run main.go --secret-size 64 --config conf.json\n```\n\nThe program also produces some kind of optimisation on preprocessing number which can be \nread [here](config-gen/README.md#optimisation).\n\n### 3. Creating the test binary\n\nFor launching an experiment with constants above, use \n[kangaroo-algorithm](kangaroo-algorithm). The program requires the presence of installed\ngmpxx package (you can read about the installation \n[here](kangaroo-algorithm/README.md#prerequisites)).\n\nLaunch the following command to generate a binary executable file called `test`:\n\n```shell\ng++ -std=c++2b -O3 -fomit-frame-pointer -o test source/* -lgmpxx -lgmp\n```\n\n### 4. Launching an experiment\n\nUse [experiment-launcher](experiment-launcher) to launch the whole experiment.\n\nMove `test` and `secrets.bin` into [binary](experiment-launcher/binary) folder and \n`config.json` file into the [root](experiment-launcher).\n\nRun the following command to launch an experiment:\n\n```shell\ngo run main.go --cpu 12 --secrets-size 64\n```\n\nThis command will start an experiment using 12 threads and output logs into \n[logs](experiment-launcher/logs) folder. Tables will be generated into\n[tables](experiment-launcher/tables) folder. Folders with logs, tables, binary test file \nand secrets are configurable and can be changed with flags that are stated in \n[README.md](experiment-launcher/README.md) file.\n\n### 5. Analyzing results\n\nTime result could be analyzed using [result-analyzer](result-analyzer). Run the following\ncommand:\n\n```shell\ngo run main.go --top 10 --log ./experiment-launcher/logs\n```\n\nThis command will analyze logs, find time results and output top 10 log files with best \nresults.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdistributed-lab%2Fpollard-kangaroo-plus-testing","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdistributed-lab%2Fpollard-kangaroo-plus-testing","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdistributed-lab%2Fpollard-kangaroo-plus-testing/lists"}