Skip to content

Commit bebabfd

Browse files
committed
update perspective
Signed-off-by: Basil Hess <bhe@zurich.ibm.com>
1 parent 68d3377 commit bebabfd

1 file changed

Lines changed: 8 additions & 8 deletions

File tree

perspectives/pqc-readiness-perspective.json

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
{
1111
"bom-ref": "perspective-pqc-readiness",
1212
"name": "PQC Readiness",
13-
"description": "Defines the data elements needed to assess a product's readiness for the post-quantum migration, and the structural assertions that determine readiness. Organized along three dimensions inspired by the PQCA readiness-tracking working group: inventory (is the cryptography recorded and classifiable), algorithm (is the cryptography in use quantum-resistant, split into a confidentiality/HNDL facet and an authentication facet), and agility (can vulnerable cryptography be replaced without code changes). Mappings carrying an 'expectation' are hard checks; mappings without one are descriptive and feed a graded readiness score. This perspective assumes the 'expectation' field on perspective mappings (see perspective-expectation-rationale.md).",
13+
"description": "Defines the data elements needed to assess a product's readiness for the post-quantum migration, and the structural assertions that determine readiness. Organized along three dimensions inspired by the PQCA readiness-tracking working group: inventory (is the cryptography recorded and classifiable), algorithm (is the cryptography in use quantum-resistant, split into a confidentiality/HNDL facet and an authentication facet), and agility (can vulnerable cryptography be replaced without code changes). Mappings carrying an 'expectation' are hard checks; mappings without one are descriptive and feed a graded readiness score. This perspective assumes two proposed extensions: an 'expectation' field on perspective mappings, and the component-level 'agility' properties proposed in CycloneDX/specification#947, which the agility mappings reference.",
1414
"domains": [
1515
"cryptographic-security",
1616
{
@@ -29,13 +29,13 @@
2929
"rationale": "Inventory dimension. PQC readiness cannot be assessed unless the cryptography in use is inventoried."
3030
},
3131
{
32-
"expression": "$.components[?(@.cryptoProperties.assetType=='algorithm' && !@.cryptoProperties.algorithmProperties.primitive)]",
32+
"expression": "$.components[?(@.cryptoProperties.assetType=='algorithm' && (!@.cryptoProperties.algorithmProperties.primitive || @.cryptoProperties.algorithmProperties.primitive=='unknown'))]",
3333
"nativeName": "Unclassified algorithm",
34-
"nativeDescription": "An algorithm asset that does not declare its primitive.",
34+
"nativeDescription": "An algorithm asset that does not declare its primitive or declares it as unknown.",
3535
"relevance": "required",
3636
"expectation": "absent",
3737
"weight": 0.8,
38-
"rationale": "Inventory dimension. Every algorithm must declare its primitive so the confidentiality and authentication facets can be evaluated."
38+
"rationale": "Inventory dimension. Every algorithm must declare a known primitive so the confidentiality and authentication facets can be evaluated."
3939
},
4040
{
4141
"expression": "$.components[?((@.cryptoProperties.algorithmProperties.primitive=='kem' || @.cryptoProperties.algorithmProperties.primitive=='key-agree' || @.cryptoProperties.algorithmProperties.primitive=='pke' || @.cryptoProperties.algorithmProperties.primitive=='signature') && !@.cryptoProperties.algorithmProperties.nistQuantumSecurityLevel)]",
@@ -81,20 +81,20 @@
8181
"rationale": "Protocol dimension. A protocol's readiness follows from the cipher suites and key exchange it negotiates."
8282
},
8383
{
84-
"expression": "$..cryptoProperties.agility",
84+
"expression": "$.components[?(@.type=='cryptographic-asset')].agility",
8585
"nativeName": "Cryptographic agility",
8686
"nativeDescription": "How an asset's cryptographic configuration was determined and how a change to it can be applied.",
8787
"relevance": "recommended",
8888
"weight": 0.5,
8989
"rationale": "Agility dimension. Informs migration effort, not the readiness verdict."
9090
},
9191
{
92-
"expression": "$..cryptoProperties.agility.changeMechanism",
92+
"expression": "$.components[?(@.type=='cryptographic-asset')].agility.changeMechanism",
9393
"nativeName": "Change mechanism",
94-
"nativeDescription": "How a change to the cryptographic configuration is applied.",
94+
"nativeDescription": "The step or steps required to apply a change to the cryptographic configuration.",
9595
"relevance": "recommended",
9696
"weight": 0.4,
97-
"rationale": "Agility dimension. A value of runtime-config or restart-required indicates low-effort migration, while firmware-update or hardware-replacement indicates higher effort."
97+
"rationale": "Agility dimension. All listed steps are required, so the most disruptive step in the set gives a rough indication of migration effort: a set containing only runtime-config typically suggests low-effort migration, while sets including firmware-update or hardware-replacement tend to involve more effort; not-possible indicates no agility."
9898
},
9999
{
100100
"expression": "$.components[?(@.cryptoProperties.assetType=='related-crypto-material')].cryptoProperties.relatedCryptoMaterialProperties.rotation",

0 commit comments

Comments
 (0)