diff --git a/frontend/frontend.vcxproj b/frontend/frontend.vcxproj index 817719e7f8..4c8d3d6a24 100644 --- a/frontend/frontend.vcxproj +++ b/frontend/frontend.vcxproj @@ -51,14 +51,14 @@ Level3 Disabled true - $(ProjectDir);D:\VisualGDB\allprojects\libPSI\libOTe;$(SolutionDir)/cryptoTools;$(solutionDir)thirdparty\win\boost\;$(SolutionDir)/libPSI_Tests;$(SolutionDir)/libOPRF;$(SolutionDir)/libPSI;$(SolutionDir)thirdparty\win\;$(SolutionDir)thirdparty/win/NTL/include;$(SolutionDir)thirdparty/win/miracl;D:\libs\boost;C:/libs/boost;C:/libs/;C:/libs/NTL/include;C:/libs/miracl;H:\npsi\cryptoTools;C:\Program Files %28x86%29\Visual Leak Detector\include;$(libOTeDir)/libOTe;D:\libs\miracl + $(ProjectDir);$(SolutionDir)/cryptoTools;$(solutionDir)thirdparty\win\boost\;$(SolutionDir)/libPSI_Tests;$(SolutionDir)/libOPRF;$(SolutionDir)thirdparty\win\;$(SolutionDir)thirdparty/win/NTL/include;$(SolutionDir)thirdparty/win/miracl;D:\libs\boost;C:/libs/boost;C:/libs/;C:/libs/NTL/include;C:/libs/miracl;C:\Program Files %28x86%29\Visual Leak Detector\include;D:\libs\miracl;$(SolutionDir)/libOTe MultiThreadedDebug SOLUTION_DIR=R"**($(SolutionDir))**";_WIN32_WINNT=0x0501;_MBCS;%(PreprocessorDefinitions) true D:\libs;$(VCInstallDir)UnitTest\lib;%(AdditionalLibraryDirectories);$(SolutionDir)\thirdparty\win\boost\stage\lib;C:/libs/boost\stage\lib;$(OutDir);$(SolutionDir)thirdparty\win\;D:/libs/boost\stage\lib;C:/libs/;C:\Program Files %28x86%29\Visual Leak Detector\lib\Win64;$(libOTeDir)\x64\$(Configuration) - libOTe.lib;libPSI.lib;libPSI_Tests.lib;cryptoTools.lib;mpir\lib\x64\Debug\mpir.lib;mpir\lib\x64\Debug\mpirxx.lib;Miracl\x64\$(Configuration)\miracl.lib;cryptopp\x64\Output\$(Configuration)\cryptlib.lib;NTL\x64\$(Configuration)\NTL.lib;libOPRF.lib;%(AdditionalDependencies) + libOTe.lib;libPSI_Tests.lib;cryptoTools.lib;mpir\lib\x64\Debug\mpir.lib;mpir\lib\x64\Debug\mpirxx.lib;Miracl\x64\$(Configuration)\miracl.lib;cryptopp\x64\Output\$(Configuration)\cryptlib.lib;NTL\x64\$(Configuration)\NTL.lib;libOPRF.lib;%(AdditionalDependencies) @@ -83,25 +83,15 @@ - - - - - - - - - - diff --git a/frontend/frontend.vcxproj.filters b/frontend/frontend.vcxproj.filters index df3c210256..41c10b49de 100644 --- a/frontend/frontend.vcxproj.filters +++ b/frontend/frontend.vcxproj.filters @@ -18,9 +18,6 @@ Source Files - - Source Files - Source Files @@ -30,47 +27,20 @@ Source Files - - Source Files - - - Source Files - Source Files - - Source Files - Source Files - - Header Files - - - Header Files - - - Header Files - Header Files Header Files - - Header Files - - - Header Files - - - Header Files - Header Files diff --git a/frontend/main.cpp b/frontend/main.cpp index abf0be5074..17f4f302e5 100644 --- a/frontend/main.cpp +++ b/frontend/main.cpp @@ -14,8 +14,6 @@ using namespace osuCrypto; #include "OtBinMain.h" #include "bitPosition.h" -#include "TwoChooseOne/KosOtExtReceiver.h" -#include "TwoChooseOne/KosOtExtSender.h" #include #include "Common/Log.h" //int miraclTestMain(); @@ -35,8 +33,8 @@ int main(int argc, char** argv) //Bit_Position_Random_Test(); //return 0; //OPPRF2_EmptrySet_Test_Main(); - //OPPRFn_EmptrySet_Test_Main(); - + OPPRFn_EmptrySet_Test_Main(); + return 0; std::vector mSet; u64 setSize = 1 << 20, psiSecParam = 40, bitSize = 128; u64 nParties=3; diff --git a/frontend/ntime b/frontend/ntime new file mode 100644 index 0000000000..e69de29bb2 diff --git a/libOPRF/Hashing/CuckooHasher1.cpp b/libOPRF/Hashing/CuckooHasher1.cpp index f48c895c3d..be594f89ed 100644 --- a/libOPRF/Hashing/CuckooHasher1.cpp +++ b/libOPRF/Hashing/CuckooHasher1.cpp @@ -19,19 +19,19 @@ namespace osuCrypto //u64 mSenderBinStashSize; CuckooParam1 k2n24s40CuckooParam1 - { {1.2,0.3 },{3,3},{32,32}}; + { { 1.15,0.17 },{ 3,2 },{ 32,64 } }; CuckooParam1 k2n20s40CuckooParam1 { { 1.15,0.17 },{ 3,2 },{ 32,64 } }; CuckooParam1 k2n16s40CuckooParam1 - { { 1.2,0.3 },{ 3,3 },{ 32,64 } }; + { { 1.15,0.17 },{ 3,2 },{ 32,64 } }; CuckooParam1 k2n12s40CuckooParam1 - { { 1.2,0.3 },{ 3,3 },{ 32,64 } }; + { { 1.15,0.17 },{ 3,2 },{ 32,64 } }; CuckooParam1 k2n08s40CuckooParam1 - { { 1.2,0.3 },{ 3,3 },{ 32,64 } }; + { { 1.15,0.17 },{ 3,2 },{ 32,64 } }; // not sure if this needs a stash of 40, but should be safe enough. CuckooParam1 k2n07s40CuckooParam1 - { { 1.2,0.3 },{ 3,3 },{ 32,64 } }; + { { 1.5,0.17 },{ 3,2 },{ 32,64 } }; CuckooHasher1::CuckooHasher1() @@ -402,7 +402,7 @@ namespace osuCrypto if (remaining > 0) { - //std::cout << "remaining: " << remaining << std::endl; + std::cout << "remaining: " << remaining << std::endl; throw std::runtime_error("" LOCATION); } } diff --git a/libOPRF/Hashing/SimpleHasher1.cpp b/libOPRF/Hashing/SimpleHasher1.cpp index 87264a0bd4..fe2528163f 100644 --- a/libOPRF/Hashing/SimpleHasher1.cpp +++ b/libOPRF/Hashing/SimpleHasher1.cpp @@ -9,6 +9,21 @@ namespace osuCrypto { + SimpleParam1 k2n24s40SimpleParam1 + { { 1.15,0.17 },{ 3,2 },{ 32,64 },{5,6} }; + SimpleParam1 k2n20s40SimpleParam1 + { { 1.15,0.17 },{ 3,2 },{ 32,64 } ,{ 5,6 } }; + SimpleParam1 k2n16s40SimpleParam1 + { { 1.15,0.17 },{ 3,2 },{ 32,64 },{ 5,6 } }; + SimpleParam1 k2n12s40SimpleParam1 + { { 1.15,0.17 },{ 3,2 },{ 32,64 },{ 5,6 } }; + SimpleParam1 k2n08s40SimpleParam1 + { { 1.15,0.17 },{ 3,2 },{ 32,64 },{ 5,6 } }; + + // not sure if this needs a stash of 40, but should be safe enough. + SimpleParam1 k2n07s40SimpleParam1 + { { 1.5,0.17 },{ 3,2 },{ 32,64 },{ 5,6 } }; + SimpleHasher1::SimpleHasher1() { @@ -108,18 +123,34 @@ namespace osuCrypto void SimpleHasher1::init(u64 n) { mN = n; - mMaxBinSize[0] = 32; - mMaxBinSize[1] = 64; - mBinCount[0] = 1.15*n; - mBinCount[1] = 0.17*n; + if (n <= 1 << 7) + mParams = k2n07s40SimpleParam1; + else if (n <= 1 << 8) + mParams = k2n08s40SimpleParam1; + else if (n <= 1 << 12) + mParams = k2n12s40SimpleParam1; + else if (n <= 1 << 16) + mParams = k2n16s40SimpleParam1; + else if (n <= 1 << 20) + mParams = k2n20s40SimpleParam1; + else if (n <= 1 << 24) + mParams = k2n24s40SimpleParam1; + else + throw std::runtime_error("not implemented"); + + mMaxBinSize[0] = mParams.mMaxBinSize[0]; + mMaxBinSize[1] = mParams.mMaxBinSize[1]; + + mBinCount[0] = mParams.mBinScaler[0]*n; + mBinCount[1] = mParams.mBinScaler[1] *n; mMtx.reset(new std::mutex[mBinCount[0] + mBinCount[1]]); mBins.resize(mBinCount[1] + mBinCount[0]); - mNumHashes[0] = 3; - mNumHashes[1] = 2; - mNumBits[0] = 5; - mNumBits[1] = 6; + mNumHashes[0] = mParams.mNumHashes[0]; + mNumHashes[1] = mParams.mNumHashes[1]; + mNumBits[0] = mParams.mNumBits[0]; + mNumBits[1] = mParams.mNumBits[1]; // auto log2n = log2ceil(n); diff --git a/libOPRF/Hashing/SimpleHasher1.h b/libOPRF/Hashing/SimpleHasher1.h index 75a9168024..7865f4ee13 100644 --- a/libOPRF/Hashing/SimpleHasher1.h +++ b/libOPRF/Hashing/SimpleHasher1.h @@ -14,6 +14,21 @@ namespace osuCrypto // {1<<24, 21} //}; + + + struct SimpleParam1 + { + + double mBinScaler[2]; + u64 mNumHashes[2]; + + u64 mMaxBinSize[2]; + u64 mNumBits[2]; + /* + double mBinStashScaler; + u64 mNumStashHashes; + u64 mSenderBinStashSize;*/ + }; class SimpleHasher1 { @@ -35,7 +50,7 @@ namespace osuCrypto std::unique_ptr mMtx; std::vector mBins; block mHashSeed; - + SimpleParam1 mParams; void print(u64 idxParty, bool isIdx, bool isOPRF, bool isMap, bool isPos) const; void init(u64 n); diff --git a/libOPRF/libOPRF.vcxproj b/libOPRF/libOPRF.vcxproj index 1494e2bc14..57246f67b3 100644 --- a/libOPRF/libOPRF.vcxproj +++ b/libOPRF/libOPRF.vcxproj @@ -51,7 +51,7 @@ Level3 Disabled true - D:\libs\miracl;D:\libs\boost;H:\npsi\cryptoTools;$(ProjectDir);$(SolutionDir)/cryptoTools;$(SolutionDir)thirdparty/win/boost;$(SolutionDir)thirdparty/win/NTL/include;$(SolutionDir)thirdparty/win/;$(SolutionDir)thirdparty/win/miracl;C:/libs/boost;C:/libs/;C:/libs/NTL/include;C:/libs/miracl;C:\Program Files %28x86%29\Visual Leak Detector\include;D:\VisualGDB\allprojects\libPSI\libOTe;$(libOTeDir)/libOTe + D:\libs\miracl;D:\libs\boost;$(ProjectDir);$(SolutionDir)/cryptoTools;$(SolutionDir)thirdparty/win/boost;$(SolutionDir)thirdparty/win/NTL/include;$(SolutionDir)thirdparty/win/;$(SolutionDir)thirdparty/win/miracl;C:/libs/boost;C:/libs/;C:/libs/NTL/include;C:/libs/miracl;C:\Program Files %28x86%29\Visual Leak Detector\include;$(SolutionDir)/libOTe SOLUTION_DIR=R"**($(SolutionDir))**";_MBCS;%(PreprocessorDefinitions);_WIN32_WINNT=0x0501 MultiThreadedDebug diff --git a/libPSI/libPSI.vcxproj b/libPSI/libPSI.vcxproj index 84b662ffdb..09e6b06d46 100644 --- a/libPSI/libPSI.vcxproj +++ b/libPSI/libPSI.vcxproj @@ -51,7 +51,7 @@ Level3 Disabled true - D:\libs\NTL;D:\libs\miracl;D:\libs\boost;$(ProjectDir);$(SolutionDir)/cryptoTools;C:/libs/boost;C:/libs/;D:/libs/NTL/include;C:/libs/NTL/include;C:/libs/miracl;C:\Program Files %28x86%29\Visual Leak Detector\include;D:\VisualGDB\allprojects\libPSI\libOTe;$(libOTeDir)/libOTe + D:\libs\NTL;D:\libs\miracl;D:\libs\boost;$(ProjectDir);$(SolutionDir)/cryptoTools;C:/libs/boost;C:/libs/;D:/libs/NTL/include;C:/libs/NTL/include;C:/libs/miracl;C:\Program Files %28x86%29\Visual Leak Detector\include;$(SolutionDir)/libOTe SOLUTION_DIR=R"**($(SolutionDir))**";_MBCS;%(PreprocessorDefinitions);_WIN32_WINNT=0x0501 MultiThreadedDebug diff --git a/libPSI_Tests/OPPRF_Tests.cpp b/libPSI_Tests/OPPRF_Tests.cpp index 7b07e002a2..6dc594dd65 100644 --- a/libPSI_Tests/OPPRF_Tests.cpp +++ b/libPSI_Tests/OPPRF_Tests.cpp @@ -1704,7 +1704,7 @@ void party3(u64 myIdx, u64 setSize, std::vector& mSet) //########################## //### Hashing //########################## - bins.hashing2Bins(set, nParties); + bins.hashing2Bins(set, 1); //bins.mSimpleBins.print(myIdx, true, false, false, false); //bins.mCuckooBins.print(myIdx, true, false, false); diff --git a/libPSI_Tests/libPSI_Tests.vcxproj b/libPSI_Tests/libPSI_Tests.vcxproj index 827434e4b5..6c7b210c5b 100644 --- a/libPSI_Tests/libPSI_Tests.vcxproj +++ b/libPSI_Tests/libPSI_Tests.vcxproj @@ -49,7 +49,7 @@ Level3 Disabled true - H:\npsi\cryptoTools;D:\libs\miracl;D:\libs\boost;D:\libs\NTL\include;D:\npsi\libOPRF;$(SolutionDir)/libOTe;$(SolutionDir)/cryptoTools;$(solutionDir)thirdparty\win\boost\;$(SolutionDir)/libPSI_Tests;$(SolutionDir)/libOPRF;$(SolutionDir)/libPSI;$(SolutionDir)thirdparty\win\;$(SolutionDir)thirdparty/win/miracl;$(SolutionDir)thirdparty/win/NTL/include;C:/libs/boost;C:/libs/;C:/libs/NTL/include;C:/libs/miracl;C:\Program Files %28x86%29\Visual Leak Detector\include;$(libOTeDir)/libOTe + D:\libs\miracl;D:\libs\boost;D:\libs\NTL\include;$(SolutionDir)/libOTe;$(SolutionDir)/cryptoTools;$(solutionDir)thirdparty\win\boost\;$(SolutionDir)/libPSI_Tests;$(SolutionDir)/libOPRF;$(SolutionDir)/libPSI;$(SolutionDir)thirdparty\win\;$(SolutionDir)thirdparty/win/miracl;$(SolutionDir)thirdparty/win/NTL/include;C:/libs/boost;C:/libs/;C:/libs/NTL/include;C:/libs/miracl;C:\Program Files %28x86%29\Visual Leak Detector\include MultiThreadedDebug SOLUTION_DIR=R"**($(SolutionDir))**";_WIN32_WINNT=0x0501;_MBCS;%(PreprocessorDefinitions) true diff --git a/libPSI_TestsVS/libPSI_TestsVS.vcxproj b/libPSI_TestsVS/libPSI_TestsVS.vcxproj index cc371408dd..d1a1893e8d 100644 --- a/libPSI_TestsVS/libPSI_TestsVS.vcxproj +++ b/libPSI_TestsVS/libPSI_TestsVS.vcxproj @@ -57,7 +57,7 @@ Use Level3 Disabled - D:\libs;D:\libs\boost;D:\libs\miracl;D:\npsi\libOPRF;$(solutionDir)/libOPRF;$(solutionDir)thirdparty\win\boost\;$(SolutionDir)/libPSI_Tests;$(SolutionDir)/libPSI;$(SolutionDir)thirdparty\win\;$(SolutionDir)thirdparty/win/NTL/include;$(SolutionDir)thirdparty/win/miracl;C:/libs/boost;C:/libs/;D:/libs/NTL/include;C:/libs/NTL/include;C:/libs/miracl;$(VCInstallDir)UnitTest\include;%(AdditionalIncludeDirectories);C:\Program Files %28x86%29\Visual Leak Detector\include + D:\libs;D:\libs\boost;D:\libs\miracl;$(solutionDir)/libOPRF;$(solutionDir)thirdparty\win\boost\;$(SolutionDir)/libPSI_Tests;$(SolutionDir)/libPSI;$(SolutionDir)thirdparty\win\;$(SolutionDir)thirdparty/win/NTL/include;$(SolutionDir)thirdparty/win/miracl;C:/libs/boost;C:/libs/;D:/libs/NTL/include;C:/libs/NTL/include;C:/libs/miracl;$(VCInstallDir)UnitTest\include;%(AdditionalIncludeDirectories);C:\Program Files %28x86%29\Visual Leak Detector\include;$(SolutionDir)/libOTe SOLUTION_DIR=R"**($(SolutionDir))**";_WIN32_WINNT=0x0501;_DEBUG;%(PreprocessorDefinitions) true MultiThreadedDebug @@ -65,7 +65,7 @@ Windows true - $(VCInstallDir)UnitTest\lib;%(AdditionalLibraryDirectories);$(SolutionDir)\thirdparty\win\boost\stage\lib;C:/libs/boost\stage\lib;$(OutDir);$(SolutionDir)thirdparty\win\;C:/libs/;$(libOTeDir)\x64\$(Configuration);D:\libs;D:/libs/boost\stage\lib;D:/libs/ + $(VCInstallDir)UnitTest\lib;%(AdditionalLibraryDirectories);$(SolutionDir)\thirdparty\win\boost\stage\lib;C:/libs/boost\stage\lib;$(OutDir);$(SolutionDir)thirdparty\win\;C:/libs/;D:\libs;D:/libs/boost\stage\lib;D:/libs/;D:\psitest\npsi\libOTe libOTe.lib;libPSI.lib;libPSI_Tests.lib;cryptoTools.lib;miracl\x64\Debug\miracl.lib;cryptopp\x64\Output\Debug\cryptlib.lib;NTL\x64\Debug\NTL.lib;libOPRF.lib;%(AdditionalDependencies)