Skip to content

Commit

Permalink
TungstenCode
Browse files Browse the repository at this point in the history
  • Loading branch information
ladnir committed Jan 23, 2024
1 parent 8193dc3 commit e6251a8
Show file tree
Hide file tree
Showing 26 changed files with 2,350 additions and 378 deletions.
2 changes: 1 addition & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ if (POLICY CMP0048)
cmake_policy(SET CMP0048 NEW)
endif (POLICY CMP0048)

project(libOTe VERSION 2.1.0)
project(libOTe VERSION 2.2.0)

include(cmake/libOTePreamble.cmake)

Expand Down
18 changes: 12 additions & 6 deletions CMakePresets.json
Original file line number Diff line number Diff line change
Expand Up @@ -52,17 +52,22 @@
"ENABLE_PPRF": true,
"ENABLE_SILENT_VOLE": true,
"LIBOTE_STD_VER": "17",
"ENABLE_ALL_OT": true,
"ENABLE_KKRT": "ON",
"ENABLE_IKNP": "ON",
"ENABLE_MR": "ON",
"ENABLE_SIMPLESTOT": "ON",
"ENABLE_GMP": false,
"ENABLE_RELIC": false,
"ENABLE_SODIUM": true,
"ENABLE_BOOST": true,
"ENABLE_BITPOLYMUL": false,
"ENABLE_BOOST": false,
"ENABLE_BITPOLYMUL": true,
"FETCH_AUTO": "ON",
"ENABLE_CIRCUITS": true,
"VERBOSE_FETCH": true,
"ENABLE_SSE": true,
"ENABLE_AVX": true,
"ENABLE_ASAN": false,
"COPROTO_ENABLE_BOOST": true,
"CMAKE_INSTALL_PREFIX": "${sourceDir}/out/install/${presetName}",
"CMAKE_PREFIX_PATH": "${sourceDir}/../out/install/${presetName}"
},
Expand All @@ -87,10 +92,11 @@
"cacheVariables": {
"CMAKE_BUILD_TYPE": "RelWithDebInfo",
"LIBOTE_STD_VER": "17",
"ENABLE_GMP": false,
"ENABLE_ALL_OT": true,
"ENABLE_RELIC": true,
"ENABLE_SODIUM": false,
"ENABLE_BOOST": true,
"ENABLE_RELIC": false,
"ENABLE_SODIUM": true,
"ENABLE_BOOST": false,
"ENABLE_OPENSSL": false,
"FETCH_AUTO": true,
"ENABLE_CIRCUITS": true,
Expand Down
36 changes: 19 additions & 17 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,22 +7,24 @@
A fast and portable C++17 library for Oblivious Transfer extension (OTe). The
primary design goal of this library to obtain *high performance* while being
*easy to use*. Checkout [version 1.6](https://github.com/osu-crypto/libOTe/releases/tag/v1.6.0) for the previous version.
This library currently implements:

* The semi-honest 1-out-of-2 OT [[IKNP03]](https://www.iacr.org/archive/crypto2003/27290145/27290145.pdf).
* The semi-honest 1-out-of-2 Silent OT [[BCGIKRS19]](https://eprint.iacr.org/2019/1159.pdf).
* The semi-honest 1-out-of-2 Delta-OT [[IKNP03]](https://www.iacr.org/archive/crypto2003/27290145/27290145.pdf),[[BLNNOOSS15]](https://eprint.iacr.org/2015/472.pdf).
* The semi-honest 1-out-of-2 OT [[Roy22]](https://eprint.iacr.org/2022/192).
* The semi-honest 1-out-of-N OT [[KKRT16]](https://eprint.iacr.org/2016/799).
* The malicious secure 1-out-of-2 Silent+Expand Convolute [[RRT23]](https://eprint.iacr.org/2023/882).
* The malicious secure 1-out-of-2 OT [[KOS15]](https://eprint.iacr.org/2015/546).
* The malicious secure 1-out-of-2 Delta-OT [[KOS15]](https://eprint.iacr.org/2015/546),[[BLNNOOSS15]](https://eprint.iacr.org/2015/472.pdf).
* The malicious 1-out-of-2 OT [[Roy22]](https://eprint.iacr.org/2022/192).
* The malicious secure 1-out-of-N OT [[OOS16]](http://eprint.iacr.org/2016/933).
* The malicious secure 1-out-of-2 base OT [NP01].
* The malicious secure 1-out-of-2 base OT [[CO15]](https://eprint.iacr.org/2015/267.pdf) (Faster Linux ASM version disabled by default).
* The malicious secure 1-out-of-2 base OT [[MR19]](https://eprint.iacr.org/2019/706.pdf)
* Several malicious secure batched 1-out-of-2 base OTs from [[MRR21]](https://eprint.iacr.org/2021/682)
Semi-honest OT extension:
* 1-out-of-2 Silent OT [[BCGIKRS19]](https://eprint.iacr.org/2019/1159.pdf),[[RRT23]](https://eprint.iacr.org/2023/882).
* 1-out-of-2 OT [[IKNP03]](https://www.iacr.org/archive/crypto2003/27290145/27290145.pdf).
* 1-out-of-2 Correlated-OT [[IKNP03]](https://www.iacr.org/archive/crypto2003/27290145/27290145.pdf),[[BLNNOOSS15]](https://eprint.iacr.org/2015/472.pdf).
* 1-out-of-2 OT [[Roy22]](https://eprint.iacr.org/2022/192).
* 1-out-of-N OT [[KKRT16]](https://eprint.iacr.org/2016/799).

Malicious OT extension:
* 1-out-of-2 Silent OT [[BCGIKRS19]](https://eprint.iacr.org/2019/1159.pdf),[[RRT23]](https://eprint.iacr.org/2023/882).
* 1-out-of-2 OT [[KOS15]](https://eprint.iacr.org/2015/546).
* 1-out-of-2 Correlated-OT [[KOS15]](https://eprint.iacr.org/2015/546).
* 1-out-of-2 OT [[Roy22]](https://eprint.iacr.org/2022/192).
* 1-out-of-2 base OT, several protocols.

Vole:
* Generic subfield noisy VOLE (semi-honest) [[BCGIKRS19]](https://eprint.iacr.org/2019/1159.pdf)
* Generic subfield silent VOLE (malicious/semi-honest) [[BCGIKRS19]](https://eprint.iacr.org/2019/1159.pdf),[[RRT23]](https://eprint.iacr.org/2023/882).

## Introduction

Expand Down Expand Up @@ -73,10 +75,10 @@ LibOTe can be built with various only the selected protocols enabled. `-D ENABLE
* `ENABLE_KOS` the Keller et al [[KOS15]](https://eprint.iacr.org/2015/546) malicious protocol.
* `ENABLE_DELTA_KOS` the Burra et al [[BLNNOOSS15]](https://eprint.iacr.org/2015/472.pdf),[[KOS15]](https://eprint.iacr.org/2015/546) malicious Delta-OT protocol.
* `ENABLE_SOFTSPOKEN_OT` the Roy [Roy22](https://eprint.iacr.org/2022/192) semi-honest/malicious protocol.
* `ENABLE_SILENTOT` the Couteau et al [RRT23],[[BCGIKRS19]](https://eprint.iacr.org/2019/1159.pdf) semi-honest/malicious protocol.
* `ENABLE_SILENTOT` the [[BCGIKRS19]](https://eprint.iacr.org/2019/1159.pdf),[[RRT23]](https://eprint.iacr.org/2023/882) semi-honest/malicious protocol.

**Vole:**
* `ENABLE_SILENT_VOLE` the Couteau et al [CRR21] semi-honest/malicious protocol.
* `ENABLE_SILENT_VOLE` the [[BCGIKRS19]](https://eprint.iacr.org/2019/1159.pdf),[[RRT23]](https://eprint.iacr.org/2023/882) semi-honest/malicious protocol.

Addition options can be set for cryptoTools. See the cmake output.

Expand Down
2 changes: 2 additions & 0 deletions frontend/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,8 @@ target_link_libraries(frontend_libOTe libOTe_Tests tests_cryptoTools)
if(MSVC)
target_compile_options(frontend_libOTe PRIVATE $<$<COMPILE_LANGUAGE:CXX>:/std:c++${LIBOTE_STD_VER}>)


target_compile_options(frontend_libOTe PRIVATE "/bigobj")
else()
target_compile_options(frontend_libOTe PRIVATE $<$<COMPILE_LANGUAGE:CXX>:-std=c++${LIBOTE_STD_VER}>)
endif()
Loading

0 comments on commit e6251a8

Please sign in to comment.