You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Additionally, add a P384-SHA512 profile. This is to provide a classical
profile whose measurement format is compatible with ML-DSA-87.
Signed-off-by: Jordan Hand <jhand@google.com>
Currently, the only supported optional variant is "MIN", which supports a smaller subset of the DPE commands.
108
115
109
116
The profile name will be embedded as ASCII within the version field of the TCBInfo(s), enabling a verifier to confirm that the evidence originates from this profile.
110
117
@@ -449,6 +456,13 @@ cryptographic algorithms:
449
456
* ECDSA P-384
450
457
* SHA2-384
451
458
459
+
Profile `DPE_PROFILE_IROT_MLDSA87_SHA384` requires support for the following
460
+
cryptographic algorithms:
461
+
462
+
* ML-DSA-87
463
+
* SHAKE256
464
+
* SHA2-384
465
+
452
466
453
467
This profile defines the following derivation schemes for use in Profile
454
468
Attributes.
@@ -485,6 +499,18 @@ The CDI derivation scheme “ocp.derive.kdf-cdi-384” is defined as follows:
485
499
* Outputs
486
500
* 48-byte key
487
501
502
+
### ocp.derive.kdf-cdi-512
503
+
504
+
The CDI derivation scheme “ocp.derive.kdf-cdi-512” is defined as follows:
505
+
506
+
* This derivation scheme SHALL use a cryptographically secure KDF or DRBG.
507
+
* Inputs
508
+
* CDI
509
+
* `MEASUREMENT_DATA`
510
+
* ASCII Bytes "DPE"
511
+
* Outputs
512
+
* 64-byte key
513
+
488
514
## CDI Export
489
515
490
516
### ocp.export-cdi.raw-256
@@ -499,6 +525,12 @@ The CDI export scheme "ocp.export-cdi.raw" is a raw 384-bit secret
499
525
500
526
To generate exported keypair, use asymmetric-derivation for the relevant profile.
501
527
528
+
### ocp.export-cdi.raw-512
529
+
530
+
The CDI export scheme "ocp.export-cdi.raw" is a raw 512-bit secret
531
+
532
+
To generate exported keypair, use asymmetric-derivation for the relevant profile.
533
+
502
534
## Key Derivation
503
535
504
536
* `LABEL`: LABEL parameter passed to Sign and CertifyKey
@@ -534,18 +566,31 @@ follows:
534
566
* Outputs
535
567
* 48-byte key
536
568
537
-
### ocp.key-format.p256.raw
569
+
### ocp.derive.kdf-asymmetric-mldsa87
538
570
539
-
The concatenation of the 32-byte X value and 32-byte Y value of the ECDSA public key.
571
+
The asymmetric key derivation scheme “ocp.derive.kdf-asymmetric-mldsa87” is defined as
572
+
follows:
540
573
541
-
Both the X and Y value SHALL be big-endian and left-padded with zeros.
574
+
* The asymmetric key type is ML-DSA-87
575
+
* Signature scheme is ML-DSA
576
+
* This derivation scheme SHALL use a cryptographically secure KDF or DRBG.
577
+
* Inputs
578
+
* CDI
579
+
* `LABEL`
580
+
* ASCII Bytes "MLDSA"
581
+
* Outputs
582
+
* 64-byte key
542
583
543
584
### ocp.key-format.p384.raw
544
585
545
586
The concatenation of the 48-byte X value and 48-byte Y value of the ECDSA public key.
546
587
547
588
Both the X and Y value SHALL be big-endian and left-padded with zeros.
548
589
590
+
### ocp.key-format.mldsa87.raw
591
+
592
+
A raw ML-DSA-87 key, encoded as using the pkEncode function in FIPS 204
593
+
549
594
## Sign Format
550
595
551
596
### ocp.tbs-format.digest-sha256
@@ -564,6 +609,15 @@ The format “ocp.tbs-format.digest-sha384” is defined as
564
609
additional processing. The size of the value SHALL be a SHA2-384 digest of
565
610
size 48 bytes.
566
611
612
+
### ocp.tbs-format.mldsa87-external-mu
613
+
614
+
The format “ocp.tbs-format.mldsa87-external-mu” is defined as
615
+
616
+
The mu parameter as described in FIPS 204.
617
+
618
+
* tr = SHAKE256(public_key, 64)
619
+
* mu = SHAKE256(tr || message, 64)
620
+
567
621
### ocp.signature-format.p256.raw
568
622
569
623
The concatenation of the 32-byte R value and 32-byte S value of the ECDSA signature.
@@ -576,6 +630,10 @@ The concatenation of the 48-byte R value and 48-byte S value of the ECDSA signat
576
630
577
631
Both the R and S value SHALL be big-endian and left-padded with zeros.
578
632
633
+
### ocp.signature-format.mldsa87.raw
634
+
635
+
TODO
636
+
579
637
## Recursive Derivation
580
638
581
639
### ocp.recursive-derivation.extend-tci
@@ -745,7 +803,7 @@ following requirements:
745
803
* version: The version of the CSR specification - the version SHALL be 0
746
804
* subject: The subject name of the CSR
747
805
* subjectPKInfo: This field SHALL contain the subject public key and the
748
-
OID for the EC public key algorithm used by the DPE profile
806
+
OID for the public key algorithm used by the DPE profile
749
807
* attributes: An "Extension Request" attribute as defined in RFC 2985
750
808
[@{ietf-rfc2985}] SHALL adhere to the following requirements
751
809
* The BasicConstraints extension SHALL be included
@@ -788,6 +846,16 @@ The format “ocp.certificate.irot-eca.p384” is defined as follows:
788
846
* For the Signature field, DPE SHALL use the ECDSA-with-SHA384 OID with NIST curve
789
847
P-384.
790
848
849
+
### ocp.certificate.irot-eca.mldsa87
850
+
851
+
The format “ocp.certificate.irot-eca.mldsa87” is defined as follows:
852
+
853
+
* SHALL follow all "Requirements for ECA Certificates" in @sec:eca-cert-requirements
854
+
* For FWID hashAlg fields provided by DeriveContext, DPE SHALL use the
855
+
SHA2-512 OID.
856
+
* For the SubjectPublicKeyInfo field, DPE SHALL use the ML-DSA-87 OID.
857
+
* For the Signature field, DPE SHALL use the ML-DSA-87 OID.
858
+
791
859
### ocp.certificate.irot-leaf.p256
792
860
793
861
The format ocp.certificate.irot-leaf.p256” is defined as follows:
@@ -812,6 +880,16 @@ The format “ocp.certificate.irot.p384” is defined as follows:
812
880
* For the Signature field, DPE SHALL use the ECDSA-with-SHA384 OID with NIST curve
813
881
P-384.
814
882
883
+
### ocp.certificate.irot-leaf.mldsa87
884
+
885
+
The format “ocp.certificate.irot-eca.mldsa87” is defined as follows:
886
+
887
+
* SHALL follow all "Requirements for ECA Certificates" in @sec:eca-cert-requirements
888
+
* For FWID hashAlg fields provided by DeriveContext, DPE SHALL use the
889
+
SHA2-512 OID.
890
+
* For the SubjectPublicKeyInfo field, DPE SHALL use the ML-DSA-87 OID.
891
+
* For the Signature field, DPE SHALL use the ML-DSA-87 OID.
892
+
815
893
### ocp.csr.irot-leaf.p256
816
894
817
895
The format “ocp.csr.irot-leaf.p256” is defined as follows:
@@ -836,6 +914,17 @@ The format “ocp.csr.irot-leaf.p384” is defined as follows:
836
914
* For the Signature of both the CMS message and the CertificationRequest, DPE SHALL
837
915
use the ECDSA-with-SHA384 OID with NIST curve P-384.
838
916
917
+
### ocp.csr.irot-leaf.mldsa87
918
+
919
+
The format “ocp.csr.irot-eca.mldsa87” is defined as follows:
920
+
921
+
* SHALL follow all "Requirements for CSRs" in @sec:csr-requirements
922
+
* For FWID hashAlg fields provided by DeriveContext, DPE SHALL use the
923
+
SHA2-512 OID.
924
+
* For the SubjectPublicKeyInfo field, DPE SHALL use the ML-DSA-87 OID.
925
+
* For the Signature of both the CMS message and the CertificationRequest, DPE SHALL
926
+
use the ML-DSA-87 OID.
927
+
839
928
## Profile Attributes
840
929
841
930
### ocp.profile.irot.p256
@@ -1180,6 +1269,46 @@ The format “ocp.csr.irot-leaf.p384” is defined as follows:
0 commit comments