SlideShare a Scribd company logo
1 of 24
Download to read offline
Compiler for Zero­Knowledge 
Proof­of­Knowledge Protocols
Diploma Thesis
November 2003 – March 2004
Prof. Dr. U. Maurer
Supervisors: Dr. J. Camenisch, E. Bangerter
IBM  Research Laboratory, Rüschlikon
Overview
● Motivation, Goal of the Compiler
● Input Scope
● Protocol Generation
● Output Files
● Future Work
● Conclusion
Motivation
● Anonymous credential system 
                                      ,
developed at IBM Research Laboratory in 
Rueschlikon
● Based on Zero­Knowledge Proof­of­Knowledge 
Protocols
(identity mixer)
Motivation
Goal of the Compiler
Input
File
Compiler
Input
File
Input
File
Java
Files
Latex
File
Part 1:  Generation of Protocol Instances
Part 2:  Derivation of Semantic Properties
Semantic
Properties
Input Scope
● Input Language
Group G1, G2, H1, H2;
GroupElement x1, x2, x3, y1, y2;
DefineHomomorphism(zeta1, G1 x G2 ­> H1);
AssignGroupMember(G1, x1);
Relation = 
(y1 = zeta1(x1, x2)) ∨ (y2 = zeta2(x3));
Declarations
Associations
Definitions
Protocol 
Definition
∑­Protocol
Input Scope
Which Protocol Types are covered by the Input Scope?
∑­Protocol
Input Scope
Involved Groups
● G1 x G2 x ...
● Zm'
● Elliptic Curves, ...
● Infinite Group Z 
∑­Protocol
Input Scope
Secret
Structure
Involved Groups
● Zm'
●
 
G1 x G2 x ...
● Elliptic Curves, ...
● Infinite Group Z 
(y1 = 1(x1, x2)) ∨
((y2 = 2(x3)) ∧ ((y3 ,y4)= 3(x4, x5)))  
2∑­Protocol
∑­Protocol
Input Scope
Secret
Structure
Involved Groups
● Zm'
●
 
G1 x G2 x ...
● Elliptic Curves, ...
● Infinite Group Z 
(y1 = 1(x1, x2)) ∨
((y2 = 2(x3)) ∧ ((y3 ,y4)= 3(x4, x5)))  
∑­Protocol
2∑­Protocol
Input Scope
Secret
Structure
(y1 = 1(x1, x2)) ∨
((y2 = 2(x3)) ∧ ((y3 ,y4)= 3(x4, x5)))  
Involved Groups
● Zm'
●
 
