@apachepirk...nov 15, 2016  · pirk basics querier generates encrypted query vectors ... e(a)...

26
@ApachePirk Presented By: Ellison Anne Williams Apache Pirk PPMC Member; Founder, EN|VEIL

Upload: others

Post on 14-Oct-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: @ApachePirk...Nov 15, 2016  · Pirk Basics Querier Generates Encrypted Query Vectors ... E(A) Answer A = D(E(A)) PIRK is awesome! Querier Responder. Beyond the Querier and Responder

@ApachePirk

PresentedBy:EllisonAnneWilliamsApachePirkPPMCMember;Founder,EN|VEIL

Page 2: @ApachePirk...Nov 15, 2016  · Pirk Basics Querier Generates Encrypted Query Vectors ... E(A) Answer A = D(E(A)) PIRK is awesome! Querier Responder. Beyond the Querier and Responder

Outline

WhatisApachePirk?

WhatisPIR?

WhyApachePirk?

PirkBasics

Roadmap

GetInvolved

Appendix:Wideskies

Page 3: @ApachePirk...Nov 15, 2016  · Pirk Basics Querier Generates Encrypted Query Vectors ... E(A) Answer A = D(E(A)) PIRK is awesome! Querier Responder. Beyond the Querier and Responder

WhatisApachePirk?

FrameworkforScalablePrivateInformationRetrieval(PIR)

BeautifulBlendofMathematics&ComputerScience

DevelopedattheNationalSecurityAgency

DonatedtotheApacheSoftwareFoundationinJuly2016

UndergoingIncubationwithintheApacheIncubator

TwoASFReleasesTo-Date– 0.3.0ReleaseComingSoon

Page 4: @ApachePirk...Nov 15, 2016  · Pirk Basics Querier Generates Encrypted Query Vectors ... E(A) Answer A = D(E(A)) PIRK is awesome! Querier Responder. Beyond the Querier and Responder

WhatisPIR?

PIR– PrivateInformationRetrieval

FieldofTheoreticalMathematicsandComputerScience- ~20years

AbilitytoPrivatelyRetrieveInformationfromaDataset

WithoutRevealingAnyInformationRegardingtheQuestionsAskedORtheResultsObtainedtotheDatasetOwneroranObserver

PoweredbyHomomorphicEncryption

Page 5: @ApachePirk...Nov 15, 2016  · Pirk Basics Querier Generates Encrypted Query Vectors ... E(A) Answer A = D(E(A)) PIRK is awesome! Querier Responder. Beyond the Querier and Responder

WithoutPIR

Page 6: @ApachePirk...Nov 15, 2016  · Pirk Basics Querier Generates Encrypted Query Vectors ... E(A) Answer A = D(E(A)) PIRK is awesome! Querier Responder. Beyond the Querier and Responder

WithPIR

Page 7: @ApachePirk...Nov 15, 2016  · Pirk Basics Querier Generates Encrypted Query Vectors ... E(A) Answer A = D(E(A)) PIRK is awesome! Querier Responder. Beyond the Querier and Responder

IhaveaprivatequestionQI’mgoingtousePIR…

Querier Responder

Data

Page 8: @ApachePirk...Nov 15, 2016  · Pirk Basics Querier Generates Encrypted Query Vectors ... E(A) Answer A = D(E(A)) PIRK is awesome! Querier Responder. Beyond the Querier and Responder

IhaveaprivatequestionQI’mgoingtousePIR…

IformE(Q)

E(Q)

Querier Responder

Data

Page 9: @ApachePirk...Nov 15, 2016  · Pirk Basics Querier Generates Encrypted Query Vectors ... E(A) Answer A = D(E(A)) PIRK is awesome! Querier Responder. Beyond the Querier and Responder

IhaveaprivatequestionQI’mgoingtousePIR…

IformE(Q)

E(Q)

Querier Responder

AskE(Q)

ProduceE(A)

Data

Page 10: @ApachePirk...Nov 15, 2016  · Pirk Basics Querier Generates Encrypted Query Vectors ... E(A) Answer A = D(E(A)) PIRK is awesome! Querier Responder. Beyond the Querier and Responder

IhaveaprivatequestionQI’mgoingtousePIR…

IformE(Q)

E(Q)

E(A)

Querier Responder

AskE(Q)

ProduceE(A)

Data

Page 11: @ApachePirk...Nov 15, 2016  · Pirk Basics Querier Generates Encrypted Query Vectors ... E(A) Answer A = D(E(A)) PIRK is awesome! Querier Responder. Beyond the Querier and Responder

AnswerA=D(E(A))

IhaveaprivatequestionQI’mgoingtousePIR…

