@@ -11,31 +11,34 @@ This repository hosts the source code for the tools presented in our paper, acce
11
11
12
12
## Table of Contents
13
13
14
- - [ Required Software] ( #required-software )
15
- - [ Installation] ( #installation )
16
- - [ Method 1] ( #method-1 )
17
- - [ Method 2] ( #method-2 )
18
- - [ Structure of Our Tool] ( #structure-of-our-tool )
19
- - [ Usage] ( #usage )
20
- - [ Example 1: TWINE] ( #example-1-twine )
21
- - [ Example 2: WARP] ( #example-2-warp )
22
- - [ Example 3: AES] ( #example-3-aes )
23
- - [ Example 4: Ascon] ( #example-4-ascon )
24
- - [ Analytical Estimations] ( #analytical-estimations )
25
- - [ Example 1: 8 Rounds of TWINE (Basic)] ( #example-1-8-rounds-of-twine-basic )
26
- - [ Example 2: 3 Rounds of AES (Medium)] ( #example-2-3-rounds-of-aes-medium )
27
- - [ Example 3: 9 Rounds of TWINE (Medium)] ( #example-3-9-rounds-of-twine-medium )
28
- - [ Example 4: 10 Rounds of TWINE (Complex)] ( #example-4-10-rounds-of-twine-complex )
29
- - [ Experimental Verification] ( #experimental-verification )
30
- - [ Example 1: AES] ( #example-1-aes )
31
- - [ Example 2: TWINE] ( #example-2-twine )
32
- - [ Example 3: Ascon] ( #example-3-ascon )
33
- - [ Example 4: WARP] ( #example-4-warp )
34
- - [ Encoding S-boxes and Other Building Block Functions] ( #encoding-s-boxes-and-other-building-block-functions )
35
- - [ Verifying Proposition 2] ( #verifying-proposition-2 )
36
- - [ References] ( #references )
37
- - [ Citation] ( #citation )
38
- - [ License] ( #license )
14
+ - [ Revisiting Differential-Linear Attacks via a Boomerang Perspective] ( #revisiting-differential-linear-attacks-via-a-boomerang-perspective )
15
+ - [ Table of Contents] ( #table-of-contents )
16
+ - [ Required Software] ( #required-software )
17
+ - [ Installation] ( #installation )
18
+ - [ Method 1] ( #method-1 )
19
+ - [ Method 2] ( #method-2 )
20
+ - [ Installing Gurobi and ` gurobipy ` ] ( #installing-gurobi-and-gurobipy )
21
+ - [ Structure of Our Tool] ( #structure-of-our-tool )
22
+ - [ Usage] ( #usage )
23
+ - [ Example 1: TWINE] ( #example-1-twine )
24
+ - [ Example 2: WARP] ( #example-2-warp )
25
+ - [ Example 3: AES] ( #example-3-aes )
26
+ - [ Example 4: Ascon] ( #example-4-ascon )
27
+ - [ Analythical Estimations] ( #analythical-estimations )
28
+ - [ Example 1: 8 Rounds of TWINE (Basic)] ( #example-1-8-rounds-of-twine-basic )
29
+ - [ Example 2: 3 Rounds of AES (Medium)] ( #example-2-3-rounds-of-aes-medium )
30
+ - [ Example 3: 9 Rounds of TWINE (Medium)] ( #example-3-9-rounds-of-twine-medium )
31
+ - [ Example 4: 10 Rounds of TWINE (Complex)] ( #example-4-10-rounds-of-twine-complex )
32
+ - [ Experimental Verification] ( #experimental-verification )
33
+ - [ Example 1: AES] ( #example-1-aes )
34
+ - [ Example 2: TWINE] ( #example-2-twine )
35
+ - [ Example 3: Ascon] ( #example-3-ascon )
36
+ - [ Example 4: WARP] ( #example-4-warp )
37
+ - [ Encoding S-boxes and Other Building Block Functions] ( #encoding-s-boxes-and-other-building-block-functions )
38
+ - [ Verifying Proposition 2] ( #verifying-proposition-2 )
39
+ - [ References] ( #references )
40
+ - [ Citation] ( #citation )
41
+ - [ License ] ( #license- )
39
42
40
43
## Required Software
41
44
@@ -82,30 +85,24 @@ To install MiniZinc and required Python packages in Ubuntu, one can use the foll
82
85
83
86
``` bash
84
87
#! /bin/bash
85
-
86
88
# Update and upgrade system packages
87
- sudo apt update -y
88
- sudo apt upgrade -y
89
+ apt update -y
90
+ apt upgrade -y
89
91
90
92
# Install system dependencies
91
- sudo apt install -y python3-full python3-pip python3-venv git wget curl
92
-
93
- # Create a working directory
94
- mkdir -p " $HOME /minizinc_install"
95
- cd " $HOME /minizinc_install"
93
+ apt install -y python3-full python3-pip python3-venv git wget curl
96
94
97
95
# Download and extract the latest MiniZinc release
98
96
LATEST_MINIZINC_VERSION=$( curl -s https://api.github.com/repos/MiniZinc/MiniZincIDE/releases/latest | grep -oP ' "tag_name": "\K(.*)(?=")' )
99
- wget " https://github.com/MiniZinc/MiniZincIDE/releases/download/$LATEST_MINIZINC_VERSION /MiniZincIDE-$LATEST_MINIZINC_VERSION -bundle-linux-x86_64.tgz"
100
- tar -xvzf MiniZincIDE-$LATEST_MINIZINC_VERSION -bundle-linux-x86_64.tgz
101
- mv MiniZincIDE-$LATEST_MINIZINC_VERSION -bundle-linux-x86_64 " $HOME /minizinc"
102
- rm MiniZincIDE-$LATEST_MINIZINC_VERSION -bundle-linux-x86_64.tgz
103
-
104
- # Clean up the created folders
105
- rm -rf " $HOME /minizinc_install"
97
+ wget " https://github.com/MiniZinc/MiniZincIDE/releases/download/${LATEST_MINIZINC_VERSION} /MiniZincIDE-${LATEST_MINIZINC_VERSION} -bundle-linux-x86_64.tgz"
98
+ mkdir -p " $HOME /minizinc"
99
+ tar -xvzf " MiniZincIDE-${LATEST_MINIZINC_VERSION} -bundle-linux-x86_64.tgz" -C " $HOME /minizinc" --strip-components=1
100
+ rm " MiniZincIDE-${LATEST_MINIZINC_VERSION} -bundle-linux-x86_64.tgz"
106
101
107
- # Add MiniZinc to system PATH
108
- sudo ln -sf " $HOME /minizinc/bin/minizinc" /usr/local/bin/minizinc
102
+ # Create a wrapper script to call MiniZinc with proper LD_LIBRARY_PATH
103
+ echo ' #!/bin/bash' > /usr/local/bin/minizinc
104
+ echo " exec env LD_LIBRARY_PATH=\$ HOME/minizinc/lib:\$ LD_LIBRARY_PATH \$ HOME/minizinc/bin/minizinc \"\$ @\" " >> /usr/local/bin/minizinc
105
+ chmod +x /usr/local/bin/minizinc
109
106
110
107
# Create a Python virtual environment
111
108
python3 -m venv " $HOME /dlvenv"
@@ -125,6 +122,7 @@ python3 -m pip install gurobipy
125
122
```
126
123
127
124
For detailed instructions on installing Gurobi and obtaining an academic license, refer to the [ GrabGurobi repository] ( https://github.com/hadipourh/grabgurobi ) .
125
+ The above commands are included in the [ install.sh] ( install.sh ) script, which can be executed to set up the environment.
128
126
129
127
## Structure of Our Tool
130
128
We have developed our tools using a modular approach to ensure flexibility and maintainability. The workflow is divided into three main modules:
0 commit comments