Final Presentation - cs.columbia.edu€¦ · Final Presentation Maggie Mallernee, Zachary Silber,...
Transcript of Final Presentation - cs.columbia.edu€¦ · Final Presentation Maggie Mallernee, Zachary Silber,...
![Page 1: Final Presentation - cs.columbia.edu€¦ · Final Presentation Maggie Mallernee, Zachary Silber, Michael Tong, Richard Zhang, Joshua Zweig](https://reader034.fdocuments.net/reader034/viewer/2022042311/5ed9c48883a20d3c9139eee2/html5/thumbnails/1.jpg)
FinalPresentationMaggieMallernee,ZacharySilber,MichaelTong,RichardZhang,JoshuaZweig
![Page 2: Final Presentation - cs.columbia.edu€¦ · Final Presentation Maggie Mallernee, Zachary Silber, Michael Tong, Richard Zhang, Joshua Zweig](https://reader034.fdocuments.net/reader034/viewer/2022042311/5ed9c48883a20d3c9139eee2/html5/thumbnails/2.jpg)
OverviewWhatisC%(andhoweverdoyoupronounceit)?
![Page 3: Final Presentation - cs.columbia.edu€¦ · Final Presentation Maggie Mallernee, Zachary Silber, Michael Tong, Richard Zhang, Joshua Zweig](https://reader034.fdocuments.net/reader034/viewer/2022042311/5ed9c48883a20d3c9139eee2/html5/thumbnails/3.jpg)
WhyC%?
CryptographyImplementationisHard
Goals
EncourageCorrectness
ImproveReadability
Extensibility
Easetheburdenoflargenumberarithmetic
![Page 4: Final Presentation - cs.columbia.edu€¦ · Final Presentation Maggie Mallernee, Zachary Silber, Michael Tong, Richard Zhang, Joshua Zweig](https://reader034.fdocuments.net/reader034/viewer/2022042311/5ed9c48883a20d3c9139eee2/html5/thumbnails/4.jpg)
Overview
BasicsofC%� CompilestoLLVM
� C-likesyntaxandsemantics
� Heapmemorymanagement:malloc()andfree()
� Userinput:printf()andscanf()
TheBigStuff� Cryptographictypes:Stones,Mints,EllipticCurves,andPoints
� Painlessarbitraryprecisionarithmetic
� Overloadedoperatorscoveringgroupoperationsofmodularintegersandpointsovercurves
![Page 5: Final Presentation - cs.columbia.edu€¦ · Final Presentation Maggie Mallernee, Zachary Silber, Michael Tong, Richard Zhang, Joshua Zweig](https://reader034.fdocuments.net/reader034/viewer/2022042311/5ed9c48883a20d3c9139eee2/html5/thumbnails/5.jpg)
ProjectManagement51PRs,37Closed,282commits
![Page 6: Final Presentation - cs.columbia.edu€¦ · Final Presentation Maggie Mallernee, Zachary Silber, Michael Tong, Richard Zhang, Joshua Zweig](https://reader034.fdocuments.net/reader034/viewer/2022042311/5ed9c48883a20d3c9139eee2/html5/thumbnails/6.jpg)
VersionControl
![Page 7: Final Presentation - cs.columbia.edu€¦ · Final Presentation Maggie Mallernee, Zachary Silber, Michael Tong, Richard Zhang, Joshua Zweig](https://reader034.fdocuments.net/reader034/viewer/2022042311/5ed9c48883a20d3c9139eee2/html5/thumbnails/7.jpg)
TestingItworks!Thisishowweknow!
![Page 8: Final Presentation - cs.columbia.edu€¦ · Final Presentation Maggie Mallernee, Zachary Silber, Michael Tong, Richard Zhang, Joshua Zweig](https://reader034.fdocuments.net/reader034/viewer/2022042311/5ed9c48883a20d3c9139eee2/html5/thumbnails/8.jpg)
ContinuousIntegration
� Executeentiretestsuiteoneverypush/PR� Providedetailedfeedback� Enforcealltestspassing
![Page 9: Final Presentation - cs.columbia.edu€¦ · Final Presentation Maggie Mallernee, Zachary Silber, Michael Tong, Richard Zhang, Joshua Zweig](https://reader034.fdocuments.net/reader034/viewer/2022042311/5ed9c48883a20d3c9139eee2/html5/thumbnails/9.jpg)
ArchitectureAjourneyfromsourcecodetosharedsecrets
![Page 10: Final Presentation - cs.columbia.edu€¦ · Final Presentation Maggie Mallernee, Zachary Silber, Michael Tong, Richard Zhang, Joshua Zweig](https://reader034.fdocuments.net/reader034/viewer/2022042311/5ed9c48883a20d3c9139eee2/html5/thumbnails/10.jpg)
TheBigPicture
Preprocess• #includestatements• Buildguards
Scan
Parse
Verify • Semanticchecking
GenerateLLVM
• Linktoopensslbignum
• Builtinfunctions• Typespecificbehavior
![Page 11: Final Presentation - cs.columbia.edu€¦ · Final Presentation Maggie Mallernee, Zachary Silber, Michael Tong, Richard Zhang, Joshua Zweig](https://reader034.fdocuments.net/reader034/viewer/2022042311/5ed9c48883a20d3c9139eee2/html5/thumbnails/11.jpg)
BigNumArithmetic
openssl/bn.h
(BIGNUM)
special_arith.c
codegen.ml
(stone)
![Page 12: Final Presentation - cs.columbia.edu€¦ · Final Presentation Maggie Mallernee, Zachary Silber, Michael Tong, Richard Zhang, Joshua Zweig](https://reader034.fdocuments.net/reader034/viewer/2022042311/5ed9c48883a20d3c9139eee2/html5/thumbnails/12.jpg)
CompilerInterface
� Optionsallowinguseraccesstoeachstepinthecompilationprocess
� Canseethetokenizedprogram,AST,LLVM(sdtoutor.llfile),assembly(.s),andcompiletoafullexecutable
![Page 13: Final Presentation - cs.columbia.edu€¦ · Final Presentation Maggie Mallernee, Zachary Silber, Michael Tong, Richard Zhang, Joshua Zweig](https://reader034.fdocuments.net/reader034/viewer/2022042311/5ed9c48883a20d3c9139eee2/html5/thumbnails/13.jpg)
WhatexactlydoesC%doforme?We’regladyouasked
![Page 14: Final Presentation - cs.columbia.edu€¦ · Final Presentation Maggie Mallernee, Zachary Silber, Michael Tong, Richard Zhang, Joshua Zweig](https://reader034.fdocuments.net/reader034/viewer/2022042311/5ed9c48883a20d3c9139eee2/html5/thumbnails/14.jpg)
TheJist
� It’slikeC!� Syntax/Comments� Expressions/Statements� ControlFlow
� KeyFeatures� Pre-processing� Input/Output� Scoping� Declarationflexibility� Memorymanagement� Operatoroverloading
![Page 15: Final Presentation - cs.columbia.edu€¦ · Final Presentation Maggie Mallernee, Zachary Silber, Michael Tong, Richard Zhang, Joshua Zweig](https://reader034.fdocuments.net/reader034/viewer/2022042311/5ed9c48883a20d3c9139eee2/html5/thumbnails/15.jpg)
CryptographicTypes
� Stones:Basisofallothercryptographictypes,linkstoOpenSSL/BN
� Mints:Integersinafinitefieldmodulosomeprimep
� Curves:Ellipticcurves,comprisedoftwomints
� Points:Pointsonacurve,withoperationsrelativetothatcurve
![Page 16: Final Presentation - cs.columbia.edu€¦ · Final Presentation Maggie Mallernee, Zachary Silber, Michael Tong, Richard Zhang, Joshua Zweig](https://reader034.fdocuments.net/reader034/viewer/2022042311/5ed9c48883a20d3c9139eee2/html5/thumbnails/16.jpg)
CaesarCipher?Wehaveyoucovered
CryptographyLibrary
� Weprovidesomecoolexamples!� CaesarCipher
� SimpleshiftingusingMints� StreamCipher
� MintsandAccessmethodsprovideeasytrackingofrepeatedvaluesmodaconstantmoduliwithimprovedreadbility
� DiffieHellman(ModularintegerandECC)� Pointsimprovereadability� NoconfusiononPointarithmetic
� ElGamalEncryption� ExtremelyintuitiveandclearwhenusingbuiltinCurvesandPoints
![Page 17: Final Presentation - cs.columbia.edu€¦ · Final Presentation Maggie Mallernee, Zachary Silber, Michael Tong, Richard Zhang, Joshua Zweig](https://reader034.fdocuments.net/reader034/viewer/2022042311/5ed9c48883a20d3c9139eee2/html5/thumbnails/17.jpg)
ECC:CvC%