| _version_ | 1866901471422840832 |
|---|---|
| author | yaohu |
| author_facet | yaohu |
| contents | <h1>Gaia Artifact README</h1> <h2> Practical Deployment & Reproduction Guide</h2> <p>This document provides detailed instructions for configuring, deploying, and reproducing the <strong>Gaia semi-constrained secure navigation system</strong>.<br>The current implementation follows the <strong>two-party semi-honest model</strong> described in the paper, where the system is divided into a <strong>Navigation Server (NS)</strong> and a <strong>Secure Proxy</strong>.</p> <h2> 1. System Requirements & Environment Setup</h2> <p>Gaia relies on several cryptographic and graph-processing components, including CKKS homomorphic encryption, secure comparison, encrypted graph processing, and constrained navigation evaluation.<br>Before running the code, please ensure that the environment satisfies the following requirements.</p> <h3>1.1 Hardware Requirements</h3> <ul> <li> <p><strong>Memory (RAM):</strong> At least <strong>16 GB</strong> is recommended.<br>Large encrypted graph structures and distance-related preprocessing may consume substantial memory.</p> </li> <li> <p><strong>CPU:</strong> Multi-core Intel/AMD processor is recommended for efficient encrypted computation and routing evaluation.</p> </li> <li> <p><strong>Disk Space:</strong> At least <strong>5 GB</strong> of free space is recommended for source code, intermediate files, and experimental outputs.</p> </li> </ul> <h3>1.2 Software Requirements</h3> <ul> <li> <p><strong>Operating System:</strong> Windows is recommended for this implementation.</p> </li> <li> <p><strong>JDK:</strong> Java <strong>11</strong> or higher.</p> </li> <li> <p><strong>Build Tool:</strong> Maven <strong>3.6+</strong></p> </li> <li> <p><strong>Dependencies:</strong> Managed through <code>pom.xml</code></p> </li> <li> <p><strong>Native / Local Libraries:</strong> The project includes local dependency files under the corresponding project directories.</p> </li> </ul> <h3>1.3 Recommended JVM Settings</h3> <p>To avoid memory-related failures during compilation or execution, use the following JVM settings:</p> <pre><code>-Xms8g -Xmx16g </code></pre> <p>For Maven execution, this can be configured as:</p> <pre><code>MAVEN_OPTS="-Xms8g -Xmx16g" </code></pre> <p>On Windows PowerShell:</p> <pre><code>$env:MAVEN_OPTS="-Xms8g -Xmx16g" </code></pre> <h2> ️ 2. Project Structure</h2> <p>The source code is organized to support graph preprocessing, encryption-related operations, secure routing, and experimental evaluation.</p> <p>A typical project structure is as follows:</p> <pre><code>project-root/ ├── pom.xml ├── libs/ ├── src/ │ ├── main/ │ │ ├── java/ │ │ └── resources/ │ └── test/ │ └── java/ │ └── Test3.java </code></pre> <h3>Main Components</h3> <ul> <li> <p><strong><code>src/main/java/</code></strong><br>Contains the core implementation of Gaia, including:</p> <ul> <li> <p>encrypted graph construction</p> </li> <li> <p>cryptographic operations</p> </li> <li> <p>secure navigation algorithms</p> </li> <li> <p>supporting utilities</p> </li> </ul> </li> <li> <p><strong><code>src/main/resources/</code></strong><br>Contains the dataset and resource files required by the system.</p> </li> <li> <p><strong><code>src/test/java/Test3.java</code></strong><br>This is the <strong>main experimental entry point</strong> for reproducing the evaluation results.</p> </li> </ul> <h2> 3. Dataset and Resource Preparation</h2> <p>The dataset used by Gaia is stored in:</p> <pre><code>src/main/resources/ </code></pre> <p>Before running the system, please check that the required data files are present in this directory.<br>These resources may include:</p> <ul> <li> <p>graph topology data</p> </li> <li> <p>node and edge information</p> </li> <li> <p>preprocessed auxiliary files</p> </li> <li> <p>encrypted graph related resources</p> </li> <li> <p>experiment input files</p> </li> </ul> <p>No additional manual dataset download is required if these files are already included in the artifact package.</p> <h2> 4. System Architecture</h2> <p>Gaia is implemented as a <strong>two-party secure navigation system</strong>:</p> <h3>4.1 Navigation Server (NS)</h3> <p>The Navigation Server is responsible for:</p> <ul> <li> <p>storing and processing encrypted graph-related data</p> </li> <li> <p>executing the main navigation logic</p> </li> <li> <p>performing encrypted distance and route computations</p> </li> <li> <p>coordinating secure interactions with the Proxy when comparison or key-dependent operations are needed</p> </li> </ul> <h3>4.2 Secure Proxy</h3> <p>The Secure Proxy is responsible for:</p> <ul> <li> <p>participating in secure cryptographic subroutines</p> </li> <li> <p>supporting decryption-related or secure comparison-related steps where required by the protocol</p> </li> <li> <p>remaining logically separated from the Navigation Server</p> </li> </ul> <h3>4.3 Local Reproduction Mode</h3> <p>In this artifact, the two-party setting is reproduced locally within the provided implementation environment.<br>That is, the distributed model described in the paper is simulated on a single machine for reproducibility, while preserving the logical separation between the two entities in the code design.</p> <h2> 5. Reproducing Experimental Results</h2> <p>The main experiments are reproduced through:</p> <pre><code>src/test/java/Test3.java </code></pre> <p>This class is the <strong>primary test entry</strong> for running the Gaia evaluation.</p> <h3>5.1 Configure Experimental Parameters</h3> <p>Before execution, open <code>Test3.java</code> and check the experiment parameters.<br>You may modify the relevant arrays or variables to control:</p> <ul> <li> <p>the number of waypoints / stops</p> </li> <li> <p>the number of ordering constraints</p> </li> <li> <p>the blockage ratio or obstacle configuration</p> </li> <li> <p>the graph scale or dataset selection</p> </li> <li> <p>the number of repeated trials</p> </li> </ul> <p>Typical examples include settings such as:</p> <pre><code>private static final int[] WAYPOINT_COUNTS = {5}; private static final int[] CONSTRAINT_PAIRS = {1, 3, 5}; private static final double[] BLOCKAGE_RATIOS = {0.05, 0.15}; </code></pre> <p>Please use the parameter settings corresponding to the paper when reproducing the final reported results.</p> <h3>5.2 Compile the Project</h3> <p>Run the following command in the project root directory:</p> <pre><code>mvn clean test-compile </code></pre> <p>If memory allocation is needed, run:</p> <pre><code>MAVEN_OPTS="-Xms8g -Xmx16g" mvn clean test-compile </code></pre> <h3>5.3 Execute the Main Test</h3> <p>Run <code>Test3</code> with Maven:</p> <pre><code>mvn exec:java -Dexec.mainClass="Test3" -Dexec.classpathScope=test </code></pre> <p>If memory allocation is needed, run:</p> <pre><code>MAVEN_OPTS="-Xms8g -Xmx16g" mvn exec:java -Dexec.mainClass="Test3" -Dexec.classpathScope=test </code></pre> <p>On Windows PowerShell:</p> <pre><code>$env:MAVEN_OPTS="-Xms8g -Xmx16g" mvn exec:java -Dexec.mainClass="Test3" -Dexec.classpathScope=test </code></pre> <h3>5.4 Expected Execution Flow</h3> <p>When <code>Test3</code> is executed, the system will typically perform the following steps:</p> <ol> <li> <p>load graph and resource files from <code>src/main/resources/</code></p> </li> <li> <p>initialize the cryptographic environment</p> </li> <li> <p>construct or load encrypted graph-related structures</p> </li> <li> <p>generate test queries under the configured constraints</p> </li> <li> <p>run secure semi-constrained navigation</p> </li> <li> <p>measure performance and quality metrics</p> </li> <li> <p>write the results to output files</p> </li> </ol> <h2> 6. Experimental Outputs</h2> <p>After execution, the system generates performance results and evaluation outputs.<br>Depending on the dataset and parameter settings, the output files may include CSV or text files such as:</p> <ul> <li> <p>performance summary files</p> </li> <li> <p>routing evaluation results</p> </li> <li> <p>timing breakdowns</p> </li> <li> <p>similarity metrics</p> </li> <li> <p>path quality statistics</p> </li> </ul> <p>Typical reported metrics include:</p> <ul> <li> <p>encryption time</p> </li> <li> <p>token generation time</p> </li> <li> <p>secure query execution time</p> </li> <li> <p>path length related statistics</p> </li> <li> <p>LenSim</p> </li> <li> <p>HPS</p> </li> <li> <p>other routing quality indicators used in the paper</p> </li> </ul> <p>Please check the project output directory or the paths specified in <code>Test3.java</code> for the generated result files.</p> <h2> 7. Reproduction Tips</h2> <p>To improve the success rate of reproduction, please note the following:</p> <ul> <li> <p>Use <strong>Java 11+</strong> and <strong>Maven 3.6+</strong></p> </li> <li> <p>Ensure all files under <code>src/main/resources/</code> are kept intact</p> </li> <li> <p>Do not arbitrarily rename project directories</p> </li> <li> <p>Use the recommended JVM memory settings</p> </li> <li> <p>Run the project from the <strong>root directory</strong> containing <code>pom.xml</code></p> </li> <li> <p>If a path-related error occurs, first check whether the code contains machine-specific absolute paths and replace them with project-relative paths if necessary</p> </li> </ul> <h2>⚠️ 8. Common Issues</h2> <h3>8.1 OutOfMemoryError</h3> <p>If you encounter <code>OutOfMemoryError</code>, increase JVM heap size:</p> <pre><code>MAVEN_OPTS="-Xms8g -Xmx16g" </code></pre> <h3>8.2 File Not Found</h3> <p>If the program cannot find dataset or resource files:</p> <ul> <li> <p>check whether the required files exist under <code>src/main/resources/</code></p> </li> <li> <p>make sure the project is executed from the root directory</p> </li> <li> <p>verify that no path strings were broken during file extraction</p> </li> </ul> <h3>8.3 Maven Dependency Problems</h3> <p>If Maven fails to resolve dependencies:</p> <ul> <li> <p>ensure Maven is correctly installed</p> </li> <li> <p>check local dependency configuration in <code>pom.xml</code></p> </li> <li> <p>verify that the <code>libs/</code> directory is present if the project depends on local jars</p> </li> </ul> <h3>8.4 Platform Compatibility</h3> <p>This implementation is most suitable for the environment in which it was originally developed.<br>If you run it on a different machine or operating system, minor path or native dependency adjustments may be necessary.</p> <h2> ️ 9. Security Note</h2> <p>The current artifact reproduces the <strong>semi-honest two-party model</strong> described in the paper.</p> <ul> <li> <p>The <strong>Navigation Server</strong> and <strong>Secure Proxy</strong> are assumed to be <strong>non-colluding</strong></p> </li> <li> <p>Sensitive routing information is processed under encryption</p> </li> <li> <p>The implementation is intended to demonstrate the secure navigation workflow and reproduce the experimental results presented in the paper</p> </li> </ul> <p>This artifact is designed for <strong>research reproducibility only</strong>.</p> <h2> 10. Minimal Reproduction Command</h2> <p>For quick reproduction, use the following commands from the project root:</p> <pre><code>mvn clean test-compile MAVEN_OPTS="-Xms8g -Xmx16g" mvn exec:java -Dexec.mainClass="Test3" -Dexec.classpathScope=test </code></pre> <p>On Windows PowerShell:</p> <pre><code>$env:MAVEN_OPTS="-Xms8g -Xmx16g" mvn clean test-compile mvn exec:java -Dexec.mainClass="Test3" -Dexec.classpathScope=test </code></pre> <h2> 11. Artifact Scope</h2> <p>This artifact includes the code and resources necessary to reproduce the core experimental workflow of Gaia.<br>It is intended to support the evaluation of:</p> <ul> <li> <p>encrypted graph processing</p> </li> <li> <p>secure semi-constrained navigation</p> </li> <li> <p>performance measurements</p> </li> <li> <p>path-quality related metrics reported in the paper</p> </li> </ul> |
| format | Recurso digital |
| id | zenodo_https___doi_org_10_5281_zenodo_19159671 |
| institution | Zenodo |
| language | |
| publishDate | 2026 |
| publisher | Zenodo |
| record_format | zenodo |
| spellingShingle | DNS 2026 - Gaia - Accurate Secure and Efficient Semi-Constrained Navigation with Multiple Spatial Restrictions yaohu <h1>Gaia Artifact README</h1> <h2> Practical Deployment & Reproduction Guide</h2> <p>This document provides detailed instructions for configuring, deploying, and reproducing the <strong>Gaia semi-constrained secure navigation system</strong>.<br>The current implementation follows the <strong>two-party semi-honest model</strong> described in the paper, where the system is divided into a <strong>Navigation Server (NS)</strong> and a <strong>Secure Proxy</strong>.</p> <h2> 1. System Requirements & Environment Setup</h2> <p>Gaia relies on several cryptographic and graph-processing components, including CKKS homomorphic encryption, secure comparison, encrypted graph processing, and constrained navigation evaluation.<br>Before running the code, please ensure that the environment satisfies the following requirements.</p> <h3>1.1 Hardware Requirements</h3> <ul> <li> <p><strong>Memory (RAM):</strong> At least <strong>16 GB</strong> is recommended.<br>Large encrypted graph structures and distance-related preprocessing may consume substantial memory.</p> </li> <li> <p><strong>CPU:</strong> Multi-core Intel/AMD processor is recommended for efficient encrypted computation and routing evaluation.</p> </li> <li> <p><strong>Disk Space:</strong> At least <strong>5 GB</strong> of free space is recommended for source code, intermediate files, and experimental outputs.</p> </li> </ul> <h3>1.2 Software Requirements</h3> <ul> <li> <p><strong>Operating System:</strong> Windows is recommended for this implementation.</p> </li> <li> <p><strong>JDK:</strong> Java <strong>11</strong> or higher.</p> </li> <li> <p><strong>Build Tool:</strong> Maven <strong>3.6+</strong></p> </li> <li> <p><strong>Dependencies:</strong> Managed through <code>pom.xml</code></p> </li> <li> <p><strong>Native / Local Libraries:</strong> The project includes local dependency files under the corresponding project directories.</p> </li> </ul> <h3>1.3 Recommended JVM Settings</h3> <p>To avoid memory-related failures during compilation or execution, use the following JVM settings:</p> <pre><code>-Xms8g -Xmx16g </code></pre> <p>For Maven execution, this can be configured as:</p> <pre><code>MAVEN_OPTS="-Xms8g -Xmx16g" </code></pre> <p>On Windows PowerShell:</p> <pre><code>$env:MAVEN_OPTS="-Xms8g -Xmx16g" </code></pre> <h2> ️ 2. Project Structure</h2> <p>The source code is organized to support graph preprocessing, encryption-related operations, secure routing, and experimental evaluation.</p> <p>A typical project structure is as follows:</p> <pre><code>project-root/ ├── pom.xml ├── libs/ ├── src/ │ ├── main/ │ │ ├── java/ │ │ └── resources/ │ └── test/ │ └── java/ │ └── Test3.java </code></pre> <h3>Main Components</h3> <ul> <li> <p><strong><code>src/main/java/</code></strong><br>Contains the core implementation of Gaia, including:</p> <ul> <li> <p>encrypted graph construction</p> </li> <li> <p>cryptographic operations</p> </li> <li> <p>secure navigation algorithms</p> </li> <li> <p>supporting utilities</p> </li> </ul> </li> <li> <p><strong><code>src/main/resources/</code></strong><br>Contains the dataset and resource files required by the system.</p> </li> <li> <p><strong><code>src/test/java/Test3.java</code></strong><br>This is the <strong>main experimental entry point</strong> for reproducing the evaluation results.</p> </li> </ul> <h2> 3. Dataset and Resource Preparation</h2> <p>The dataset used by Gaia is stored in:</p> <pre><code>src/main/resources/ </code></pre> <p>Before running the system, please check that the required data files are present in this directory.<br>These resources may include:</p> <ul> <li> <p>graph topology data</p> </li> <li> <p>node and edge information</p> </li> <li> <p>preprocessed auxiliary files</p> </li> <li> <p>encrypted graph related resources</p> </li> <li> <p>experiment input files</p> </li> </ul> <p>No additional manual dataset download is required if these files are already included in the artifact package.</p> <h2> 4. System Architecture</h2> <p>Gaia is implemented as a <strong>two-party secure navigation system</strong>:</p> <h3>4.1 Navigation Server (NS)</h3> <p>The Navigation Server is responsible for:</p> <ul> <li> <p>storing and processing encrypted graph-related data</p> </li> <li> <p>executing the main navigation logic</p> </li> <li> <p>performing encrypted distance and route computations</p> </li> <li> <p>coordinating secure interactions with the Proxy when comparison or key-dependent operations are needed</p> </li> </ul> <h3>4.2 Secure Proxy</h3> <p>The Secure Proxy is responsible for:</p> <ul> <li> <p>participating in secure cryptographic subroutines</p> </li> <li> <p>supporting decryption-related or secure comparison-related steps where required by the protocol</p> </li> <li> <p>remaining logically separated from the Navigation Server</p> </li> </ul> <h3>4.3 Local Reproduction Mode</h3> <p>In this artifact, the two-party setting is reproduced locally within the provided implementation environment.<br>That is, the distributed model described in the paper is simulated on a single machine for reproducibility, while preserving the logical separation between the two entities in the code design.</p> <h2> 5. Reproducing Experimental Results</h2> <p>The main experiments are reproduced through:</p> <pre><code>src/test/java/Test3.java </code></pre> <p>This class is the <strong>primary test entry</strong> for running the Gaia evaluation.</p> <h3>5.1 Configure Experimental Parameters</h3> <p>Before execution, open <code>Test3.java</code> and check the experiment parameters.<br>You may modify the relevant arrays or variables to control:</p> <ul> <li> <p>the number of waypoints / stops</p> </li> <li> <p>the number of ordering constraints</p> </li> <li> <p>the blockage ratio or obstacle configuration</p> </li> <li> <p>the graph scale or dataset selection</p> </li> <li> <p>the number of repeated trials</p> </li> </ul> <p>Typical examples include settings such as:</p> <pre><code>private static final int[] WAYPOINT_COUNTS = {5}; private static final int[] CONSTRAINT_PAIRS = {1, 3, 5}; private static final double[] BLOCKAGE_RATIOS = {0.05, 0.15}; </code></pre> <p>Please use the parameter settings corresponding to the paper when reproducing the final reported results.</p> <h3>5.2 Compile the Project</h3> <p>Run the following command in the project root directory:</p> <pre><code>mvn clean test-compile </code></pre> <p>If memory allocation is needed, run:</p> <pre><code>MAVEN_OPTS="-Xms8g -Xmx16g" mvn clean test-compile </code></pre> <h3>5.3 Execute the Main Test</h3> <p>Run <code>Test3</code> with Maven:</p> <pre><code>mvn exec:java -Dexec.mainClass="Test3" -Dexec.classpathScope=test </code></pre> <p>If memory allocation is needed, run:</p> <pre><code>MAVEN_OPTS="-Xms8g -Xmx16g" mvn exec:java -Dexec.mainClass="Test3" -Dexec.classpathScope=test </code></pre> <p>On Windows PowerShell:</p> <pre><code>$env:MAVEN_OPTS="-Xms8g -Xmx16g" mvn exec:java -Dexec.mainClass="Test3" -Dexec.classpathScope=test </code></pre> <h3>5.4 Expected Execution Flow</h3> <p>When <code>Test3</code> is executed, the system will typically perform the following steps:</p> <ol> <li> <p>load graph and resource files from <code>src/main/resources/</code></p> </li> <li> <p>initialize the cryptographic environment</p> </li> <li> <p>construct or load encrypted graph-related structures</p> </li> <li> <p>generate test queries under the configured constraints</p> </li> <li> <p>run secure semi-constrained navigation</p> </li> <li> <p>measure performance and quality metrics</p> </li> <li> <p>write the results to output files</p> </li> </ol> <h2> 6. Experimental Outputs</h2> <p>After execution, the system generates performance results and evaluation outputs.<br>Depending on the dataset and parameter settings, the output files may include CSV or text files such as:</p> <ul> <li> <p>performance summary files</p> </li> <li> <p>routing evaluation results</p> </li> <li> <p>timing breakdowns</p> </li> <li> <p>similarity metrics</p> </li> <li> <p>path quality statistics</p> </li> </ul> <p>Typical reported metrics include:</p> <ul> <li> <p>encryption time</p> </li> <li> <p>token generation time</p> </li> <li> <p>secure query execution time</p> </li> <li> <p>path length related statistics</p> </li> <li> <p>LenSim</p> </li> <li> <p>HPS</p> </li> <li> <p>other routing quality indicators used in the paper</p> </li> </ul> <p>Please check the project output directory or the paths specified in <code>Test3.java</code> for the generated result files.</p> <h2> 7. Reproduction Tips</h2> <p>To improve the success rate of reproduction, please note the following:</p> <ul> <li> <p>Use <strong>Java 11+</strong> and <strong>Maven 3.6+</strong></p> </li> <li> <p>Ensure all files under <code>src/main/resources/</code> are kept intact</p> </li> <li> <p>Do not arbitrarily rename project directories</p> </li> <li> <p>Use the recommended JVM memory settings</p> </li> <li> <p>Run the project from the <strong>root directory</strong> containing <code>pom.xml</code></p> </li> <li> <p>If a path-related error occurs, first check whether the code contains machine-specific absolute paths and replace them with project-relative paths if necessary</p> </li> </ul> <h2>⚠️ 8. Common Issues</h2> <h3>8.1 OutOfMemoryError</h3> <p>If you encounter <code>OutOfMemoryError</code>, increase JVM heap size:</p> <pre><code>MAVEN_OPTS="-Xms8g -Xmx16g" </code></pre> <h3>8.2 File Not Found</h3> <p>If the program cannot find dataset or resource files:</p> <ul> <li> <p>check whether the required files exist under <code>src/main/resources/</code></p> </li> <li> <p>make sure the project is executed from the root directory</p> </li> <li> <p>verify that no path strings were broken during file extraction</p> </li> </ul> <h3>8.3 Maven Dependency Problems</h3> <p>If Maven fails to resolve dependencies:</p> <ul> <li> <p>ensure Maven is correctly installed</p> </li> <li> <p>check local dependency configuration in <code>pom.xml</code></p> </li> <li> <p>verify that the <code>libs/</code> directory is present if the project depends on local jars</p> </li> </ul> <h3>8.4 Platform Compatibility</h3> <p>This implementation is most suitable for the environment in which it was originally developed.<br>If you run it on a different machine or operating system, minor path or native dependency adjustments may be necessary.</p> <h2> ️ 9. Security Note</h2> <p>The current artifact reproduces the <strong>semi-honest two-party model</strong> described in the paper.</p> <ul> <li> <p>The <strong>Navigation Server</strong> and <strong>Secure Proxy</strong> are assumed to be <strong>non-colluding</strong></p> </li> <li> <p>Sensitive routing information is processed under encryption</p> </li> <li> <p>The implementation is intended to demonstrate the secure navigation workflow and reproduce the experimental results presented in the paper</p> </li> </ul> <p>This artifact is designed for <strong>research reproducibility only</strong>.</p> <h2> 10. Minimal Reproduction Command</h2> <p>For quick reproduction, use the following commands from the project root:</p> <pre><code>mvn clean test-compile MAVEN_OPTS="-Xms8g -Xmx16g" mvn exec:java -Dexec.mainClass="Test3" -Dexec.classpathScope=test </code></pre> <p>On Windows PowerShell:</p> <pre><code>$env:MAVEN_OPTS="-Xms8g -Xmx16g" mvn clean test-compile mvn exec:java -Dexec.mainClass="Test3" -Dexec.classpathScope=test </code></pre> <h2> 11. Artifact Scope</h2> <p>This artifact includes the code and resources necessary to reproduce the core experimental workflow of Gaia.<br>It is intended to support the evaluation of:</p> <ul> <li> <p>encrypted graph processing</p> </li> <li> <p>secure semi-constrained navigation</p> </li> <li> <p>performance measurements</p> </li> <li> <p>path-quality related metrics reported in the paper</p> </li> </ul> |
| title | DNS 2026 - Gaia - Accurate Secure and Efficient Semi-Constrained Navigation with Multiple Spatial Restrictions |
| url | https://doi.org/10.5281/zenodo.19159671 |