From 2ffe91850bd85405f9e0696453b9cb4869272615 Mon Sep 17 00:00:00 2001 From: Jan Bobolz Date: Tue, 22 Jun 2021 17:03:40 +0200 Subject: [PATCH 1/8] New index page --- _config.yml | 5 +++-- _data/navigation.yaml | 2 -- assets/logo.png | Bin 0 -> 102953 bytes index.md | 39 ++++++++++++++++++++++++++++++++++++--- 4 files changed, 39 insertions(+), 7 deletions(-) create mode 100644 assets/logo.png diff --git a/_config.yml b/_config.yml index 27ccf2e..9944f23 100644 --- a/_config.yml +++ b/_config.yml @@ -6,8 +6,9 @@ relative_links: collections: true theme: minimal-mistakes-jekyll minimal_mistakes_skin: "air" -title: Cryptimeleon Documentation -subtitle: "Version 1.0.0" +title: Cryptimeleon +subtitle: Prototyping of Cryptographic Construction +logo: /assets/logo.png repository: cryptimeleon/cryptimeleon.github.io locale: en description: Documentation page for the Cryptimeleon cryptography libraries. diff --git a/_data/navigation.yaml b/_data/navigation.yaml index 49e37fb..367ae13 100644 --- a/_data/navigation.yaml +++ b/_data/navigation.yaml @@ -1,8 +1,6 @@ docs: - title: Getting Started children: - - title: "Libraries Overview" - url: /getting-started/libraries.html - title: "Installation" url: /getting-started/installation.html - title: "5-minute Tutorial" diff --git a/assets/logo.png b/assets/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..2cd860e7bed5337a2d263467f7e45c50396f17dc GIT binary patch literal 102953 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�Y30`9kt&}t#-xdW8wZSqv!sxW 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 You want to prototype and benchmark your new kind of anonymous credentials, group signatures, attribute-based encryption, or other construction in the bilinear group setting? +> +> Try Cryptimeleon! + +## ✅ What Cryptimeleon offers +Cryptimeleon supports the following features (plus others): +- Write equations in our simple algebraic ([bilinear groups](docs/bilinear-groups.html)) framework. + - Easily readable, e.g., `g.pow(m).op(h.pow(r))`. + - Easy parallelism and precomputation. Transparent multiexponentiation. +- [Benchmark](docs/benchmarking.html) your construction (in milliseconds or count group operations) and put convincing numbers into your paper + - Android support - run modern crypto on a phone. +- Implement Schnorr-style zero-knowledge proofs. + - Specify them using Camenisch-Stadler notation in [subzero](https://cptml.org/subzero) to generate code. + - Supports AND/OR composition, range proofs, pairing support, Fiat-Shamir, etc. +- Use the basics you may expect: hash into groups or \\(\mathbb{Z}_p\\), use pseudorandom functions with arbitrary input/output length, ... + +## ❌ What Cryptimeleon does _not_ offer + +- Do *not* use Cryptimeleon for production code. It is a research tool only and may not offer the security level required in real applications. +- Do *not* use Cryptimeleon if you want to implement absurd levels of performance optimization. + - We focus more on easy-to-read APIs than performance. + - That said, benchmarks with Cryptimeleon are definitely competitive and we do automatically optimize some things in the background. + +## Getting started +- 🙋 To read more, consider our paper [to be published]. +- 🧑‍💻 To see example code, read the [5 minute tutorial](/getting-started/5-minute-tutorial.html) or generate a Sigma protocol with [subzero](https://cptml.org/subzero). +- 👷 To build your own application with Cryptimeleon, [install](/getting-started/installation.html) it via Maven or Gradle. +- 🧙 For everything else, consult this documentation page, follow our [Twitter](https://twitter.com/cryptimeleon), find the code on [GitHub](https://github.com/cryptimeleon), or [contact us](mailto:contactus@cryptimeleon.org). + + +🏫 Cryptimeleon has been developed at Paderborn University (Germany) in the [Codes and Cryptography group](https://cs.uni-paderborn.de/en/cuk). From df44eab1f38c90c59ee7da16bca6cf88392058ed Mon Sep 17 00:00:00 2001 From: Jan Bobolz Date: Tue, 22 Jun 2021 17:03:57 +0200 Subject: [PATCH 2/8] Version placeholder --- _config.yml | 5 ++- getting-started/5-minute-tutorial.ipynb | 2 +- getting-started/installation.md | 42 +++++++++++++++---------- 3 files changed, 31 insertions(+), 18 deletions(-) diff --git a/_config.yml b/_config.yml index 9944f23..a5aa41d 100644 --- a/_config.yml +++ b/_config.yml @@ -26,6 +26,9 @@ kramdown: auto_ids: true hard_wrap: false +cracoversion: 2.0.0 +mathversion: 2.0.0 + # exclude from jekyll site exclude: - vendor @@ -34,4 +37,4 @@ exclude: - Gemfile.lock - README.md - Dockerfile - - LICENSE \ No newline at end of file + - LICENSE diff --git a/getting-started/5-minute-tutorial.ipynb b/getting-started/5-minute-tutorial.ipynb index 189d14f..18e5e83 100644 --- a/getting-started/5-minute-tutorial.ipynb +++ b/getting-started/5-minute-tutorial.ipynb @@ -270,7 +270,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "For more information on serialization, see [our documentation regarding `Representation`s](https://cryptimeleon.github.io/docs/representations.html)." + "For more information on serialization, see [our documentation regarding `Representation`s](https://cryptimeleon.org/docs/representations.html)." ] }, { diff --git a/getting-started/installation.md b/getting-started/installation.md index c6406da..49e2c9a 100644 --- a/getting-started/installation.md +++ b/getting-started/installation.md @@ -13,13 +13,18 @@ This process depends on your project structure and dependency management; theref We assume that you are familiar with the dependency management of your build tool. ## Maven -For adding for example Craco 1.0.0 to your project, add this dependency: +For adding for example the newest version of Craco and Math to your project, add this dependency: ```xml + + org.cryptimeleon + math + {{site.mathversion}} + org.cryptimeleon craco - 1.0.0 + {{site.cracoversion}} ``` @@ -31,25 +36,30 @@ If you want to use the mclwrap library, you also need to [install the MCL java b ## Gradle -We asssume you have set up a Gradle project with a `build.gradle` file. +We assume you have set up a Gradle project with a `build.gradle` file. The libraries are hosted on Maven Central. -Therefore, you need to add `mavenCentral()` to the `repositories` section of your `build.gradle` file. -Then, you need to decide which library you want to use. Once you have decided, you need to add it as a dependency. -For example, for Craco version 1.0.0, you would add `implementation group: 'org.cryptimeleon', name: 'craco', version: '1.0.0'` -to the `dependencies` section in the `build.gradle` file. -The group id is common to all Cryptimeleon libraries. -The name of the library generally corresponds to the name of the repository. +Example gradle file: +```gradle +plugins { + id 'java-library' +} + +repositories { + mavenCentral() +} + +dependencies { + implementation 'org.cryptimeleon:math:{{site.mathversion}}' + implementation 'org.cryptimeleon:craco:{{site.cracoversion}}' +} +``` If you want to use the mclwrap library, you also need to [install the MCL java bindings](#mclwrap-installation). # Mclwrap Installation -For benchmarking you will probably want to use an efficient cryptographic pairing implementation. -The Cryptimeleon Math library does provide a selection of pairings, but these are orders of magnitude less efficient than other, more optimized implementations. - -An efficient pairing implementation is provided by our wrapper around the [MCL library's](https://github.com/herumi/mcl) implementation of the BN254 curve. -This wrapper is provided by the Cryptimeleon Mclwrap library. +For a much more efficient bilinear group implementation, use our wrapper around the [MCL library](https://github.com/herumi/mcl)'s BN254 curve. -To use the MCL wrapper library in your project, you need to install the Java bindings for MCL. -See [here](https://github.com/cryptimeleon/mclwrap/blob/master/README.md) for installation instructions. +To use the MCL wrapper library in your project, you need to (1) compile and install MCL, and then (2) add the dependency to our the Java bindings. +This process is explained [here](https://github.com/cryptimeleon/mclwrap/blob/main/README.md). From 61109ac49df20787491076b1f3d7a2462bc7f96c Mon Sep 17 00:00:00 2001 From: Jan Bobolz Date: Tue, 22 Jun 2021 17:41:06 +0200 Subject: [PATCH 3/8] Update index --- index.md | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/index.md b/index.md index f84f965..18012fc 100644 --- a/index.md +++ b/index.md @@ -16,12 +16,15 @@ Cryptimeleon supports the following features (plus others): - Write equations in our simple algebraic ([bilinear groups](docs/bilinear-groups.html)) framework. - Easily readable, e.g., `g.pow(m).op(h.pow(r))`. - Easy parallelism and precomputation. Transparent multiexponentiation. -- [Benchmark](docs/benchmarking.html) your construction (in milliseconds or count group operations) and put convincing numbers into your paper - - Android support - run modern crypto on a phone. + - Same abstraction as in conference papers. We're taking care of point-on-curve and subgroup checks. +- [Benchmark](docs/benchmarking.html) your construction (in milliseconds or count group operations) + - Put convincing numbers into your paper. + - Android support - benchmark modern crypto on a phone. - Implement Schnorr-style zero-knowledge proofs. - Specify them using Camenisch-Stadler notation in [subzero](https://cptml.org/subzero) to generate code. - Supports AND/OR composition, range proofs, pairing support, Fiat-Shamir, etc. -- Use the basics you may expect: hash into groups or \\(\mathbb{Z}_p\\), use pseudorandom functions with arbitrary input/output length, ... +- Use the basics you may expect: hash into groups or \\(\mathbb{Z}_p\\), use pseudorandom function and random oracles with arbitrary input/output length, ... +- No copyright issues: Open-source under Apache 2.0 license. ## ❌ What Cryptimeleon does _not_ offer From 71342f700d80d788ec8924d81fab739d886a99c2 Mon Sep 17 00:00:00 2001 From: Jan Bobolz Date: Tue, 22 Jun 2021 18:06:58 +0200 Subject: [PATCH 4/8] Set up first steps (overview + maven) + how-do-I --- _data/navigation.yaml | 4 +- assets/cryptimeleon_overview_parts.png | Bin 0 -> 158596 bytes docs/faq.md | 4 +- docs/how-do-I.md | 13 ++ getting-started/first-steps.md | 77 +++++++++++ getting-started/installation.md | 65 --------- getting-started/libraries.md | 182 ------------------------- index.md | 2 +- 8 files changed, 95 insertions(+), 252 deletions(-) create mode 100644 assets/cryptimeleon_overview_parts.png create mode 100644 docs/how-do-I.md create mode 100644 getting-started/first-steps.md delete mode 100644 getting-started/installation.md delete mode 100644 getting-started/libraries.md diff --git a/_data/navigation.yaml b/_data/navigation.yaml index 367ae13..a87551a 100644 --- a/_data/navigation.yaml +++ b/_data/navigation.yaml @@ -1,8 +1,8 @@ docs: - title: Getting Started children: - - title: "Installation" - url: /getting-started/installation.html + - title: "First Steps" + url: /getting-started/first-steps.html - title: "5-minute Tutorial" url: /getting-started/5-minute-tutorial.html - title: "Pairing Tutorial" diff --git a/assets/cryptimeleon_overview_parts.png b/assets/cryptimeleon_overview_parts.png new file mode 100644 index 0000000000000000000000000000000000000000..6a5065aa019db5bc2d093d4b355e689d9f746e10 GIT binary patch literal 158596 zcmeFZXH=70*ESkDf+#3RM--JNAksUE5Q+%Wdr*4sARVkI5TuE81nH1S@6AGQp@j}g z@4dHgg{}K>Kd<{c=g0YT#&{jW3`oMAd#yFgHLrQiyjFeyB_X0AfIZ~e$!nFj)42{ke_RFS*M z()j3+p@6A!uZsFw!ep+6 zr>(-*`HJL<3~JGj(^h)}k@sS6^`<}&5j{VQ8IK48RKtni$Wu{Ksrp$@t%qTgR^T*V zV#O9FYD~a+oG#T*E4g@$@PJTDQT8p*TW_334cT^C+?cvuoW?%6yBCz8kENFIuxz7R ze>{!*D*pmvgpIh46Y)_a!q0r>@M&{$>t@geJg6Z{D%+Fk>kD%%RMb>4Jh%Kl(-Lmf7{vwM*BZzIgBd zo|Plm|9iJ1KK`gIKK^%NNiozni+UMDcNqp|eEdGolM`PJuu+MvwX1HQPfltmk4{e9 zxRp2P@n7P&LnyA8Eb}#>4#1uZnrO+HDk?(Qz|VvbtXCEgT<{YX_)i1=Lm=2m*uS13 z@Jqt^^)s#@=0)xY9P9)6H{To=DbfS5Aad3R+v=S%;AryZP=^xtJ{v zN0)8Hd*wfBA9a#uA!PJ}VE^yK|L(#6+QI+2!T-0Rz@7N(TP#@O><~@OVKc)Fr@iq1_|VfE z0e>N5|HLc8X~{w&Ro8 zNif6pF$$R}6QcaHeUUT!52ut}*l0ry51$;{8LwD;%QV}>18XNtg&6AVZiGskf?4gEDinR4oN0y5mF6&WS*M*I=uBwx9S~v;5pP8uqMXm*tmXD z0ZkuBF>m?0d3pV4q&}`%iK=`1#{R-XmB(>v2(7!#k#b=@5xA_ObX>2`IE1|=Wp}7= zt#NShRXWJ#Iho(AIn3W=mJ|EqQlz;I9~>WaSU9s8PMp-=tQEfai5ttl{b5skdnA*# zP*_4J$E$N@P1QKj`QB#b#tcnsLqZdR(4dL4vpN#}eq$gKfzT7$IN^XqC+j(`B)>;J8wdcwoZC7%a*gWaU z0-QIx#yF~V*QOw6$hmVyn!2r8u=IE~a?E#(x!Vkf4Pza*E;2&sOa+3Lulo7f`ES_L z!Se4}f8MD#9N}EP)J7W>b?i+mKY>3r9IFNWgJps%u#jo3p$({ce2Q-Bmo+TB3FiLR z-R+cr5OmqaAOhjc1$WGCAGB*HhRlof zqQy@S^*f^^(X4%`!X_COt{0K{{7iq($2FPNk~h6cdePV1ciXpB($tdGzlr?OCJ7nG zufKgy%Dkkb{tk9B%r-|YbYdOy`t|Ez8@rEBeZti`4UE-*!M!JZBGdXp&UfwxxQzY% zq{o?c;4`AtAGKoLltS8Ep}|f2w*={aCW0^F`ly$U0?I6~xa(tc6Mc|b2qu6risBJM zUd?!?pa~h1gc6;MmOn{3&uK};@F5J5|8}^fge;wlAJ@BjpA?&Om0jImL{VQV7BIw^ z0!uw`;lQ=F4_07Vu%r{kv3QfiJ(v96tDKxNoFd2%Ma}=V3#5g$sr3cY-u31bOk~bR z8`K}w>oD&nl>wLhGHZ%b2SM=$DeXnKr98e+xJ{P)UVhUy+dGWS{Nd#MlW;c&lEsY* zDUEKATP-f!WCHH@{i-BHP;Z(1=pFklVRY+b2y9mSBEI)TxUPO_rJS#O9v%pQW+;#ZBK(M=t_D({W@5T zU*eTF?Z5bdpX4p<{h&Ob_%3)_ULG`7giY%X#;+v(Aof(l*UAGR*qr|T!-Lx~ARH}b zpKivVyb13@#>4Bqd5PTT?dhR-?3h4DMMw%c_bm1vCGa0s(s1_PMZT%#8v~l!GJo86 zEL@^%<6AkXt(*Ch1SZVjWX1(CiKl%$?i_fH>n-iYh4-r^&X$kApKm7nqsK`y&f`@k z@YPQWCrHbPkwSnCT*BDE4}O#!E~!1?1c~bx!Xub21@R{({Q5QG)8*@|-0juPxBta4l^L;i3hMPd6L`km)!4Pb`OZNBoW8c;y^RX53nf`o*C%9gsR?ebOpPnqcFmupROcX2A%v(1-0`rkF5c1RQ5Lt+W6p9Fj7@<$R6we8UHH@_~u`@fx@s zqzmwv(gbOIZ$_G{z(|>uYmc%Qaa~`iVqB_@=&PWQ+c#3IbC=+*f4l%ANF+x&+&46- zd@j@mDiSg(i{jDUiTE)f?ePM9W+|?t6TPqVw+j$gth_gWz6m@sdkM={iYssxQrYc0 z04K54av?4@cQpNr^J4-+QYqorTjM3A!$kZ35bPJEj1WCSQCDdU$TB>8;t~XL&5eKm zzyUz5KLrp%U#yvMsQ2b<)|nH9Ng}Y_>)`02$70h&|Ci4^^$13JT=34O;OX1{kMI2d z&ozHAom?opi`mv$y!v2TW_FF7TS{u#8XVNO3?)&C5j?UU9_5RpRl3dZIM_2YGXwrD z7Xh2x0&bXc3uU{{ zJvq~jo5I$8Pj-B}KFVE`yMLc|A?l{~)s?E9gvI{6FM6<2`wz3(>e(6zN2gfnUoPK; zG0%Pa>3#6JKOyPvR1{1!#hq_l#Jc}hrhY~7L^Igv8*U>mQD-lU>*ct=N9XE7A^jhm zy)GRhuSsGlbs#s z_J;KEIDnU~>M-7rxh8XBHYxIkTjQ~j(KT^SnIAzr&!20_-46)=_)(Bm`>KI_>NWX+ zuGcD=ch6*MRo}Z;@%+m-6Y4~YA-B|~Uw&yYgkX%%fnSN$aW2|uQ$HU&}h81Jo5RgW3tcP?mIZ#+h{v-u2PKU zS3w$xX%|^W4m6O^^1nxKbV{AqZo{cw7_Qc^KqKNcSJ8tSMV9IoJsF`l4J!L{y3{%& zk|{e0)}1JqBHR^Ro8I(#wh`=z25@<}wS)Nkfs!SZj(N*6^4%pxHu+boS+ZMftRE!K zK%EKAN!{x5^>26V(rK4lBCQ8}`p+&3)8st`F_zp2i-cxjM!H*ODpfI1zAIl2Z({6z zYpF(%9ko8jKu@hK`7VGDYQv_Sz(GFC88%0--ZpKe>R{2xULiO~_qHuoAhu4CWYZGj z+W7WLeF^I1SRKJ+CiqB8PteuXB%DaKyO*U0NvU0FBUPLoZDbcnsJuU4`n)&hA$?*(zlhszY z74$Mi4E7)!*t^0@-qn|TzkfU-r{9uh752{+IoI;hg4TH7PPdh;TH5Uf90LyMF8gl= z(eV&w`Zscq<%HFfG|P7&irNfso!^l1JkP7}buv+)IU+jN_{5*-gP0%`vvzojpU;}Z zM)8;F1?a?%4mDHuy^wCJX6<+@IRH5u@|feYSa2O39VZJq#5d@K`S~>vr9X%|go%Hp zKS>7)kZtr<&K})`_-Bys0%Mtac3#|Gui_Y|z6HQXpTv}}FHVveY ztc=I3ofqwLtgHAUE+S%5FrjE2L>sL@l~j3(2J`PWL&Z%S9TF?iO6cy+q9m+2=w)v; z+nOWSGvx1k$=hjoInC!fKRkmJU=aq$~{B?8k%5`)n|NIZlz9Q0F=2k^8Lrq8^k9RsC*^s^XVxbkaHo zZwkfKL}Tpc-g`fv%&C?YbR#;vuQ@us_pL&Q6^n`d-m!r8bA6Am2JIk7i=xv`#MA#y z0H8dA2+}QI@V*B&gX~jCBZq!@;aLVztr!8jW$LL4k1fl+*_06DrNN@K*Z4sMBs7z9 zU%d9`(mkyTr2r=WR}AR)fs4$=uRzHhr{xu-23Ja{88-5(T*JHc~p zIdLz}Xsh6P2Weoi8%VAGetUZ#5^3va8Xr#B!H$yO`1s74HINy>*Y6uWSTEeP7BX*D zLcq)iY`wTuB$&J?M%fbRp}Mdy6==7O*A+%;6i)8 z`B_J67#1b}JMoc)Qh|bHsN}P2$eJ42OPoVX1=43Gcv6gF*&HofnjIa#ID%wTXC`t= z%lu%m@87+RTCdq|P9%1tNxVE%nI?ncs;ZQ5Eo+74D;&EhI?3QrHpI#%{>t6{gyiFM z*0`f;oS-iGtZI02e3TGceO=)lFZ6i7JnXhfGZhn?YFlVYxjuA5N4oprTn75}MdlcF zn%3UX+8BmGgT;+~e)G=S`&c$MXm^j?t}JzS=qfr3?H2z`3#Z5TcrRUB%&0!d4{O{C zS;cQ$2NU~{me^PJ);kiRUm<@h<)!zMLVQUr(S&~=k6mlz7mJ2!Uc;g+SVdvnPzu8N z7Q^sDh5->so}>uunAb@iu2DME0pqXh19~%SZ26%++UUsmc=pSOc4gN6Udpyq zojp{+%`4(9_2`3lORuJyG^ZO8V$=q)+3K7YxLphKGv|6iWHunlzyR*gl8oPWyP7jO z*kX~{ToyMaPO8|nX#`t=vD*k3$KC^1g2 zyk%K!OwGEoC_VF~G9PAS)MKZvGBEH6+?js>S?8+_wEn1CyGTWXmvyV>@zC%R+$z?z z^^xcJI9b_7eV?hNXM>E!eXKSb?$3nB47XKM2Lscbs|)RYIupALzANA;^#7>2%Ij;W#HSFWZzhf&XrqsZ01j@ggz?5b$ zNIN%MV+OTh04A?j7Tb++5}ez8P-hj7cn~jaI&VaOC0iPLFo;tt%+@b|lEd^;#Cg_m ziOs`H(cgkX5id9M-BBdHh^rv~(m(-}w|{}N$O`SMN#UXYtYc@)w?=3NfL2eFspiP( zA{}(GX&Vi-kmJW;7qtEham_*o!`?yf_2iIoyMsRU$$I}bSrm1y1eKlu_QM;>0Q{95 z?f0!O#O2=J?@omi>^V`cM4%IlMCqaq9gR02mIf}zx@(v861sF#Ar8+i@ z5ei|)P^Y_<2zMdWP29IeUdX(etx2CnvG;I&n_X#WShnR-4{p8qJ0<@HgIykGINk^0 zE6ERA__Nz|YxFum#c%LciFKUGSNrpf+D7=svza_EUN}xrQkt1Bk_Ra6-pq7SbFs}( zj`W82d`~8Pt5U<6(-8K}=NxQ^SVc4W-WjO;9LPB>CQ~sedE_c zseUf;`v(u7)hdxJT)VDtYo%=J^MANC$ywa@pV*w=(P4-WmIyz%p7(kav&rTxO8i-k zFqi#AeehIrAZPQ2C?*&e0=%~R(W{ut3WtPzNWmZ_aLLA-!wPb6@15gRbJN=^Qgr&A zJv|YJXXwOY*pXCB6vM0{1p0l?$L)?;EC3lob|cB+!{wTaXWUBmat)E*VivhKb*hIR zQns<%(K4luIKk$<)&xkbAFK+*_}(gY#Z6X|tl3PiIoVH8M_>8mtyxY+WiX#%^cxB5 zuYBefwxC)V9RX$qA8XMtUyg0V)b=yO2z?Q!1bxL1aWOITLeJW9Dt%9U04o1*_XUyZ zrzhXuP)y%Y#2HCbq|KATu`+RV%-1#>D*-TSTity!6iPSaV!fG{JVWB5UF}tNxY?~V z{ivt|t?#B^tJ;&T+3`M*do+C7W2QYGYp4LFJ05$vueq78p{vItFwg@Xm7p(`*gSNw z*n{!GZ@Nj=(buR=TSs;~3u>BGF>s zCr_+`%F!ifW^yt>gvHt}X#-E!X}SLESE>|`yNOyqR=nZiEst@auN3aN-B8b1}*>P zh^^Rj9(0>Krn*Lm@sD2xmFWKl(U>YlgK<-7o_L698`IB7R+gM;A1UAJH;?9N7yM%P z)(I3C^pXBE}0Br&41S-C)HV0AgSr`93qw)?tq z89*0p=n=Ou`V0&I67}rqL;gchtKl$M0hki@?%lLSN=iCw9kG|VPoy!;`PEz%w(ECZ z>WvKROwnTwWc;%Kjo{{%y_p`TC--+P;ui;RGg+SGzq1ssz3`r8+opJ1)57 zUc2J&>*}ElYIgsOO93Gvd_G*oyvJ=W)|}2q*wb#RebPn5lp$c1e+6?=53J+s3?8a* z3=cP{D+$e=Z(%!@>0%IemaRV8*3H(g-HC`Gw-_leN^jG(tGW*0&$I`qUQ^}5ZzS0C zJxu`1(df%E_tWf{%Qjcm?$*$qico!!cS&j=k@+b+EKIZ^?$)EHGs2>gCpTy5zG4W5 zlyU%w;Vv47#ET+tS$V8k=L$_uHfZFdRT>VDR@yFs6$3-%oF9>Fre^(+8wS$-#dMob z8Y%N)A_o~>5-wE}F`n_-P)iLF{ueKdm`+V2f~W^HeZ0%jE_z2_Giif-C+J*yPOHwJ zX-o1Et}K>5mDn~0NO}>@#uWe*_acO&I(zW1f;x1*H@gL}Ol>j~4IxqZBs2kOPy3SR zf?RyY-A3J^u8aMT`m|3_k~uY9nX1guJZA8+0f6w|z>l{mjr+)3h$%UFpXE?fQ?Gx$ zsMNSrGRC>R*-6W9{Wg>d3W@{Ybk6Q^mlE5NLzfigE#a$WN{Qm@y_&G-29%J0qR+lX z+4q;UALS$25{$A(m=nFODnxN^^~}l6C%=#CcX~>w`~Gl4rm0DYzr4~iHO#S(8n=^a zk>5!O*!Ep4Mf5<8ofP%f+J%mX>Br?wIf2D$3Bn<%?KT#XfTWl{T4t@`BnpbhfLwi{BIrd^!=p?b4RA(cgy zV`q6pH|;?@8wSo-B6?mUGfiiQ11#T1D=N;=&o)A^|{jEu8Po zEnbuMH=3KH`^k*m!V@k*awhszshnfj7ip>gUTD4NyC!Jo1Rze?W0 z^VnWw<&set+O+?Q7JgAMl)scLTUr)fmu+$(bK>lT-9Cs19F;FLkYnInf$loUf`N z%@3iKmu!@vXC>i{K1x%Joz9#eEXp<;7<;-c{j41DQjrc5^-Y6CRwf+@VhPhtO-;#j zseHS-DKA%eP0EpxraA|@{mHEPug+iQjA78lLFpD-lPNy5p`bs?vB;`$Te014%bF1r z^v6?h6QU`$(%0toW0I&+(C9Ip!ky4Ok&Jgh~EiGNYV7NGpVzu z-}{p46pT4Qe>~@MiX-nb%O#%uZ-(yTo@KEtd#>fR=% zrZKD`e4pkRnzEdh4cw<9r(5Qq)wr?S>e`}b7EB}8`=7O)8ZBE=4c8LZxVqIg8Dts?&h)3RGhV}#HlG{sfZzQ)iOmNm*wnMg z_iH7NHp6GA^vj*OWtgse^lcOnQ}! z@j_}xy&I-g`kLQNg$3`$8i@{RpEh&AVpR5wp($dBv0QjCSz*{CFMk#$o(3mrkepQz z_ruKM@lN;r1bhEL#n*0naxx}(b0^b>yWrmKkcGqSy#M$fBNf(h@>!YJ{2243I&)LM zTgI*h_J6d? zSA&MrMx&n{R$JG{8i8D)$)ZRfA5zHnk~GIJ7~m(liqR{KzIliFI4z=xo7yV2Ra+XF zIz^UR+ldb-t7^aVnn48lu78+SYNp263E@Rqj=94Tcflhq%Ok=HwT7uuWOxTD!THl{ zoPfPN7W=9@d18Y}iHhbwhe|FFHu=R5BQvlMNxNtC?CbElD&3u!UfAV;wvOU_UoJZ< zE9*C8%4SACq51v;&qrVV^`Du5cQXoN?W{c5S?L>xU+~EtMn}hemEiue!r5g6TCAbi z%N^$xu@rx6gd}~!K3u5$^mGvecF1}BG5Nfjg%FqB{@OxDiiOJ6Gk572b1-*yhwvKn zHz6Gp1|fbfgpt(q+)`xs66vF;mMP4uS14uWoxOdGr5k3TjaLF^{r11jW8vUGfg>y` zSbv!-MwbIQ_m?gQV^A!2vD_en+;w}TS%gY$AG`?{hs#tokOmx9Xas0)+{EB1UaP+Q zKPIFO%!c6fBF3YY?)jcOwi^me^uo@oDB2aarJ?DzSQEg}ByR+2=4hc>d6fYtyHbyr z0m5YH(ojiDU#@OjRSTwdVAU7#_3Kw`I*wJ&Sbm!@KvV_ln5W??MuU>vW`p8M$Dv(Y zW8>SYmZ(@)kbJ_|r&?k&_msr;Pd{=E_bl^%h<2aw2#Fuk7YMhNyT+uNx~W< zqF@u8Kefrz2=n<4W1-T8FW=wH{c2bX;^sTWG5JlnKUrBlGu2$`Fk#%2@i0N^9jCsI z_`xENlXra(_4;B#N3+|QH*;B8Spt7~64qzc2SU<_s%;$%QlcC3%Jn*2Ygh-RlqY|0 zrYf{Pzl2u>UqDnm0F5~l^#gCT=l*;)(xX_wqU#=5ff0gBue7rg3G+QF zq7!}6*Z>~=Zi#AHYE5<` z{Nx6V;-f-W8;>fAR?S!vppESg$JO%oc(>n}A?GMC!ORPH*w@p{Oyq>0OI$3K`IkWg z(aANyf5$Cf^8PErB@yB}>YZPicpQHx=&GPe4}&8rS$ZAQPeP2*^zQc?g){*ax0vb1 z^)Wp?5MOqS57aF@%2{jr+u?#z-o-2F@)91W&gA0#m5`Fn$G&z0aHg}pq z1<18C>=ZJ~vLHDHE*%DCaQ}KXS>kwiA}t#33MkmZ;*o>KP^M(p5b^yCi*%;4qe!V& z=U(G4@<|?ot43ql`r71r(C2v#m_#)dT6E{I)vU~C*Bt=B9ka9Er)#%0^p51k#ehI3 z__!m146)nhj|w;VT7fN>gG|F>U!A`rFV~4PL4YamYlS4QjYew!qEnvZB{)69rQu+^sL_PLNl_a zrfD@d#25IIvY9eAh>i!{`f3kA*~lU0x!sE19_i5#_C0K9dB;(p z>B+HRzStfwLO^j?wBiN2JUnm39Ddvb(zPq(_P*}Z84E3ZS47qGgd+}wjrPv6YV5pf z2P_Q8^#(3bR*^Ul8Js{l}*s$aOkmU zHi+NReC7q{Cl~7ijlLXhBYd8t;P*v?+A9E}h0@wpa?dhmFQ?DF10X_mffVjWUzW3R zfk2-1a5~m*n!3Mw>YeW7tIIz2bVJq2naJ?)@Fn%>d^m5r(%y>ii50wlt4Jw_TPF|T zLo8J>rRdwzi0b|Mq$5x{n!u-B61lEisf*juRMk0P)2JOl^JhPRY9RH>x^%WG7hGmL z6ai(}#zkmuY2k)Sq$Ih$Fx(K)NnGmd#^93bc>ahwuz{>fT*~X@31vuo7cnLoQ4u}y z23e8wrQ2)HzcrKJnZafpE>nyBMFcZ`#9n4ht{GR8RcfxQ#8pvInUpx$3$Y%n9=V^I z!=#U<$$Vkfk-$;qv9)e_0&Kk*tZ-I+1^HS00v{`@900mz?RbZn^04N3i>twQW2Pet zl>!x+cb1;X0F+pkP*g5lvQO=64Cfwb-K|oe?b~cRep-alJ*a9|C?$J$CzZCV=QvHz zDGA@lGb^> z&oNhpnV6)CZAaJ!nZ=Y|5K$~DwwWldEmQqd_yp{u zsj%%EP%^veP$URHL+sHnCF#ha(^Ytjb ztHPFo{mCi!8bA=mcRE^f0!`ZYPW^)=FaWZXQ#|;TZMZ;|qx6n{T zQ3930a3z0sy9e6+1)q9;704=I&N>20denf!X0VVOmLBgKGi?8bWKUi$cdlq>X=p|; zp`9rQAH!GmVCeY!a=9}oEA4#a*G3ii4_uZKR_HJpf-5#ovDdTs2aRqC2G}o6RMv?LE>oTHwv5U z&r3niTG?c$gpNqB)QD^qz#IEE`<4kBw!J$fPP~wY`S8ITB!&8!v+q*AU#UKz!8sDW z6weFAxYuXRS}R=pT>~Pq|Hz10WUxhlaL5QeL;TvBO-$!S`{gt9WyvM{ zx%6R*%r;wMi!inpl!!o8CWz|03xgt8F4kz}o3w!HrQ)H=n7P?uLwVqrUifY!05=Vx z^-a%d7JvFJZgTN9Zn66a)kFPUu3_in4#vzv*n^R%#_BbUJM^BqI3}iNq9-!C(6ay9ptZj z-LG}IYJvxpS+I}~^+dmNMKFtC6nDRj^YkalI@~xVQexM$r}98dIdJRJs{9!1*)idS zk^%s7?<69e=ekT8?Lhk@!F$;MP6s~vZu*0GJ-*TGpBT6SKi*eBLVAX(@8Os2M0PPm zRq4SnkPi4+WG)@dI|3$rMBQM4hS!Cl0i={U3dx;8l*R|At$Eo|kapZHN6LMPJ6vIPt%lg;2{=^5!j>A{rWH6%+x*oC z>5^CLI*T(-TniaP$`mluy`!=->M+4`|2*Tr4tkB!@Z9(h-;lp0P4_bV+P!1Zjru#O z%-61!W?y4wZpcP3QY=R_;R(G&dM`3LpmVe*dOtGOslfd05Bvk?b$E*k+au#Nfy%5k zTds4+JDLn~E+*vVKTPVckL$sxrOI{N@qU_|qyt&!W{oh+)~6X%J5@0RJmqLB=F1cg z4i4g$#IV#9m)zt#c5ZSH9=K{wl_4^bIFZSfm)zbgNFEV>`e9a1!hl=1wOgy*gyjcN|pTO22X1w49Z z(myi<+4O(N#OP3<-xkw^zUF)HcK zGkgP2yTQVyY&g*`jQO`EVs1*!4{}R_;Mb(Ey99ShF zJz#gbLF!Wg=%X5bF~cE6Cb*Kn0@;-9pMCZHb~VCeq}=67)g{f6H`cxAB3vWGmCg`} zW0sieK{gKE;s{WwXlGac503`hfA1|&ffJTT>zx8)@Wk`PS^%n_o`YC@>K7}?#b3W0 zd9GhG$pQ4b_U`uXIn;m#L4!DOg-9Usi*XUw(S`}XL9;ncw}t|~7?-{=fzRq)QTEsl z4WDH|TEYY1AcajUMYC`q(FnuXCwEVVMR!`l)BmV*tr^gp?7HdVW|LR0}>EBz)coVl8u+2#anR9`BHicDj?$goRy>~g#2z}k* zjkV*|FX!{!H>Q(9L_9Xl=g`Q+2|kb@8;+O#rU5-Y2`VAC!nKm*6fM}3?|8nkVp}xi zZXx^z1*XBR@43Hp-$3Ho3}tI_H565X;OoA0X?>~4vUk0l3s^f7Y#@D>T(B)RDfJ3O7e^Y*!#B*nP$t4D~G)J=A^*=D>LW60hG7vgNS%tPE zgAW^io%_!`^_NFZ0%ijq=h+nbD|=B9%?9)VfdB9ugXnC@j_}>>tZc-(Wr{_l=l0^9 zTg_AJPD3O<-I6p;fbb7qWeiyX;D#=*V$tcDs8o5lct#HUo*ZE$QPB7_v+CvYg?k|r zNb^{cmCEihQ{+CT5M<9Sgqwp>Fr;d*oZY!_3&>`dGx`d7L9ViQ~wBReAxo{-EZR z;#C#~ZA`8JkX)Lm&EmfEArbsut91m|Sy`K`5t^(RU!E1ZKY}=A&)pM&?Q{-P9Xf*_uuLNj8-OF_#I z!%^{gZzW3yUgP2Eww!lIk0Wc!Ot-XRw%vh1BVoII6%Zx?_yMs3cDB{LctvTAt|d;3 zhwNH@d<&${O>m#4b_YC1n-$8*;)Ie@j|EghlrXGWz^!N(v-SI0njZ6T57|+Isfk>T8&>Cy=yvy zD=ZR!@5X~TmNRG0EGu5oMsKzPGUFYn(Lb|)ssJ(^6nb}U0w+P?SrE;qP0hlU6>26Q zz86IzM@4D=eMw-+p$ljv7vR&Pgq)^#MJm$`x^L*tp!|xeFifA%;Tm+q1nI^l0K`&f zuU0IC?0A4^0Zdk$EdG@i&ct?DXy}!iwxzXL>$8qck)gXt1; zOIt+={j~ehhs!$GmN3|zTEJGXdO1)$qh~Kt0?-~!3kl?M=|U{OKm%z#b__+sG0}v= zhlQUxj8qys2m()zZA<;hE=aCjG#@I?6$(?I`Pz$$uU28TLR$4^U5|;;p7H8sv`TX9 zl4FkEz}L0mosEi#vCPFk8ckK8#0Zz8x3yy4f z>gyNHZN{prqNn$d4_2bii|^L1YykpL2Qa_J+o?eAp6o<1q)I1X-QQ_9=KL(i{LPFe z%v(Ldds}+|WZJQ9VM{GlaZrmcb>$gBYnF0IV$SK#SQKLf4YTa;lXudfAq?<^zRgj8 zc~BOcU?d;rqe>D-YM{PcE+{jACW?FCFEDM3*|V1V8{Gc}ox!v(h^3XD%@jWg2Fdql zdUCW?N8M-W-9aqvjGC07~0! z8^9NvuBvtOFEox|vg>vYK-JU3Rd_<_X-*7$mJzd+m6)npXbg#O4#<_Z2`kAmO{Bqe zxyvDQ!jsQBXZQ7=^dNH=zGj1Gk>1XLPaZd0(wyfhw4qXjEnrW%M+M&}_y=t{@;r+rBWrZpn z-%tKMA)RI=%tI1(D^_a<)-U_}ZJ+;s%jt8ZS1<^AQpS<`7qt54>%adYmZ1;+pO)~C z=lluDz(nj7fv}d-wElm6AcSo2{Qd!dzT0~N801wJs)zsQ*MD0->G?mcSn>%GCXj

