Evaluates a distributed and a contributory ECC as well as traditional Diffie-Hellman (DH) GKA approach.
Adjust the ABSOLUTE_PROJECT_PATH
variable according to your project path.
The eval_automization_scripts/start_runs.bash
script starts evaluation runs. The parameters before the for loop can be adjusted. The key agreement protocols and cryptography algorithms can be adjusted by the following compile definitions:
PROTO_DST_DH
: The distributed DH protocolPROTO_STR_DH
: The contributory DH protocol
DEFAULT_DH
: The traditional DH cryptography algorithmECC_DH
: The Elliptic Curve DH cryptography algorithm
The protocols are also able to maintain the key agreement despite message loss by adding the RETRANSMISSIONS
compile definition in the eval_automization_scripts/start_evaluation.bash
script to the compile
method (e.g., ... add_compile_definitions($CRYPTO_ALGORITHM $KEY_AGREEMENT_PROTOCOL RETRANSMISSIONS) ...
)
Large send and receive buffers can be used to carry out the evaluation with several hundred processes without retransmissions. For example, if you want to use 8GB (1024*1024*8=8388608) for the buffers, create the file /etc/sysctl.d/99-netbuffer.conf
. Then insert
net.core.rmem_max = 8388608
net.core.wmem_max = 8388608
in separate lines in /etc/sysctl.d/99-netbuffer.conf
. To apply the changes reboot or execute sysctl -p /etc/sysctl.d/99-netbuffer.conf
.
- It is possible that multiple processes get the same port, which is handled by
multicast_channel/multicast_channel.cpp
in themulticast_channel::is_port_bound_once
method
[1] Y. Kim et al., “Group Key Agreement Efficient in Communication,”
IEEE Transactions on Computers, vol. 53, pp. 905–921, Jul. 2004.
[2] Y. Amir et al., “On the Performance of Group Key Agreement Protocols,” ACM Transactions on Information and System Security, vol. 7, pp. 457–488, Aug. 2004.