IformE(Q)

E(Q)

E(A)

Querier Responder

AskE(Q)

ProduceE(A)

Data

Page 12: @ApachePirk...Nov 15, 2016  · Pirk Basics Querier Generates Encrypted Query Vectors ... E(A) Answer A = D(E(A)) PIRK is awesome! Querier Responder. Beyond the Querier and Responder

IhaveaprivatequestionQI’mgoingtousePIR…

IformE(Q)

E(Q)

E(A)

AnswerA=D(E(A))PIRisawesome!

Querier Responder

AskE(Q)

ProduceE(A)

Data

Page 13: @ApachePirk...Nov 15, 2016  · Pirk Basics Querier Generates Encrypted Query Vectors ... E(A) Answer A = D(E(A)) PIRK is awesome! Querier Responder. Beyond the Querier and Responder

WhyApachePirk?

PIRHistoricallyLargelyTheoretical

Needfor

PracticalPIRRobustandDeployablePIRImplementations

ApachePirk

ProvidesaLandingPlaceforRobust,ScalablePIRFostersaCommunityAroundScalablePIR

Page 14: @ApachePirk...Nov 15, 2016  · Pirk Basics Querier Generates Encrypted Query Vectors ... E(A) Answer A = D(E(A)) PIRK is awesome! Querier Responder. Beyond the Querier and Responder

PirkBasics

QuerierGeneratesEncryptedQueryVectorsGeneratesNecessaryDecryptionItemsforEachQueryVectorDecryptsEncryptedResults

ResponderPerformsEncryptedQueriesFormsEncryptedQueryResults

Page 15: @ApachePirk...Nov 15, 2016  · Pirk Basics Querier Generates Encrypted Query Vectors ... E(A) Answer A = D(E(A)) PIRK is awesome! Querier Responder. Beyond the Querier and Responder

AskE(Q)

ProduceE(A)

IhaveaprivatequestionQI’mgoingtousePIRK…

IformE(Q)

E(Q)

E(A)

AnswerA=D(E(A))PIRKisawesome!

Querier Responder

Page 16: @ApachePirk...Nov 15, 2016  · Pirk Basics Querier Generates Encrypted Query Vectors ... E(A) Answer A = D(E(A)) PIRK is awesome! Querier Responder. Beyond the Querier and Responder

BeyondtheQuerierandResponder

EncryptionLibraryPaillier CryptosystemCurrentlyImplemented

DataSchemaFramework

QuerySchemaFramework

GenericDataFilter

Testing– DistributedandIn-MemoryTestSuites

Page 17: @ApachePirk...Nov 15, 2016  · Pirk Basics Querier Generates Encrypted Query Vectors ... E(A) Answer A = D(E(A)) PIRK is awesome! Querier Responder. Beyond the Querier and Responder

DataSchema