nADZ=ZzmC~d2X4DyMy=oC{h|TkKqadx&@>pC& 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 Q1^g%RQszbebDekpA0G! + org.cryptimeleon + math + {{site.mathversion}} + + + org.cryptimeleon + craco + {{site.cracoversion}} + +``` + +## Gradle +Add these entries to your `build.gradle`. + +```gradle +plugins { + id 'java-library' +} + +repositories { + mavenCentral() +} + +dependencies { + implementation 'org.cryptimeleon:math:{{site.mathversion}}' + implementation 'org.cryptimeleon:craco:{{site.cracoversion}}' +} +``` + +# Mclwrap Installation +Eventually, you should probably install [mclwrap](https://github.com/herumi/mcl) because it is a _much_ more efficient bilinear group than [what is available](/docs/bilinear-groups.html) in the Math library by default. + +To use MCL in your project, you need to (1) compile and install MCL, and then (2) add the dependency to our the Java bindings. +This process is explained [here](https://github.com/cryptimeleon/mclwrap/blob/main/README.md). diff --git a/getting-started/installation.md b/getting-started/installation.md deleted file mode 100644 index 49e2c9a..0000000 --- a/getting-started/installation.md +++ /dev/null @@ -1,65 +0,0 @@ ---- -title: Installation -toc: true ---- - -To make use of any of the Cryptimeleon libraries, you need at least Java SDK version 8. - -# Library Installation - -Here, we show you how to add any of the libraries as a dependency such that you can use them in your own project. -This process depends on your project structure and dependency management; therefore, we have instructions for each of the popular build tools such as Gradle and Maven. - -We assume that you are familiar with the dependency management of your build tool. - -## Maven -For adding for example the newest version of Craco and Math to your project, add this dependency: - -```xml - - org.cryptimeleon - math - {{site.mathversion}} - - - org.cryptimeleon - craco - {{site.cracoversion}} - -``` - -The `groupId` is common to all Cryptimeleon libraries. -Adjust the `artifactId` to the library you want to add as a dependency. -It generally corresponds to the library's name, i.e. the name of the repository. - -If you want to use the mclwrap library, you also need to [install the MCL java bindings](#mclwrap-installation). - -## Gradle - -We assume you have set up a Gradle project with a `build.gradle` file. -The libraries are hosted on Maven Central. - -Example gradle file: -```gradle -plugins { - id 'java-library' -} - -repositories { - mavenCentral() -} - -dependencies { - implementation 'org.cryptimeleon:math:{{site.mathversion}}' - implementation 'org.cryptimeleon:craco:{{site.cracoversion}}' -} -``` - -If you want to use the mclwrap library, you also need to [install the MCL java bindings](#mclwrap-installation). - -# Mclwrap Installation - -For a much more efficient bilinear group implementation, use our wrapper around the [MCL library](https://github.com/herumi/mcl)'s BN254 curve. - -To use the MCL wrapper library in your project, you need to (1) compile and install MCL, and then (2) add the dependency to our the Java bindings. -This process is explained [here](https://github.com/cryptimeleon/mclwrap/blob/main/README.md). diff --git a/getting-started/libraries.md b/getting-started/libraries.md deleted file mode 100644 index 4c6ac6d..0000000 --- a/getting-started/libraries.md +++ /dev/null @@ -1,182 +0,0 @@ ---- -title: Libraries Overview -mathjax: true -toc: true ---- - -The Cryptimeleon cryptography libraries are a family of libraries tailored towards fast prototyping of cryptographic constructions. - -In this document, we give a short overview of each library. - -# Math - -The [Math library](https://github.com/cryptimeleon/math) provides the mathematical foundation for the other Cryptimeleon libraries. -It provides basics such as mathematical groups, rings and fields, e.g. \\(\mathbb{Z}_n\\), as well as implementations of cryptographic pairings. - -Furthermore, it contains a serialization framework which acts as an intermediary between the cryptographic scheme and the low-level Java serialization. -This allows for easy serialization of mathematical objects such as group elements. - -Also noteworthy is the implementation of multi-exponentiation algorithms to allow for fast evaluation of multi-exponentiations. -To support better benchmarking, the math library allows for counting group operations via a special pairing group. - -## Features - -### Groups - -Math offers the following algebraic groups: - -* Bilinear groups: - * Type 1 and type 3 pairings. For more details on this see [here]({% link docs/bilinear-groups.md %}) -* Elliptic curves without pairings: - * `Secp256k1` -* Permutation group \\(S_n\\) -* Cartesian product group - -### Rings - -Math offers the following algebraic rings and fields: - -* Boolean ring -* Cartesian product ring -* Field extension class for polynomials of the form \\(x^d + c\\) -* Integer ring -* Polynomial ring -* \\(\mathbb{Z}_n\\) and \\(\mathbb{Z}_p\\) for prime \\(p\\) - -### (Multi-)Exponentiation Algorithms - -To speed up group operations, Math contains interleaved sliding window and interleaved WNAF (multi-)exponentiation algorithm implementations. - -### Lazy Evaluation - -The lazy evaluation feature allows deferred evaluation of group operations with the purpose of allowing for smart multi-exponentiation algorithm usage. -See [here]({% link docs/lazy-eval.md %}) for more information on this. - -### Serialization - -The representation framework contained in the Math library acts as an intermediate step between the actual Java objects and the Java serialization. -It aims to simplify serialization for the user. -For more information see [here]({% link docs/representations.md %}). - -### Hashing - -Math implements the SHA256 and SHA512 hash functions and offers annotations useful for enabling hashability of any Math structure. - -### Random Number Generation - -Math implements a random generator based on Java's `java.security.SecureRandom` random number generator. - -### Counting Group Operations - -Math allows counting of group operations via the debug group. -See [here]({% link docs/benchmarking.md %}) for information on this topic. - -### Expression Framework - -WIP - -# Craco - -[Craco](https://github.com/cryptimeleon/craco) (CRyptogrAphic COnstructions) is a Java library providing implementations of various cryptographic primitives and low-level constructions. This includes primitives such as commitment schemes, signature schemes, and much more. - -The goal of Craco is to provide common cryptographic schemes for usage in more high-level protocols as well as to offer facilities for improving the process of implementing more low-level schemes such as signature and encryption schemes. - -## Features - -### Implemented Schemes -The constructions provided are: - -* **Accumulators**: - * Nguyen's dynamic accumulator [Ngu05] -* **Commitment schemes**: - * Pedersen's commitment scheme [Ped92] -* **Digital signature schemes**: - * Pointcheval & Sanders' short randomizable signature scheme [PS16] - * An extension of Boneh, Boyen and Shacham's signature scheme from [Eid15] - * Pointcheval & Sanders' modified short randomizable signature scheme (with and without ROM) [PS18] - * Hanser and Slamanig's structure-preserving signature scheme on equivalence classes [HS14] -* **Encryption schemes**: - * ElGamal - * Streaming AES Encryption using CBC and GCM modes of operation -* **Key encapsulation mechanisms (KEM)**: - * ElGamal -* **Secret sharing schemes**: - * Shamir's secret sharing scheme [Sha79] and its tree extension - -# Mclwrap - -Mclwrap provides a wrapper around the BN-254 bilinear group implemented in the [MCL library](https://github.com/herumi/mcl). As the bilinear groups implemented in the Cryptimeleon Math library are not particulary efficient, use of this wrapper is recommended for proper benchmarks. -Specifically, the mclwrap implementation's group operations are roughly 100 times as fast as our own implementation. - -# Predenc - -The Predenc project contains various predicate encryption implementations such as attribute-based encryption or identity-based encryption. -Furthermore, it contains key encapsulation mechanisms based on predicate encryption schemes. - -## Features - -### Implemented Schemes - -* **Encryption schemes**: - * Attribute-based: - * Waters' ciphertext-policy attribute-based encryption scheme [Wat11] - * Goyal et al.'s key-policy attribute-based encryption scheme [GPSW06] - * Identity-based: - * Fuzzy identity-based encryption [SW05] - * Identity based encryption from the Weil pairing [BF01] -* **Key encapsulation mechanisms (KEM)**: We implement several KEMs based on the encryption schemes implemented in this library. Predenc provides KEMs for [Wat11], [GPSW06] and [SW05]. - -# Groupsig - -*Work in progress* - -The Groupsig project aims to offer group signature implementations as well as interfaces and tests to speed up implementation of group signature schemes. - -## Features - -### Implemented Schemes -*Work in progress* - -* Choi, Park and Yung's short traceable group signature [CPY06] - -# CLARC - -CLARC: Cryptographic Library for Anonymous Reputation and Credentials. -This library provides an anonymous credential system. -It was developed as part of the ReACt project group at Paderborn University. - -Documentation can be found [here](https://cs.uni-paderborn.de/fileadmin/informatik/fg/cuk/Lehre/Veranstaltungen/WS2016/ReACt/ReACt_documentation.pdf). - -# References - -[BF01] Dan Boneh and Matt Franklin. "Identity-Based Encryption from the Weil Pairing". In: Advances in Cryptology — CRYPTO 2001. CRYPTO 2001. Ed. by Joe Kilian. Vol. 2139. Lecture Notes in Computer Science. Springer, Berlin, Heidelberg, August 2001, pp. 213-229. - -[CPY06] Seung Geol Choi and Kunsoo Park and Moti Yung. "Short Traceable Signatures Based on Bilinear Pairings". -In: Advances in Information and Computer Security – IWSEC 2006. Springer Berlin Heidelberg, 2006, pp 88–103. - -[GPSW06] Vipul Goyal, Omkant Pandey, Amit Sahai, and Brent Waters. "Attribute-based encryption for fine-grained access control of encrypted data". In: ACM Conference on Computer and Communications Security. ACM, 2006, pages 89–98. - -[HS14] Christian Hanser and Daniel Slamanig. "Structure-Preserving Signatures on Equivalence Classes and Their Application to Anonymous Credentials." -In: Advances in Cryptology – ASIACRYPT 2014. Springer Berlin Heidelberg, pp 491–511. - -[Ngu05] Lan Nguyen. “Accumulators from Bilinear Pairings and Applications”. In: Topics -in Cryptology – CT-RSA 2005. Ed. by Alfred Menezes. Vol. 3376. Lecture Notes in -Computer Science. Springer, Heidelberg, February 2005, pp. 275–292. - -[Ped92] Torben P. Pedersen. “Non-Interactive and Information-Theoretic Secure Verifiable - Secret Sharing”. In: Advances in Cryptology – CRYPTO’91. Ed. by Joan Feigenbaum. - Vol. 576. Lecture Notes in Computer Science. Springer, Heidelberg, August - 1992, pp. 129–140. - -[PS16] David Pointcheval and Olivier Sanders. “Short Randomizable Signatures”. In: Topics -in Cryptology – CT-RSA 2016. Ed. by Kazue Sako. Vol. 9610. Lecture Notes in -Computer Science. Springer, Heidelberg, February 2016, pp. 111–126. - -[PS18] David Pointcheval and Olivier Sanders. "Reassessing Security of Randomizable Signatures". In: Topic in Cryptology - CT-RSA 2018. Ed. by Nigel P. Smart. Springer International Publishing, 2018, pp 319-338. - -[Sha79] Adi Shamir. “How to Share a Secret”. In: Communications of the Association for -Computing Machinery 22.11 (November 1979), pp. 612–613. - -[Wat11] Brent Waters. Ciphertext-policy attribute-based encryption: An -expressive, efficient, and provably secure realization. In Public Key -Cryptography. Springer, 2011, pp. 53–70. \ No newline at end of file diff --git a/index.md b/index.md index 18012fc..d97eb13 100644 --- a/index.md +++ b/index.md @@ -36,7 +36,7 @@ Cryptimeleon supports the following features (plus others): ## Getting started - 🙋 To read more, consider our paper [to be published]. - 🧑‍💻 To see example code, read the [5 minute tutorial](/getting-started/5-minute-tutorial.html) or generate a Sigma protocol with [subzero](https://cptml.org/subzero). -- 👷 To build your own application with Cryptimeleon, [install](/getting-started/installation.html) it via Maven or Gradle. +- 👷 To build your own application with Cryptimeleon, [import our projects](/getting-started/first-steps.html) via Maven or gradle. Check out our ["how do I ..."](/docs/how-do-I.html) page if you're stuck. - 🧙 For everything else, consult this documentation page, follow our [Twitter](https://twitter.com/cryptimeleon), find the code on [GitHub](https://github.com/cryptimeleon), or [contact us](mailto:contactus@cryptimeleon.org). From 0545b992d3a1ecb4168abd75af46a8eac7ca6151 Mon Sep 17 00:00:00 2001 From: Jan Bobolz Date: Tue, 22 Jun 2021 18:11:51 +0200 Subject: [PATCH 5/8] Got rid of masters and dependencies --- _data/navigation.yaml | 2 -- contributors/composite-builds.md | 6 +++--- contributors/dependencies.md | 30 ------------------------------ 3 files changed, 3 insertions(+), 35 deletions(-) delete mode 100644 contributors/dependencies.md diff --git a/_data/navigation.yaml b/_data/navigation.yaml index a87551a..5947252 100644 --- a/_data/navigation.yaml +++ b/_data/navigation.yaml @@ -35,5 +35,3 @@ docs: url: /contributors/composite-builds.html - title: "Contributing" url: /contributors/contributing.html - - title: "Dependencies" - url: /contributors/dependencies.html diff --git a/contributors/composite-builds.md b/contributors/composite-builds.md index 639dc69..ddb04c5 100644 --- a/contributors/composite-builds.md +++ b/contributors/composite-builds.md @@ -17,10 +17,10 @@ To do this, every library that depends on some other Cryptimeleon library includ This script clones the dependency to the same directory level as the library being built and includes it as a composite build if possible. "If possible" means that the branches should follow some rules. Let `LB` be the name of the branch of the library being built and `DB` be the name of the branch of the dependency library. The composite build will only be enabled if either of the following hold: -- The dependency has no branch called `LB` and `DB == master`. In this case, the `master` branch of the dependency is used for the composite build. +- The dependency has no branch called `LB` and `DB == main`. In this case, the `main` branch of the dependency is used for the composite build. - The dependency has a branch called `LB` and `DB = LB`. In this case, the `DB` branch of the dependency is used for the composite build. -To summarize, the build script will always try to use the branch with the same name as `LB` and use `master` if no such branch exists. +To summarize, the build script will always try to use the branch with the same name as `LB` and use `main` if no such branch exists. Importantly, no automatic checkout of branches is done. This means that if the branches don't match, the build script will complain and fail. You can adjust this behaviour using the **useCurrentBranch** parameter as explained below. @@ -35,7 +35,7 @@ These can either be set in the `gradle.properties` file in the top level folder - **useCurrentBranch**: If defined (any value) the branch selection checking will be skipped. That means the composite build will be enabled no matter the dependency branches that are currently checked out. - This can be useful for when you need a version that is not on `master` but you also do not want to create a new branch. + This can be useful for when you need a version that is not on `main` but you also do not want to create a new branch. - **checkoutIfCloned**: If defined (any value), will automatically check out the corresponding dependency branch (branch with same name) given that the dependency was freshly cloned. Used by the Travis CI to automatically switch to the right dependency branch for the build. diff --git a/contributors/dependencies.md b/contributors/dependencies.md deleted file mode 100644 index 4fca490..0000000 --- a/contributors/dependencies.md +++ /dev/null @@ -1,30 +0,0 @@ ---- -title: Dependencies -toc: true ---- - -### Math - -Refer to the `dependencies` section in Math's Gradle [build configuration](https://github.com/ryptimeleon/math/blob/master/build.gradle). - -### Craco - -Refer to the `dependencies` section in Craco's Gradle [build configuration](https://github.com/cryptimeleon/craco/blob/master/build.gradle). - -### Mclwrap - -Refer to the `dependencies` section in Mclwrap's Gradle [build configuration](https://github.com/cryptimeleon/mclwrap/blob/master/build.gradle). - -Additionally, Mclwrap relies on the [Mcl library](https://github.com/herumi/mcl). The exact version can be found in the [readme](https://github.com/cryptimeleon/mclwrap#readme). - -### Predenc - -Refer to the `dependencies` section in Predenc's Gradle [build configuration](https://github.com/cryptimeleon/predenc/blob/master/build.gradle). - -### Groupsig - -Refer to the `dependencies` section in Groupsig's Gradle [build configuration](https://github.com/cryptimeleon/groupsig/blob/master/build.gradle). - -### Clarc - -Refer to the `dependencies` section in Clarc's Gradle [build configuration](https://github.com/cryptimeleon/upb.crypto.clarc/blob/master/build.gradle). From f00bae5e8a886d998e12d51a4f602466414b1401 Mon Sep 17 00:00:00 2001 From: Jan Bobolz Date: Tue, 22 Jun 2021 18:25:48 +0200 Subject: [PATCH 6/8] Added how-do-I to navigation --- _data/navigation.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/_data/navigation.yaml b/_data/navigation.yaml index 5947252..357486c 100644 --- a/_data/navigation.yaml +++ b/_data/navigation.yaml @@ -13,6 +13,8 @@ docs: url: /getting-started/implement-elgamal.html - title: Documentation children: + - title: "How do I ...?" + url: /docs/how-do-I.html - title: "Lazy Evaluation" url: /docs/lazy-eval.html - title: "Bilinear Groups" From e57c36ecfbb492445d7f03dc45f4ed4f978f17c7 Mon Sep 17 00:00:00 2001 From: Jan Bobolz Date: Tue, 22 Jun 2021 18:39:14 +0200 Subject: [PATCH 7/8] Fixed overblown DDH claim --- getting-started/protocols-tutorial.ipynb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/protocols-tutorial.ipynb b/getting-started/protocols-tutorial.ipynb index 342583f..85b8fb7 100644 --- a/getting-started/protocols-tutorial.ipynb +++ b/getting-started/protocols-tutorial.ipynb @@ -14,7 +14,7 @@ "$$\\mathrm{PRF}_k(x) = H_2(h, x, H_1(x)^k)$$ \n", "where $H_1:\\{0,1\\}^*\\rightarrow \\mathbb{G}$, $H_2:\\{0,1\\}^* \\rightarrow \\{0,1\\}^n$ are hash functions modeled as random oracles.\n", "\n", - "This is a PRF because under appropriate (DDH-type) assumptions (essentially the only way to distinguish a PRF-value $\\mathrm{PRF}_k(x)$ from random is to compute $H_1(x)^k$ without knowing $k$).\n", + "This is a PRF because under appropriate (Diffie-Hellman-type) assumptions (essentially the only way to distinguish a PRF-value $\\mathrm{PRF}_k(x)$ from random is to compute $H_1(x)^k$ without knowing $k$).\n", "\n", "## 🥸 How to obliviously retrieve function values\n", "\n", From d9f2a4bfb148c7304075b590764248cb848655fb Mon Sep 17 00:00:00 2001 From: Jan Bobolz Date: Fri, 25 Jun 2021 12:03:38 +0200 Subject: [PATCH 8/8] Some initial how-do-I --- docs/how-do-I.md | 28 +++++++++++++++++++++++++--- 1 file changed, 25 insertions(+), 3 deletions(-) diff --git a/docs/how-do-I.md b/docs/how-do-I.md index e2977ee..faafd5d 100644 --- a/docs/how-do-I.md +++ b/docs/how-do-I.md @@ -7,7 +7,29 @@ toc: true This page addresses a bunch of questions of the form "how do I do xyz in Cryptimeleon?". Consider it Stack-Overflow-style help. -# How do I set up a group? -# How do I compute a pairing? -# How do I hash something? +# How do I do group operations and pairings? + + +# How do I hash into \\(\mathbb{Z}_n\\)? +You can use `HashIntoZn` for this. +```java +BigInteger n = BigInteger.valueOf(99991); //just for the sake of example +HashIntoZn hashFunction = new HashIntoZn(n); +Zn.ZnElement hashVal = hashFunction.hash("Preimage"); +``` + +# How do I hash into a group \\(\mathbb{G}\\)? +Bilinear groups provide hash functions as follows: +```java +GroupElement hashValue = bilinearGroup.getHashIntoG1().hash("Preimage"); +``` + +For other groups, there may be classes like named like `HashIntoSecp256k1`. + +# How do I hash a list of group elements? + + # How do I send or store a group element? + + +# My benchmark produces implausibly good numbers

ZqEQ|2ZEtj!S%&>Xzg@8o4qjefREDwG8FDf_6;% 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