diff --git a/CONFIG/DAPPLE.config b/CONFIG/DAPPLE.config index f4e8153193af0257d97af91c12b8d33b7999ac31..ae1643a775f3765c521a963ddb73f8cc43d089fd 100755 --- a/CONFIG/DAPPLE.config +++ b/CONFIG/DAPPLE.config @@ -1,6 +1,6 @@ # Experiments parameters perf{ - testBuildingBlocks="true"; + testBuildingBlocks="false"; PrivacyPreservation="true"; MLAlgorithm="nb"; runs_number ="1"; @@ -22,7 +22,7 @@ chunk_prefix="DO"; class_number="5"; dimension="9"; - chunk_number="1"; + chunk_number="16"; } # The vfdt algorithm parameters diff --git a/CRYPTO/EvalLog.cpp b/CRYPTO/EvalLog.cpp index e6d44b1d746f705a755542b0e5bf8f2a240db55a..173d9e9266393f7993abdbf1826306f959326af1 100755 --- a/CRYPTO/EvalLog.cpp +++ b/CRYPTO/EvalLog.cpp @@ -23,7 +23,7 @@ EvalLog::EvalLog_U1_step1() u.T1 = u.T1 * one.T1; u.T2 = u.T2 * one.T2; - cout << u << endl; + //cout << u << endl; gmp_randinit_default(state); gmp_randseed_ui(state,time(NULL)); diff --git a/PPML/PPNB/PPStats.cpp b/PPML/PPNB/PPStats.cpp index 99ba69540ad51b6d447ca328a864198bcbf428e1..f1a1b487fec5c0f97575a26808dac7dd48151687 100755 --- a/PPML/PPNB/PPStats.cpp +++ b/PPML/PPNB/PPStats.cpp @@ -93,6 +93,8 @@ void PPStats::InitStats() { std::map <Cipher, Cipher> proProba; + std::map <Cipher, Cipher> LogproProba; + #pragma omp parallel { size_t cnt = 0; @@ -104,13 +106,21 @@ PPStats::InitStats() { vector<Cipher> res1 = evalDiv100.EvalDiv_U1_step1(); Cipher proba = evalDiv100.EvalDiv_U1_step3(evalDiv100.EvalDiv_U2_step2(res1[0], res1[1], res1[2], res1[3])); #pragma omp critical - proProba.insert(std::make_pair(i->first, proba)); + { + proProba.insert(std::make_pair(i->first, proba)); + EvalLog evalLog(proba,100,dtpkc); + std::vector<Cipher> in = evalLog.EvalLog_U1_step1(); + Cipher C_C=evalLog.EvalLog_U1_step3(evalLog.EvalLog_U2_step2(in[0],in[1])); + LogproProba.insert(std::make_pair(i->first, C_C)); + }; } } this->priorProba=proProba; + this->LogpriorProba=LogproProba; std :: map <int, stf > condProba; + std :: map <int, stf > LogcondProba; #pragma omp parallel { size_t cnt = 0; @@ -121,11 +131,13 @@ PPStats::InitStats() { PPStats::st VC = j->second; PPStats::stf cdProbaValues; + PPStats::stf LogcdProbaValues; for (auto &k : VC) { map<Cipher, Cipher> classFreq = k.second; map<Cipher, Cipher> cdProbaClasses; + map<Cipher, Cipher> LogcdProbaClasses; // Parse classes for (auto &l : classFreq) { Cipher probaxjkl = zero; @@ -138,19 +150,26 @@ PPStats::InitStats() { } cdProbaClasses.insert(std::make_pair(l.first, probaxjkl)); + EvalLog evalLog(probaxjkl,100,dtpkc); + std::vector<Cipher> in = evalLog.EvalLog_U1_step1(); + Cipher C_C=evalLog.EvalLog_U1_step3(evalLog.EvalLog_U2_step2(in[0],in[1])); + LogcdProbaClasses.insert(std::make_pair(l.first, C_C)); } cdProbaValues.insert(std::make_pair(k.first, cdProbaClasses)); - + LogcdProbaValues.insert(std::make_pair(k.first, LogcdProbaClasses)); } #pragma omp critical - condProba.insert(std::make_pair(j->first, cdProbaValues)); + { + condProba.insert(std::make_pair(j->first, cdProbaValues)); + LogcondProba.insert(std::make_pair(j->first, cdProbaValues)); + }; } } this->conditionalProba=condProba; - + this->LogconditionalProba=LogcondProba; } @@ -166,20 +185,20 @@ Cipher PPStats::Classify(PPRecord *r) { int ithread = omp_get_thread_num(); int nthreads = omp_get_num_threads(); - for (auto i = this->priorProba.begin(); i != this->priorProba.end(); ++i, cnt++) { + for (auto i = this->LogpriorProba.begin(); i != this->LogpriorProba.end(); ++i, cnt++) { if (cnt % nthreads != ithread) continue; Cipher finalProbaCi2 = i->second; - for (auto &j : this->conditionalProba) { + for (auto &j : this->LogconditionalProba) { map<Cipher, map<Cipher, Cipher>> innerMap = j.second; map<Cipher, map<Cipher, Cipher >>::iterator probaValues = innerMap.find(r->values[j.first]); if (probaValues != innerMap.end()) { map<Cipher, Cipher>::iterator probaClasses = probaValues->second.find(i->first); if (probaClasses != probaValues->second.end()) { - EvalMult e1(finalProbaCi2, probaClasses->second, dtpkc); - finalProbaCi2 = e1.EvalMult_U1_step3(e1.EvalMult_U2_step2(e1.EvalMult_U1_step1())); + finalProbaCi2.T1 = finalProbaCi2.T1 * probaClasses->second.T1; + finalProbaCi2.T2 = finalProbaCi2.T2 * probaClasses->second.T2; } else { finalProbaCi2 = zero; diff --git a/PPML/PPNB/PPStats.h b/PPML/PPNB/PPStats.h index 0a006c458a7271819616a25d4afb03c1e60a6897..919920f745abdb4d509fc22264e56268416cd3d3 100755 --- a/PPML/PPNB/PPStats.h +++ b/PPML/PPNB/PPStats.h @@ -16,6 +16,7 @@ #include "../../CRYPTO/EvalMult.h" #include "../../CRYPTO/EvalDiv100.h" #include "../../CRYPTO/EvalProba.h" +#include "../../CRYPTO/EvalLog.h" class PPStats { diff --git a/SER/dtpkc.ser b/SER/dtpkc.ser index 1f41bd828d0a1247c0a99bad1cb0227e759617e8..29d598dc7ea12e8a75e6faa950649b51ef5a60e2 100644 --- a/SER/dtpkc.ser +++ b/SER/dtpkc.ser @@ -1,11 +1,11 @@ -90820775155142278086943620283674871622900197692953590660964646761457915803124455294580848302417002184252523071835352141490551915874821101292661720652234711183883909371411957282530455332728327407491192963143385743338557064871056759930761535267620338741815517987622940794475101878959095149290168016143180588781 --609885074760179540126187858153613186375334080855267300141762290378305693958935278734445279816566715235602154377606533650951736246588875103605142262252092462234779175995144068654825491579855525016745401630451146992441860629509362809650891623859903253401531938226186866804939524337436307581130094696671201654458279816800622526523826804131091404621547499727003585321291168101053425566337495939962992854718019691644925332435094640761807340690042943341511806983829839080320963820042306033673088290367509791227713350153512825342775081946683857968536793455115598257705103814037487375063554236126279148746439221845620170944 -8248413199780908886312600400944690001946452102154942123525341102347833207300617548588649825507895892577105936901525027320114381919919077130663184285674476018750996370869430297478380269605978147989798446911852950797358103797698583339073858402962614073003989718121907855020103941993228574532338408665596496428617877313621727056535763552491393539512923066706286197262214210559005180012753610564983600089574542887940060926512468827590400632173225845523521231193682440584988796134781165753100974610379353085637025738860381517878746942330340094724796369279023103398349163217495767913951523290110957511089937995673823065961 -317226825626550717321124973935100990937886542821800290695456121872838491938322683898801357544873844697037971722506755522257610094299930745702184777904083736614396008136347488950137322240493372598602772769881118141180369351006212817176180821269955124184316513082936130998246608006936467419358376454396797322613482333924791040108106111539641293015665687453385368139796945838871526037524696816931932862984675118501399913394786219813049558882349623200495791915618309494789466700219602029330767140055796017356740858783062647301660390799789427926096162993755849543553901840078509215373924667254262609766214323475177282447669617669072387334291877274351151847291121883166544167683462189739230216388034625352611266688311087647055902754251687800664175884033956319912898751225641646773667563748869465648194101837868198027551153504785873577695796392271568045185819415979913868252919021132114023604224121340024509887610588471714658820746280070176261988655986499368133151216960895531461278074296359727943121149330856382625837232952188630505995242280307308619884433053278783423176090099769369910808958271136133175849890394975752621395526136586635554963154980225376525373130256974067204419177728658064752069737977812904887922251898880725535784606808309379166983260178560295474139556837906672608210656662013140989032236992396216599108416159227202750915630176738697618010585744594958499272188287777839158224611772016770307155215653995785584048968511599303800073765955639522563502565281362845263154757288025217721969260943158970985391586613502113500536802448556039877169789889895419798962860646129165826335564791345657288620678945124498126364898696629612583571709626662130433322360336507362305915924624147917953476197971577686703065295989281480948211245349836552141778518931164205507068194577312696561493082554641858239589065291849361873734544762865244323133749743407 +149205130276496534851756422367062365556817447243065860516675789883154670495991086610170678490010222955560397752702941460460488641972630421056010841053818255419150655555069271737523131818565213845453736083902440064327647312700255327463566742440877874995269382371127924398361819820498526254603546064155948283489 +-8314501153698168934456706959043942871706924121545708577348150808281588429851071641131131985312772630009993540801250789840212861665043877664626896408090446416466425524073530962230062895980860661302442800759844052374173694327839411955846150176678175975953369187195307140646582426277412659635982424064766104676607223480397144614649278736017110114095884123470420284690103431153359327041011994288596793431102492157966186201298318461991606737685860115883799123153491862647665335221937402390053339709023281577766362579646175632890813949511264747567832323392590073197856201407806271745709825944253733725837754535184116551137 +22262170900826302930662029240253449860979581924479113510572602077935931806452414897236691542396723160315016211290389580738077495857781526489719678376964818372135699386570111740395244531690241714813818030250992241357480451089691970152424035517473320010171109781998754923880991230227353469572036857082843788809584171175228114542289309721169722130304230032321596971672603414111405565736955962259868910979816964613267621512157296756208270275763484258182654326204111718004753359023841976560086540866504892395399584818215152712019921898341701492833184155556716317334518912525194282291082894689138481811004141715165510013121 +976177802466061300937100292147031058264306453915705639161784874519968825698804680684807911307665517060469333189302330060802024818775189679706628225660967916567884327154675233272777575442437788255389108610907322859437464669596279922955433422644261421438545155662182810340428790895638321770615357896208559048687236072884275153011141954671143366716748793761813953233607429974523321455781280712945531899269402584450520265194988283243609279546141872648099712200258479633681599855878121967064434991556659604238148305970433441685454662949573292550787395155476546521972958336328016943063750642733535025637175921410624559961011848372755288428793473109642109637761163355111655647962040596650804046541671651467616409351530775166413479727344078387642659182149972477435465348007080081191533202011260152923125040407234155832506193929728591805622421831663271936228294598935913368732060621682504183944331468952002621688201357416035922340765760669472649646439946877854968820402025516661244649337267828920195747791066279582806242607457780187603002269687520808006030762859669439240658792818043330907217528758761388795249957811478817923574259245255447902680886656878241668500635263826015204148089281599545863955270129440189703907832121510518512080919662289243315476549779717491323169377646689576262832858166136861247878560868612925361711909325776668700992023950236278402010944651986104418743678603776394018930557094581765908725282845753790790562590572754888876835203650078762339286033653522991179911273164790232209288484126534570464266961163585651521554163898562950565217125503493308921517455398617827364314454375469665162364941596238492393237501762133318848013326949639522372204125817748813608306866180592561922325513005220756179548528580169348511085604228946352494830478504684766235896519040552258628393180899913568311316568450765112457075383036076150427217154048000 1024 -10028734170098722521655019367817456531606008769892935324939434011372944733705794391583520975012137592180962868423727400750527069923783728041910270200964431 -9056055691049216576539784044798660507535932732031446965714899014877941259019344949827135610204280366207491664421216671142317215988654701139158707147118851 -176933267928525377543745985071649012481489090083599256260473051374452835248877288493443232076063599464964865447607369939619309365877190794264857272022826416997618992131986142025008591890575544197577789572133979274280682729741409193593434628948398422726067298173251959085062946706143592977434890348511830158099 -4541038757757113904347181014183743581145009884647679533048232338072895790156222764729042415120850109212626153591767607074527595793741055064633086032611734604954702411173642954386352135830564413277484551938054754450276540699253201739571006230551756116192856476654504792520160451733659135543049347358291625275 -38474851864398112839131385470032501682048191404886478693047639015017129707986577079596895527630740495134938939228078284901312383040653266690764672900170536967313383209128635843171804439468232561027135844968617908383601008922870716993415420914661723303423872978937440338788321988236828591025473849462765831288 -14530841764964947027303109598617014467024135587399819520581069856419816384884970377407823474797345748270792661138733468452840460208028034725990071643430945827676773125664026577130484812042917910885945205749693996311887622652791019464567745086642100040298870791326022543758241183931766558173482841773725763805910220984499444835477671943653280639964812548317223766919997070637753445942501675540552841204968694802041523748222967531145039329643213004193051241415055366708587566517379107515813153492937438487874607994136686534712460629807179081054457078318377981683131291922758534337834191270747672039761848388851159209417157175455537301424345588290005992265668564309871420310986663076135403129714679952199618471903832757956253247034351591052569431140280686781724918137200722696108496811730141974568983885871669608820516451109094838221728423799573695554471715015825154394565900358634871345350436105902887851345362374382045350087 +11874699564241518687690443491700634514395972759604377707912079635456861222992849205125090485444776987647238762874921005353350811471883963398478010511538393 +12564960441256167691208284025895433218742840770177136434498040460606896167719793197670987698810439598601138337301743160588203671784105897737036063061865673 +104878396997649574777769308703446994886853182989169431633820586784659102664033627171266288240689132462443403349285534283446657821669081610723332280969135223153177395459946686004756566625036303950419957994314475209612372055181510711869914488998797483128369487831202466141632147090681625026155094694335487871611 +9325320642281033428234776397941397847301090452691616282292236867697166905999442913135667405625638934722524859543933841278780540123289401316000677565863639436218165628586430802424725888906092544165012893899268603387971953058929038426322746647668351236167695874626734233387242391625954391546400659380148429964 +133271679695954341470745532450465907152805377447609531349248494344356750022058505421898460476481739035390787456747634760415929213673190186741272550447341592351855959377539386438223730478470471661985092321294288665726073669666286619675518771469436839984625374406243294508568235343209524058067010675971369910860 +80881871078843321674424396272117466772647761312605021232640988070880295582813833776276717781870254112054009395636205430135636992171686042524566710028208085194138050352204734595112822269209890270158454732973129059444806701026613716688652466800668108583563692727751624131749976124800752635080700618208767393969939787484868070962372936886320569717099919765464292316565234252945572631948544031017301776336218534869470192049693508668191684804911851614310676532924782726716432867543920592920634462903924011427440916593879754351336950740722893287486136485880539335299399048400044459807297279666530365480943197144406041813344093893837609406271382403705663454944571033181248525316115015373851187918673903077024741523747139822445924302396733700545499174514657745693144502913634326166544781203537984403269680188931053338965873545572727845496880840894581090664387665408349319727053044429097122269901694032400658251417319503937681022640