Skip to content

Commit

Permalink
demos: more convenient keygen output
Browse files Browse the repository at this point in the history
  • Loading branch information
ErnestThePoet committed Apr 10, 2024
1 parent f4fe789 commit e32ba2d
Show file tree
Hide file tree
Showing 10 changed files with 52 additions and 14 deletions.
4 changes: 2 additions & 2 deletions docs/demos.json
Original file line number Diff line number Diff line change
Expand Up @@ -193,7 +193,7 @@
{
"name": "El Gamal:密钥对生成",
"irUrl": "demos/cryptography/elgamal_keygen.ir",
"remark": "程序选取生成元g和31位的安全素数p (p=2q+1),均匀随机地选取x∈Zq,计算h=(g^x) mod p。输出(g,p,h,x),其中(g,p,h)为公钥,(g,p,x)为私钥。",
"remark": "程序选取生成元g和31位的安全素数p (p=2q+1),均匀随机地选取x∈Zq,计算h=(g^x) mod p。输出公钥(g,p,h)和私钥(g,p,x)",
"vmOptions": {
"maxExecutionStepCount": 50000000
}
Expand All @@ -217,7 +217,7 @@
{
"name": "Plain RSA:密钥对生成",
"irUrl": "demos/cryptography/rsa_keygen.ir",
"remark": "程序选取e=65537,生成(N,p,q),其中N为31位,p和q为素数,N=p*q,并有gcd(e,φ(N))=1 (φ(N)=(p-1)(q-1))。计算d=(e^(-1)) mod φ(N)。输出(N,e,d),其中(N,e)为公钥,(N,d)为私钥。",
"remark": "程序选取e=65537,生成(N,p,q),其中N为31位,p和q为素数,N=p*q,并有gcd(e,φ(N))=1 (φ(N)=(p-1)(q-1))。计算d=(e^(-1)) mod φ(N)。输出公钥(N,e)和私钥(N,d)",
"vmOptions": {
"maxExecutionStepCount": 3000000
}
Expand Down
5 changes: 4 additions & 1 deletion docs/demos/cryptography/elgamal_keygen.cmm
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
* (2) Choose a uniform x∈Zq as private key, compute
* h=(g^x) mod p;
* (3) Public key is <g,p,h> and private key is <g,p,x>.
* (4) Output (g,p,h,x).
* (4) Output (g,p,h) and (g,p,x).
*
* This implementation is for demonstration purposes only.
* Part of this implementation is adapted from OpenSSL v3.3.0.
Expand Down Expand Up @@ -1510,6 +1510,9 @@ int main()
write(dh[0].params.g);
write(dh[0].params.p);
write(dh[0].pubkey);

write(dh[0].params.g);
write(dh[0].params.p);
write(dh[0].privkey);

return 0;
Expand Down
14 changes: 12 additions & 2 deletions docs/demos/cryptography/elgamal_keygen.ir
Original file line number Diff line number Diff line change
Expand Up @@ -3672,6 +3672,16 @@ var1173 := var1172 + #12
WRITE *var1173
var1174 := #20 * #0
var1175 := &var1155 + var1174
var1176 := var1175 + #16
WRITE *var1176
var1176 := var1175 + #0
var1177 := var1176 + #0
WRITE *var1177
var1178 := #20 * #0
var1179 := &var1155 + var1178
var1180 := var1179 + #0
var1181 := var1180 + #4
WRITE *var1181
var1182 := #20 * #0
var1183 := &var1155 + var1182
var1184 := var1183 + #16
WRITE *var1184
RETURN #0
4 changes: 3 additions & 1 deletion docs/demos/cryptography/rsa_keygen.cmm
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
* (N,p,q) also satisfy N=p*q and gcd(e,φ(N))=1 where φ(N)=(p-1)(q-1).
* (3) Compute d=(e^(-1)) mod φ(N).
* (4) Public key is <N,e> and private key is <N,d>.
* (5) Output (N,e,d).
* (5) Output (N,e) and (N,d).
*
* This implementation is for demonstration purposes only.
* This implementation is adapted from OpenSSL v3.3.0.
Expand Down Expand Up @@ -1681,6 +1681,8 @@ int main()

write(rsa[0].n);
write(rsa[0].e);

write(rsa[0].n);
write(rsa[0].d);

return 0;
Expand Down
6 changes: 5 additions & 1 deletion docs/demos/cryptography/rsa_keygen.ir
Original file line number Diff line number Diff line change
Expand Up @@ -4024,6 +4024,10 @@ var1263 := var1262 + #4
WRITE *var1263
var1264 := #20 * #0
var1265 := &var1252 + var1264
var1266 := var1265 + #8
var1266 := var1265 + #0
WRITE *var1266
var1267 := #20 * #0
var1268 := &var1252 + var1267
var1269 := var1268 + #8
WRITE *var1269
RETURN #0
4 changes: 2 additions & 2 deletions public/demos.json
Original file line number Diff line number Diff line change
Expand Up @@ -193,7 +193,7 @@
{
"name": "El Gamal:密钥对生成",
"irUrl": "demos/cryptography/elgamal_keygen.ir",
"remark": "程序选取生成元g和31位的安全素数p (p=2q+1),均匀随机地选取x∈Zq,计算h=(g^x) mod p。输出(g,p,h,x),其中(g,p,h)为公钥,(g,p,x)为私钥。",
"remark": "程序选取生成元g和31位的安全素数p (p=2q+1),均匀随机地选取x∈Zq,计算h=(g^x) mod p。输出公钥(g,p,h)和私钥(g,p,x)",
"vmOptions": {
"maxExecutionStepCount": 50000000
}
Expand All @@ -217,7 +217,7 @@
{
"name": "Plain RSA:密钥对生成",
"irUrl": "demos/cryptography/rsa_keygen.ir",
"remark": "程序选取e=65537,生成(N,p,q),其中N为31位,p和q为素数,N=p*q,并有gcd(e,φ(N))=1 (φ(N)=(p-1)(q-1))。计算d=(e^(-1)) mod φ(N)。输出(N,e,d),其中(N,e)为公钥,(N,d)为私钥。",
"remark": "程序选取e=65537,生成(N,p,q),其中N为31位,p和q为素数,N=p*q,并有gcd(e,φ(N))=1 (φ(N)=(p-1)(q-1))。计算d=(e^(-1)) mod φ(N)。输出公钥(N,e)和私钥(N,d)",
"vmOptions": {
"maxExecutionStepCount": 3000000
}
Expand Down
5 changes: 4 additions & 1 deletion public/demos/cryptography/elgamal_keygen.cmm
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
* (2) Choose a uniform x∈Zq as private key, compute
* h=(g^x) mod p;
* (3) Public key is <g,p,h> and private key is <g,p,x>.
* (4) Output (g,p,h,x).
* (4) Output (g,p,h) and (g,p,x).
*
* This implementation is for demonstration purposes only.
* Part of this implementation is adapted from OpenSSL v3.3.0.
Expand Down Expand Up @@ -1510,6 +1510,9 @@ int main()
write(dh[0].params.g);
write(dh[0].params.p);
write(dh[0].pubkey);

write(dh[0].params.g);
write(dh[0].params.p);
write(dh[0].privkey);

return 0;
Expand Down
14 changes: 12 additions & 2 deletions public/demos/cryptography/elgamal_keygen.ir
Original file line number Diff line number Diff line change
Expand Up @@ -3672,6 +3672,16 @@ var1173 := var1172 + #12
WRITE *var1173
var1174 := #20 * #0
var1175 := &var1155 + var1174
var1176 := var1175 + #16
WRITE *var1176
var1176 := var1175 + #0
var1177 := var1176 + #0
WRITE *var1177
var1178 := #20 * #0
var1179 := &var1155 + var1178
var1180 := var1179 + #0
var1181 := var1180 + #4
WRITE *var1181
var1182 := #20 * #0
var1183 := &var1155 + var1182
var1184 := var1183 + #16
WRITE *var1184
RETURN #0
4 changes: 3 additions & 1 deletion public/demos/cryptography/rsa_keygen.cmm
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
* (N,p,q) also satisfy N=p*q and gcd(e,φ(N))=1 where φ(N)=(p-1)(q-1).
* (3) Compute d=(e^(-1)) mod φ(N).
* (4) Public key is <N,e> and private key is <N,d>.
* (5) Output (N,e,d).
* (5) Output (N,e) and (N,d).
*
* This implementation is for demonstration purposes only.
* This implementation is adapted from OpenSSL v3.3.0.
Expand Down Expand Up @@ -1681,6 +1681,8 @@ int main()

write(rsa[0].n);
write(rsa[0].e);

write(rsa[0].n);
write(rsa[0].d);

return 0;
Expand Down
6 changes: 5 additions & 1 deletion public/demos/cryptography/rsa_keygen.ir
Original file line number Diff line number Diff line change
Expand Up @@ -4024,6 +4024,10 @@ var1263 := var1262 + #4
WRITE *var1263
var1264 := #20 * #0
var1265 := &var1252 + var1264
var1266 := var1265 + #8
var1266 := var1265 + #0
WRITE *var1266
var1267 := #20 * #0
var1268 := &var1252 + var1267
var1269 := var1268 + #8
WRITE *var1269
RETURN #0

0 comments on commit e32ba2d

Please sign in to comment.