{"date":"2016-02-20T23:29:05.000Z",

"src_ip":"55.55.55.55",

"event_type":"dns-hostname-query",

"query_id":"9cef5344-3dee-41f9aa32da72d9f74778",

"qtype":[1,0],

"dest_ip":"1.2.3.6",

"ip":["10.20.30.40","10.20.30.60"],

"qname":"a.b.c.com",

”rcode":0}

<schema><schemaName>nameoftheschema</schemaName><element><name>elementname</name><type>classnameortypename(ifJavaprimitivetype)

oftheelement</type>

<isArray>trueorfalse-- whetherornottheschemaelementisanarraywithinthedata</isArray>

<partitioner>optional- Partitioner classfortheelement;defaultstoprimitivejavatypepartitioner </partitioner></element>

</schema>

Page 18: @ApachePirk...Nov 15, 2016  · Pirk Basics Querier Generates Encrypted Query Vectors ... E(A) Answer A = D(E(A)) PIRK is awesome! Querier Responder. Beyond the Querier and Responder

DataSchema

{"date":"2016-02-20T23:29:05.000Z",

"src_ip":"55.55.55.55",

"event_type":"dns-hostname-query",

"query_id":"9cef5344-3dee-41f9aa32da72d9f74778",

"qtype":[1,0],

"dest_ip":"1.2.3.6",

"ip":["10.20.30.40","10.20.30.60"],

"qname":"a.b.c.com",

”rcode":0}

<schema><schemaName>awesomeDataSchema </schemaName><element><name>date</name><type>string</type>

<isArray>false</isArray><partitioner>org.apache.pirk.schema.data.partitioner.

PrimitiveTypePartitioner</partitioner></element>

….Lotsmoreelements….

</schema>

Page 19: @ApachePirk...Nov 15, 2016  · Pirk Basics Querier Generates Encrypted Query Vectors ... E(A) Answer A = D(E(A)) PIRK is awesome! Querier Responder. Beyond the Querier and Responder

QuerySchema

{"date":"2016-02-20T23:29:05.000Z",

"src_ip":"55.55.55.55",

"event_type":"dns-hostname-query",

"query_id":"9cef5344-3dee-41f9aa32da72d9f74778",

"qtype":[1,0],

"dest_ip":"1.2.3.6",

"ip":["10.20.30.40","10.20.30.60"],

"qname":"a.b.c.com",

”rcode":0}

<schema><schemaName>myAwesomeQuerySchema </schemaName><dataSchemaName>superAwesomeDataSchema </dataSchemaName><selectorName>nameoftheelementinthedataschemathatwillbetheselector</selectorName ><elements>

<name>elementname</name></element><filterNames>

<name>(optional)elementnameofelementinthedataschematoapplypre-processingfilters</name></filterNames><additional>(optional)additionalfieldsforthequeryschema,in<key,value>pairs<field><key>keycorrespondingthethefield</key><value>valuecorrespondingtothefield</value>

</field></additional></schema>

Page 20: @ApachePirk...Nov 15, 2016  · Pirk Basics Querier Generates Encrypted Query Vectors ... E(A) Answer A = D(E(A)) PIRK is awesome! Querier Responder. Beyond the Querier and Responder

QuerySchema

{"date":"2016-02-20T23:29:05.000Z",

"src_ip":"55.55.55.55",

"event_type":"dns-hostname-query",

"query_id":"9cef5344-3dee-41f9aa32da72d9f74778",

"qtype":[1,0],

"dest_ip":"1.2.3.6",

"ip":["10.20.30.40","10.20.30.60"],

"qname":"a.b.c.com",

”rcode":0}

<schema><schemaName>myAwesomeQuerySchema</schemaName>

<dataSchemaName>superAwesomeDataSchema</dataSchemaName><selectorName>qname </selectorName ><elements>

<name>src_ip </name>

<name>dest_ip </name></element>

<filterNames><name>google.com </name>

</filterNames></schema>

Page 21: @ApachePirk...Nov 15, 2016  · Pirk Basics Querier Generates Encrypted Query Vectors ... E(A) Answer A = D(E(A)) PIRK is awesome! Querier Responder. Beyond the Querier and Responder

Algorithms&Implementations

AlgorithmsWideskies withPaillier

QuerierStandalone,Multi-threaded

Page 22: @ApachePirk...Nov 15, 2016  · Pirk Basics Querier Generates Encrypted Query Vectors ... E(A) Answer A = D(E(A)) PIRK is awesome! Querier Responder. Beyond the Querier and Responder

Algorithms&Implementations

ResponderStandalone,Multithreaded

DistributedBatchMapReduce,SparkDatafromHDFS,Elasticsearch

DistributedStreamingStorm,SparkStreamingDatafromKafka

Page 23: @ApachePirk...Nov 15, 2016  · Pirk Basics Querier Generates Encrypted Query Vectors ... E(A) Answer A = D(E(A)) PIRK is awesome! Querier Responder. Beyond the Querier and Responder

RoadmapImplementationRoadmap

InputAdaptors- NoSQLDatabases:Hbase,Accumulo;Kafka,NifiStreaming- StormandHeron,SparkStreaming,FlinkBatch– Flink,Beam

AlgorithmicRoadmapSecureMultipartyComputation,PrivateSetIntersectionFullyHomomorphicEncryption

AlwaysontheRoadmapImprovements/OptimizationstoExistingCodeBenchmarking

Page 24: @ApachePirk...Nov 15, 2016  · Pirk Basics Querier Generates Encrypted Query Vectors ... E(A) Answer A = D(E(A)) PIRK is awesome! Querier Responder. Beyond the Querier and Responder

GetInvolved

We❤MathematiciansandComputerScientists

Youdon’thavetocodetocontribute!

ApachePirkWebsitehttp://pirk.incubator.apache.org

MailingLists–SubmitandDiscussIdeas/IssuesDev:[email protected]:[email protected]

@ApachePirk

Page 25: @ApachePirk...Nov 15, 2016  · Pirk Basics Querier Generates Encrypted Query Vectors ... E(A) Answer A = D(E(A)) PIRK is awesome! Querier Responder. Beyond the Querier and Responder

Thanks!

[email protected]

Page 26: @ApachePirk...Nov 15, 2016  · Pirk Basics Querier Generates Encrypted Query Vectors ... E(A) Answer A = D(E(A)) PIRK is awesome! Querier Responder. Beyond the Querier and Responder

Wideskies Appendix