G1 x G2 x ...
● Elliptic Curves, ...
● Infinite Group Z 
Protocol Generation
Protocol Generation
What is hidden in this notation?
Protocol Generation
Single value 
or m­tuple?
Only one or several 
homomorphisms?
Complete challenge
or a share?
Element from finite 
or infinite group?
How is the group 
operation defined?
Single value 
or n­tuple?
Single value 
or m­tuple?
What happens if 
equation does not
hold?
Protocol Generation
GroupElement var8 = (GroupElement) zeta1.image(s1); 
GroupElement var9 = H.repeatedOperation(y1, c.getValue());
GroupElement var10 =  H.operate(var8, var9); 
if (!(t1.equals(var10))){ accept = false; }
Protocol Generation
if (protocol == 2sigma) { ...
if (numberOfHomomorphisms > 1) { ...
if (numberOfPreimageGroups > 1) { ..
if (group.isInfinite()) { ...
if (output == java) { ...
Naiv Implementation:
Protocol Generation
Measurement most widely used 
in static Software Analysis:
McCabe's 
Cyclomatic Complexity
 
CC(module) = number of paths
through the control
flow 
Protocol Generation
Complexity just for the generation 
of this single comparison:  CC = 16 t = (s) yc
Cyclomatic Complexity Risk Evaluation
1 ­ 10
11 ­ 20
21 ­ 50
greater than 50
simple program, without much risk
more complex, moderate risk
complex, high risk
untestable, very high risk
 ↳ Complexity would explode
Protocol Generation
Protocol Structure Model
??
Protocol Generation
●  Protocol Structure Tree
comparison
join groupOp
variable
variable homomorphOp repeatedOp
...
join
variable
variable
variable variable
Generated Output Files
Different Modes for Latex Protocol Generation:
Compact Mode: Verbose Mode:
Generated Output Files
Java Classes:
public class Prover {
public class Verifier {
public Verifier(
Homorphism zeta, Group G,
GroupElement y) { ...} 
public r2param Round2(r1param) { ... }
public void Round4(r3param) { ... }
Implementations
plugged in 
at runtime
⇒ full flexibility
Future Work
● From Protocol Generation to Protocol Analysis
– Which are the properties of  these protocol 
instances, e.g. does a knowledge extractor for a 
certain instance exist?
Conclusion
● Very interesting piece of work with a strong 
connection between theoretical problems and  their 
solutions in terms of software engineering
● Thanks to my supervisors for introducing me into this 
area 
... and thanks for your attention

More Related Content

What's hot

Legal Vocabulary and its Transformation Evaluation using Competency Questions
Legal Vocabulary and its Transformation Evaluation using Competency QuestionsLegal Vocabulary and its Transformation Evaluation using Competency Questions
Legal Vocabulary and its Transformation Evaluation using Competency Questionsshashi792
 
A Lightweight Formal Encoding for a Constraint Language DSML Component
A Lightweight Formal Encoding for a Constraint Language DSML ComponentA Lightweight Formal Encoding for a Constraint Language DSML Component
A Lightweight Formal Encoding for a Constraint Language DSML ComponentMarc Pantel
 
Generation of Synthetic Referring Expressions for Object Segmentation in Videos
Generation of Synthetic Referring Expressions for Object Segmentation in VideosGeneration of Synthetic Referring Expressions for Object Segmentation in Videos
Generation of Synthetic Referring Expressions for Object Segmentation in VideosUniversitat Politècnica de Catalunya
 
Learn2Sign : Sign language recognition and translation using human keypoint e...
Learn2Sign : Sign language recognition and translation using human keypoint e...Learn2Sign : Sign language recognition and translation using human keypoint e...
Learn2Sign : Sign language recognition and translation using human keypoint e...Universitat Politècnica de Catalunya
 
Seq2seq Model to Tokenize the Chinese Language
Seq2seq Model to Tokenize the Chinese LanguageSeq2seq Model to Tokenize the Chinese Language
Seq2seq Model to Tokenize the Chinese LanguageJinho Choi
 
BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding
BERT: Pre-training of Deep Bidirectional Transformers for Language UnderstandingBERT: Pre-training of Deep Bidirectional Transformers for Language Understanding
BERT: Pre-training of Deep Bidirectional Transformers for Language UnderstandingMinh Pham
 
Scribbling Interactions with a Formal Foundation
Scribbling Interactions with a Formal FoundationScribbling Interactions with a Formal Foundation
Scribbling Interactions with a Formal FoundationIMDS2014
 
REDUCED COMPLEXITY QUASI-CYCLIC LDPC ENCODER FOR IEEE 802.11N
REDUCED COMPLEXITY QUASI-CYCLIC LDPC ENCODER FOR IEEE 802.11N REDUCED COMPLEXITY QUASI-CYCLIC LDPC ENCODER FOR IEEE 802.11N
REDUCED COMPLEXITY QUASI-CYCLIC LDPC ENCODER FOR IEEE 802.11N VLSICS Design
 
BERT: Bidirectional Encoder Representations from Transformers
BERT: Bidirectional Encoder Representations from TransformersBERT: Bidirectional Encoder Representations from Transformers
BERT: Bidirectional Encoder Representations from TransformersLiangqun Lu
 
12058 woot13-kholia
12058 woot13-kholia12058 woot13-kholia
12058 woot13-kholiageeksec80
 
Automatic Sound Signals Quality Estimation Integration
Automatic Sound Signals Quality Estimation IntegrationAutomatic Sound Signals Quality Estimation Integration
Automatic Sound Signals Quality Estimation IntegrationSevana Oü
 
Tiancheng Zhao - 2017 - Learning Discourse-level Diversity for Neural Dialog...
Tiancheng Zhao - 2017 -  Learning Discourse-level Diversity for Neural Dialog...Tiancheng Zhao - 2017 -  Learning Discourse-level Diversity for Neural Dialog...
Tiancheng Zhao - 2017 - Learning Discourse-level Diversity for Neural Dialog...Association for Computational Linguistics
 
Triantafyllia Voulibasi
Triantafyllia VoulibasiTriantafyllia Voulibasi
Triantafyllia VoulibasiISSEL
 
Sequence to sequence (encoder-decoder) learning
Sequence to sequence (encoder-decoder) learningSequence to sequence (encoder-decoder) learning
Sequence to sequence (encoder-decoder) learningRoberto Pereira Silveira
 

What's hot (19)

Legal Vocabulary and its Transformation Evaluation using Competency Questions
Legal Vocabulary and its Transformation Evaluation using Competency QuestionsLegal Vocabulary and its Transformation Evaluation using Competency Questions
Legal Vocabulary and its Transformation Evaluation using Competency Questions
 
A Lightweight Formal Encoding for a Constraint Language DSML Component
A Lightweight Formal Encoding for a Constraint Language DSML ComponentA Lightweight Formal Encoding for a Constraint Language DSML Component
A Lightweight Formal Encoding for a Constraint Language DSML Component
 
Vhdl
VhdlVhdl
Vhdl
 
Lab3 s2
Lab3 s2Lab3 s2
Lab3 s2
 
Generation of Synthetic Referring Expressions for Object Segmentation in Videos
Generation of Synthetic Referring Expressions for Object Segmentation in VideosGeneration of Synthetic Referring Expressions for Object Segmentation in Videos
Generation of Synthetic Referring Expressions for Object Segmentation in Videos
 
Learn2Sign : Sign language recognition and translation using human keypoint e...
Learn2Sign : Sign language recognition and translation using human keypoint e...Learn2Sign : Sign language recognition and translation using human keypoint e...
Learn2Sign : Sign language recognition and translation using human keypoint e...
 
Seq2seq Model to Tokenize the Chinese Language
Seq2seq Model to Tokenize the Chinese LanguageSeq2seq Model to Tokenize the Chinese Language
Seq2seq Model to Tokenize the Chinese Language
 
BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding
BERT: Pre-training of Deep Bidirectional Transformers for Language UnderstandingBERT: Pre-training of Deep Bidirectional Transformers for Language Understanding
BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding
 
Scribbling Interactions with a Formal Foundation
Scribbling Interactions with a Formal FoundationScribbling Interactions with a Formal Foundation
Scribbling Interactions with a Formal Foundation
 
REDUCED COMPLEXITY QUASI-CYCLIC LDPC ENCODER FOR IEEE 802.11N
REDUCED COMPLEXITY QUASI-CYCLIC LDPC ENCODER FOR IEEE 802.11N REDUCED COMPLEXITY QUASI-CYCLIC LDPC ENCODER FOR IEEE 802.11N
REDUCED COMPLEXITY QUASI-CYCLIC LDPC ENCODER FOR IEEE 802.11N
 
BERT: Bidirectional Encoder Representations from Transformers
BERT: Bidirectional Encoder Representations from TransformersBERT: Bidirectional Encoder Representations from Transformers
BERT: Bidirectional Encoder Representations from Transformers
 
PKCS11
PKCS11PKCS11
PKCS11
 
12058 woot13-kholia
12058 woot13-kholia12058 woot13-kholia
12058 woot13-kholia
 
Coding Dojo: Erlang
Coding Dojo: ErlangCoding Dojo: Erlang
Coding Dojo: Erlang
 
BERT
BERTBERT
BERT
 
Automatic Sound Signals Quality Estimation Integration
Automatic Sound Signals Quality Estimation IntegrationAutomatic Sound Signals Quality Estimation Integration
Automatic Sound Signals Quality Estimation Integration
 
Tiancheng Zhao - 2017 - Learning Discourse-level Diversity for Neural Dialog...
Tiancheng Zhao - 2017 -  Learning Discourse-level Diversity for Neural Dialog...Tiancheng Zhao - 2017 -  Learning Discourse-level Diversity for Neural Dialog...
Tiancheng Zhao - 2017 - Learning Discourse-level Diversity for Neural Dialog...
 
Triantafyllia Voulibasi
Triantafyllia VoulibasiTriantafyllia Voulibasi
Triantafyllia Voulibasi
 
Sequence to sequence (encoder-decoder) learning
Sequence to sequence (encoder-decoder) learningSequence to sequence (encoder-decoder) learning
Sequence to sequence (encoder-decoder) learning
 

Similar to Compiler for Zero-Knowledge Proof-of-Knowledge Protocols

Vitalii Braslavskyi - Declarative engineering
Vitalii Braslavskyi - Declarative engineering Vitalii Braslavskyi - Declarative engineering
Vitalii Braslavskyi - Declarative engineering Grammarly
 
Vitalii Braslavskyi "Declarative engineering"
Vitalii Braslavskyi "Declarative engineering"Vitalii Braslavskyi "Declarative engineering"
Vitalii Braslavskyi "Declarative engineering"Fwdays
 
Automated Evolution of Feature Logging Statement Levels Using Git Histories a...
Automated Evolution of Feature Logging Statement Levels Using Git Histories a...Automated Evolution of Feature Logging Statement Levels Using Git Histories a...
Automated Evolution of Feature Logging Statement Levels Using Git Histories a...Raffi Khatchadourian
 
Hack Like It's 2013 (The Workshop)
Hack Like It's 2013 (The Workshop)Hack Like It's 2013 (The Workshop)
Hack Like It's 2013 (The Workshop)Itzik Kotler
 
Toorcon - Purple Haze: The Spear Phishing Experience
Toorcon - Purple Haze: The Spear Phishing ExperienceToorcon - Purple Haze: The Spear Phishing Experience
Toorcon - Purple Haze: The Spear Phishing ExperienceJesse Nebling
 
Summer training vhdl
Summer training vhdlSummer training vhdl
Summer training vhdlArshit Rai
 
Summer training vhdl
Summer training vhdlSummer training vhdl
Summer training vhdlArshit Rai
 
Summer training vhdl
Summer training vhdlSummer training vhdl
Summer training vhdlArshit Rai
 
20051019 automating regression testing for evolving gui software
20051019 automating regression testing for evolving gui software20051019 automating regression testing for evolving gui software
20051019 automating regression testing for evolving gui softwareWill Shen
 
Domain specific languages and Scala
Domain specific languages and ScalaDomain specific languages and Scala
Domain specific languages and ScalaFilip Krikava
 
Summer training vhdl
Summer training vhdlSummer training vhdl
Summer training vhdlArshit Rai
 
Signotron Software India Projects
Signotron Software India ProjectsSignotron Software India Projects
Signotron Software India ProjectsRajat Kumar Saha
 
Unit1 principle of programming language
Unit1 principle of programming languageUnit1 principle of programming language
Unit1 principle of programming languageVasavi College of Engg
 
Indresh_Yadav_Resume
Indresh_Yadav_ResumeIndresh_Yadav_Resume
Indresh_Yadav_ResumeIndresh yadav
 
Doxygen - Source Code Documentation Generator Tool
Doxygen -  Source Code Documentation Generator ToolDoxygen -  Source Code Documentation Generator Tool
Doxygen - Source Code Documentation Generator ToolGuo Albert
 

Similar to Compiler for Zero-Knowledge Proof-of-Knowledge Protocols (20)

Vitalii Braslavskyi - Declarative engineering
Vitalii Braslavskyi - Declarative engineering Vitalii Braslavskyi - Declarative engineering
Vitalii Braslavskyi - Declarative engineering
 
Vitalii Braslavskyi "Declarative engineering"
Vitalii Braslavskyi "Declarative engineering"Vitalii Braslavskyi "Declarative engineering"
Vitalii Braslavskyi "Declarative engineering"
 
Automated Evolution of Feature Logging Statement Levels Using Git Histories a...
Automated Evolution of Feature Logging Statement Levels Using Git Histories a...Automated Evolution of Feature Logging Statement Levels Using Git Histories a...
Automated Evolution of Feature Logging Statement Levels Using Git Histories a...
 
Hack Like It's 2013 (The Workshop)
Hack Like It's 2013 (The Workshop)Hack Like It's 2013 (The Workshop)
Hack Like It's 2013 (The Workshop)
 
Toorcon - Purple Haze: The Spear Phishing Experience
Toorcon - Purple Haze: The Spear Phishing ExperienceToorcon - Purple Haze: The Spear Phishing Experience
Toorcon - Purple Haze: The Spear Phishing Experience
 
Summer training vhdl
Summer training vhdlSummer training vhdl
Summer training vhdl
 
Summer training vhdl
Summer training vhdlSummer training vhdl
Summer training vhdl
 
Formal analysis-crypto-proto
Formal analysis-crypto-protoFormal analysis-crypto-proto
Formal analysis-crypto-proto
 
Summer training vhdl
Summer training vhdlSummer training vhdl
Summer training vhdl
 
20051019 automating regression testing for evolving gui software
20051019 automating regression testing for evolving gui software20051019 automating regression testing for evolving gui software
20051019 automating regression testing for evolving gui software
 
Domain specific languages and Scala
Domain specific languages and ScalaDomain specific languages and Scala
Domain specific languages and Scala
 
Summer training vhdl
Summer training vhdlSummer training vhdl
Summer training vhdl
 
Amost 2011 keynote
Amost 2011 keynoteAmost 2011 keynote
Amost 2011 keynote
 
Signotron Software India Projects
Signotron Software India ProjectsSignotron Software India Projects
Signotron Software India Projects
 
Ijnsa050213
Ijnsa050213Ijnsa050213
Ijnsa050213
 
TULIKA KESHRI (1)
TULIKA KESHRI (1)TULIKA KESHRI (1)
TULIKA KESHRI (1)
 
Unit1 principle of programming language
Unit1 principle of programming languageUnit1 principle of programming language
Unit1 principle of programming language
 
Tools
ToolsTools
Tools
 
Indresh_Yadav_Resume
Indresh_Yadav_ResumeIndresh_Yadav_Resume
Indresh_Yadav_Resume
 
Doxygen - Source Code Documentation Generator Tool
Doxygen -  Source Code Documentation Generator ToolDoxygen -  Source Code Documentation Generator Tool
Doxygen - Source Code Documentation Generator Tool
 

More from Thomas Briner

5-Systemtest-Automatisierung_20160519
5-Systemtest-Automatisierung_201605195-Systemtest-Automatisierung_20160519
5-Systemtest-Automatisierung_20160519Thomas Briner
 
4-Testcasedesign_20160519
4-Testcasedesign_201605194-Testcasedesign_20160519
4-Testcasedesign_20160519Thomas Briner
 
3-UnitTesting_20160518
3-UnitTesting_201605183-UnitTesting_20160518
3-UnitTesting_20160518Thomas Briner
 
1-Intro-2-ET_20160516
1-Intro-2-ET_201605161-Intro-2-ET_20160516
1-Intro-2-ET_20160516Thomas Briner
 
Perfect Forward Secrecy - Next Step in Information Security
Perfect Forward Secrecy - Next Step in Information SecurityPerfect Forward Secrecy - Next Step in Information Security
Perfect Forward Secrecy - Next Step in Information SecurityThomas Briner
 
Mobile Computing für die öffentliche Hand: Durchstarten ohne Bruchlandung
Mobile Computing für die öffentliche Hand: Durchstarten ohne BruchlandungMobile Computing für die öffentliche Hand: Durchstarten ohne Bruchlandung
Mobile Computing für die öffentliche Hand: Durchstarten ohne BruchlandungThomas Briner
 
Mobile Prozesse in der Verwaltung – mehr als nur Apps und Devices
Mobile Prozesse in der Verwaltung – mehr als nur Apps und DevicesMobile Prozesse in der Verwaltung – mehr als nur Apps und Devices
Mobile Prozesse in der Verwaltung – mehr als nur Apps und DevicesThomas Briner
 
Tour d'horizon Mobile Computing: Vom Hype zum Werkzeug - Mobile Computing im ...
Tour d'horizon Mobile Computing: Vom Hype zum Werkzeug - Mobile Computing im ...Tour d'horizon Mobile Computing: Vom Hype zum Werkzeug - Mobile Computing im ...
Tour d'horizon Mobile Computing: Vom Hype zum Werkzeug - Mobile Computing im ...Thomas Briner
 
Testgetriebene Datenmigration
Testgetriebene DatenmigrationTestgetriebene Datenmigration
Testgetriebene DatenmigrationThomas Briner
 
Mobile Computing verlangt nach neuen Denkansätzen
Mobile Computing verlangt nach neuen DenkansätzenMobile Computing verlangt nach neuen Denkansätzen
Mobile Computing verlangt nach neuen DenkansätzenThomas Briner
 
Sicherheit im Mobile Computing
Sicherheit im Mobile ComputingSicherheit im Mobile Computing
Sicherheit im Mobile ComputingThomas Briner
 
System Test Automation
System Test AutomationSystem Test Automation
System Test AutomationThomas Briner
 
Electronic Voting in the Standard Model
Electronic Voting in the Standard ModelElectronic Voting in the Standard Model
Electronic Voting in the Standard ModelThomas Briner
 
Überleben als embedded Tester im Scrum Team - SwissTestingDay 2012
Überleben als embedded Tester im Scrum Team - SwissTestingDay 2012Überleben als embedded Tester im Scrum Team - SwissTestingDay 2012
Überleben als embedded Tester im Scrum Team - SwissTestingDay 2012Thomas Briner
 

More from Thomas Briner (14)

5-Systemtest-Automatisierung_20160519
5-Systemtest-Automatisierung_201605195-Systemtest-Automatisierung_20160519
5-Systemtest-Automatisierung_20160519
 
4-Testcasedesign_20160519
4-Testcasedesign_201605194-Testcasedesign_20160519
4-Testcasedesign_20160519
 
3-UnitTesting_20160518
3-UnitTesting_201605183-UnitTesting_20160518
3-UnitTesting_20160518
 
1-Intro-2-ET_20160516
1-Intro-2-ET_201605161-Intro-2-ET_20160516
1-Intro-2-ET_20160516
 
Perfect Forward Secrecy - Next Step in Information Security
Perfect Forward Secrecy - Next Step in Information SecurityPerfect Forward Secrecy - Next Step in Information Security
Perfect Forward Secrecy - Next Step in Information Security
 
Mobile Computing für die öffentliche Hand: Durchstarten ohne Bruchlandung
Mobile Computing für die öffentliche Hand: Durchstarten ohne BruchlandungMobile Computing für die öffentliche Hand: Durchstarten ohne Bruchlandung
Mobile Computing für die öffentliche Hand: Durchstarten ohne Bruchlandung
 
Mobile Prozesse in der Verwaltung – mehr als nur Apps und Devices
Mobile Prozesse in der Verwaltung – mehr als nur Apps und DevicesMobile Prozesse in der Verwaltung – mehr als nur Apps und Devices
Mobile Prozesse in der Verwaltung – mehr als nur Apps und Devices
 
Tour d'horizon Mobile Computing: Vom Hype zum Werkzeug - Mobile Computing im ...
Tour d'horizon Mobile Computing: Vom Hype zum Werkzeug - Mobile Computing im ...Tour d'horizon Mobile Computing: Vom Hype zum Werkzeug - Mobile Computing im ...
Tour d'horizon Mobile Computing: Vom Hype zum Werkzeug - Mobile Computing im ...
 
Testgetriebene Datenmigration
Testgetriebene DatenmigrationTestgetriebene Datenmigration
Testgetriebene Datenmigration
 
Mobile Computing verlangt nach neuen Denkansätzen
Mobile Computing verlangt nach neuen DenkansätzenMobile Computing verlangt nach neuen Denkansätzen
Mobile Computing verlangt nach neuen Denkansätzen
 
Sicherheit im Mobile Computing
Sicherheit im Mobile ComputingSicherheit im Mobile Computing
Sicherheit im Mobile Computing
 
System Test Automation
System Test AutomationSystem Test Automation
System Test Automation
 
Electronic Voting in the Standard Model
Electronic Voting in the Standard ModelElectronic Voting in the Standard Model
Electronic Voting in the Standard Model
 
Überleben als embedded Tester im Scrum Team - SwissTestingDay 2012
Überleben als embedded Tester im Scrum Team - SwissTestingDay 2012Überleben als embedded Tester im Scrum Team - SwissTestingDay 2012
Überleben als embedded Tester im Scrum Team - SwissTestingDay 2012
 

Compiler for Zero-Knowledge Proof-of-Knowledge Protocols