permute_xmatrix_compressed.sh 6.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235
  1. #parse argument
  2. architecture=$1
  3. permutation=$2
  4. matrix_decompressed_file=$3
  5. matrix_comp_file=$4
  6. output_dir=$5
  7. lorem_ipsum_file=$6
  8. if [ $permutation -eq 0 ] ; then
  9. permutation_str=""
  10. else
  11. permutation_str=" -no-permutation-key "
  12. fi
  13. # permute xmatrix compressed random
  14. str="
  15. xrnlib-cli \
  16. --decoding-conf -compiled-param -no-password \
  17. --encoding-conf -compiled-param -no-password \
  18. --sequence-conf -xmatrix-comp $matrix_comp_file \
  19. --permutation-conf -arch $architecture \
  20. --permute-xmatrix-comp-rnd -xmatrix-comp-dst $output_dir/xmatrix_comp_rnd.xf
  21. "
  22. echo ""; echo $str; echo ""
  23. eval $str
  24. # check if the xmatrix compressed permuted randomly is different
  25. str="
  26. xrnlib-cli \
  27. --decoding-conf -compiled-param -no-password \
  28. --permutation-conf -arch $architecture \
  29. --logging-conf -lib-info-log $output_dir/xmatrix_comp_rnd.json \
  30. --print-header -xrn-file $output_dir/xmatrix_comp_rnd.xf
  31. "
  32. echo ""; echo $str; echo ""
  33. eval $str
  34. str="
  35. xrnlib-cli \
  36. --decoding-conf -compiled-param -no-password \
  37. --permutation-conf -arch $architecture \
  38. --logging-conf -lib-info-log $output_dir/xmatrix_comp.json \
  39. --print-header -xrn-file $matrix_comp_file
  40. "
  41. echo ""; echo $str; echo ""
  42. eval $str
  43. str="
  44. cmp --silent $output_dir/xmatrix_comp.json $output_dir/xmatrix_comp_rnd.json && echo 'FAIL'
  45. "
  46. echo ""; echo $str; echo ""
  47. eval $str
  48. # permute xmatrix compressed deterministically 2 times
  49. str="
  50. xrnlib-cli \
  51. --decoding-conf -compiled-param -no-password \
  52. --encoding-conf -compiled-param -no-password \
  53. --sequence-conf -xmatrix-comp $matrix_comp_file -xmatrix $matrix_decompressed_file \
  54. --permutation-conf -arch $architecture \
  55. --permute-xmatrix-comp-det -xmatrix-comp-dst $output_dir/xmatrix_comp_det_0.xf
  56. "
  57. echo ""; echo $str; echo ""
  58. eval $str
  59. str="
  60. xrnlib-cli \
  61. --decoding-conf -compiled-param -no-password \
  62. --encoding-conf -compiled-param -no-password \
  63. --sequence-conf -xmatrix-comp $matrix_comp_file -xmatrix $matrix_decompressed_file \
  64. --permutation-conf -arch $architecture \
  65. --permute-xmatrix-comp-det -xmatrix-comp-dst $output_dir/xmatrix_comp_det_1.xf
  66. "
  67. echo ""; echo $str; echo ""
  68. eval $str
  69. # check if the xmatrices compressed permuted deterministically are different
  70. str="
  71. xrnlib-cli \
  72. --decoding-conf -compiled-param -no-password \
  73. --permutation-conf -arch $architecture \
  74. --logging-conf -lib-info-log $output_dir/xmatrix_comp_det_0.json \
  75. --print-header -xrn-file $output_dir/xmatrix_comp_det_0.xf
  76. "
  77. echo ""; echo $str; echo ""
  78. eval $str
  79. str="
  80. xrnlib-cli \
  81. --decoding-conf -compiled-param -no-password \
  82. --permutation-conf -arch $architecture \
  83. --logging-conf -lib-info-log $output_dir/xmatrix_comp_det_1.json \
  84. --print-header -xrn-file $output_dir/xmatrix_comp_det_1.xf
  85. "
  86. echo ""; echo $str; echo ""
  87. eval $str
  88. str="
  89. cmp --silent $output_dir/xmatrix_comp_det_0.json $output_dir/xmatrix_comp_det_1.json || echo 'FAIL'
  90. "
  91. echo ""; echo $str; echo ""
  92. eval $str
  93. str="
  94. cmp --silent $output_dir/xmatrix_comp_det_0.json $output_dir/xmatrix_comp.json && echo 'FAIL'
  95. "
  96. echo ""; echo $str; echo ""
  97. eval $str
  98. # permute xmatrix compressed securely 2 times
  99. str="
  100. xrnlib-cli \
  101. --encoding-conf -compiled-param -no-password \
  102. --permutation-conf -arch $architecture $permutation_str \
  103. --make-monomial-key -monomial-key $output_dir/monomial_key_file.xf
  104. "
  105. echo ""; echo $str; echo ""
  106. eval $str
  107. str="
  108. xrnlib-cli \
  109. --decoding-conf -compiled-param -no-password \
  110. --encoding-conf -compiled-param -no-password \
  111. --arithmetic-conf -monomial-key $output_dir/monomial_key_file.xf \
  112. --sequence-conf -xmatrix-comp $matrix_comp_file -xmatrix $matrix_decompressed_file \
  113. --permutation-conf -arch $architecture \
  114. --permute-xmatrix-comp-sec -xmatrix-comp-dst $output_dir/xmatrix_comp_sec_0.xf
  115. "
  116. echo ""; echo $str; echo ""
  117. eval $str
  118. str="
  119. xrnlib-cli \
  120. --decoding-conf -compiled-param -no-password \
  121. --encoding-conf -compiled-param -no-password \
  122. --arithmetic-conf -monomial-key $output_dir/monomial_key_file.xf \
  123. --sequence-conf -xmatrix-comp $matrix_comp_file -xmatrix $matrix_decompressed_file \
  124. --permutation-conf -arch $architecture \
  125. --permute-xmatrix-comp-sec -xmatrix-comp-dst $output_dir/xmatrix_comp_sec_1.xf
  126. "
  127. echo ""; echo $str; echo ""
  128. eval $str
  129. # check if the xmatrices compressed permuted deterministically are different
  130. str="
  131. xrnlib-cli \
  132. --decoding-conf -compiled-param -no-password \
  133. --permutation-conf -arch $architecture \
  134. --logging-conf -lib-info-log $output_dir/xmatrix_comp_sec_0.json \
  135. --print-header -xrn-file $output_dir/xmatrix_comp_sec_0.xf
  136. "
  137. echo ""; echo $str; echo ""
  138. eval $str
  139. str="
  140. xrnlib-cli \
  141. --decoding-conf -compiled-param -no-password \
  142. --permutation-conf -arch $architecture \
  143. --logging-conf -lib-info-log $output_dir/xmatrix_comp_sec_1.json \
  144. --print-header -xrn-file $output_dir/xmatrix_comp_sec_1.xf
  145. "
  146. echo ""; echo $str; echo ""
  147. eval $str
  148. str="
  149. cmp --silent $output_dir/xmatrix_comp_sec_0.json $output_dir/xmatrix_comp_sec_1.json || echo 'FAIL'
  150. "
  151. echo ""; echo $str; echo ""
  152. eval $str
  153. str="
  154. cmp --silent $output_dir/xmatrix_comp_sec_0.json $output_dir/xmatrix_comp.json && echo 'FAIL'
  155. "
  156. echo ""; echo $str; echo ""
  157. eval $str
  158. # check xmatrices
  159. str="
  160. xrnlib-cli \
  161. --decoding-conf -compiled-param -no-password \
  162. --encoding-conf -compiled-param -no-password \
  163. --sequence-conf -xmatrix-comp $output_dir/xmatrix_comp_sec_0.xf \
  164. --permutation-conf -arch $architecture \
  165. --decompress-xmatrix -xmatrix $output_dir/xmatrix_dec_sec_0.xf
  166. "
  167. echo ""; echo $str; echo ""
  168. eval $str
  169. str="
  170. xrnlib-cli \
  171. --decoding-conf -compiled-param -no-password \
  172. --sequence-conf -xmatrix $output_dir/xmatrix_dec_sec_0.xf \
  173. --permutation-conf -arch $architecture \
  174. --logging-conf -lib-info-log $output_dir/lib_info_xmatrix_dec_sec_0.json \
  175. --check-xmatrix
  176. "
  177. echo ""; echo $str; echo ""
  178. eval $str
  179. str="
  180. if ! [ -s $output_dir/lib_info_xmatrix_dec_sec_0.json ]; then echo FAIL ; exit ; fi ; \
  181. if grep -q FAIL \"$output_dir/lib_info_xmatrix_dec_sec_0.json\" ; then echo FAIL ; exit ; fi
  182. "
  183. echo ""; echo $str; echo ""
  184. eval $str
  185. str="
  186. xrnlib-cli \
  187. --decoding-conf -compiled-param -no-password \
  188. --sequence-conf -xmatrix-comp $output_dir/xmatrix_comp_sec_0.xf \
  189. --permutation-conf -arch $architecture \
  190. --logging-conf -lib-info-log $output_dir/lib_info_xmatrix_comp_sec_0.json \
  191. --check-xmatrix-comp
  192. "
  193. echo ""; echo $str; echo ""
  194. eval $str
  195. str="
  196. if ! [ -s $output_dir/lib_info_xmatrix_comp_sec_0.json ]; then echo FAIL ; exit ; fi ; \
  197. if grep -q FAIL \"$output_dir/lib_info_xmatrix_comp_sec_0.json\" ; then echo FAIL ; exit ; fi
  198. "
  199. echo ""; echo $str; echo ""
  200. eval $str