728x90

Single-length Key KCV

The single-length key check value is a one-way cryptographic function of a key, used to verify that the key has been entered correctly.

The KCV is calculated by taking an input of constant D (64 Zero bits) and encrypting it with key K (64 bit). The 64 bit output is truncated to the most significant 24 bits which is reported as the keys KCV (Single-length Key Check Value KCV(K).).

Figure 1: Single-length Key Check Value KCV(K).

Double-length Key KCV

The double-length key check value is a one-way cryptographic function of a key, used to verify that the key has been correctly entered.

The KCV is calculated by taking an input of constant D (64 Zero bits) and key *K (128 bit string made up of two 64 bit values KL and KR ). Data value D is encrypted with KL as the key.  The result is decrypted with KR as the key. The result is then encrypted with KL as the key. The 64 bit output is truncated to the most significant 24 bits which is reported as the double-length keys *KCV (Double-length Key Check Value *KCV(*K)).

Figure 2: Double-length Key Check Value *KCV(*K)

'Cryptography' 카테고리의 다른 글

Configuring the HSM to Operate in FIPS Mode  (0) 2024.04.05
HOTP and TOTP  (31) 2024.03.21
The group Zp*  (31) 2024.03.11
Padding oracles and the decline of CBC-mode cipher suites  (117) 2024.03.08
CBC-bit Flipping  (56) 2024.03.08
728x90

Luna HSMs have many capabilities that are not certified by NIST. To be FIPS-compliant, the HSM must be set to FIPS mode, where any mechanisms or cryptographic operations that are not FIPS-certified are blocked from use. FIPS mode is set using HSM or partition policies as described below.

 

Setting FIPS Mode on the HSM

You can set the HSM to FIPS mode using HSM policy 12: Allow non-FIPS algorithms. When this policy is set to 0, algorithms that are not FIPS-validated are blocked from use on every partition on the HSM, and the HSM is operating in FIPS mode. There are two methods of setting this policy:

>The HSM SO can use a policy template to set the policy at initialization (see Setting HSM Policies Using a Template). This method is recommended for auditing purposes -- it ensures that the HSM is in FIPS mode for its entire use cycle.

>The HSM SO can set the policy manually after initializing the HSM (see Setting HSM Policies Manually).

'Cryptography' 카테고리의 다른 글

KMU Key Check Value (KCV) Calculation  (0) 2024.09.11
HOTP and TOTP  (31) 2024.03.21
The group Zp*  (31) 2024.03.11
Padding oracles and the decline of CBC-mode cipher suites  (117) 2024.03.08
CBC-bit Flipping  (56) 2024.03.08
728x90

https://ldap.or.kr/1373-2/

'Cryptography' 카테고리의 다른 글

KMU Key Check Value (KCV) Calculation  (0) 2024.09.11
Configuring the HSM to Operate in FIPS Mode  (0) 2024.04.05
The group Zp*  (31) 2024.03.11
Padding oracles and the decline of CBC-mode cipher suites  (117) 2024.03.08
CBC-bit Flipping  (56) 2024.03.08
728x90

 

The group Zp*

Cryptosystems using arithmetic in Zp* include the Diffie-Hellman Key Agreement Protocol and the Digital Signature Algorithm (DSA).
The multiplicative group Zp* uses only the integers between 1 and p - 1 (p is a prime number), and its basic operation is multiplication. Multiplication ends by taking the remainder on division by p; this ensures closure. The multiplicative group Z11* uses the integers from 1 to 10. Multiplication in Z11* finishes by taking the remainder when the result is divided by 11. Here are some examples of multiplication in Z11*:
4 7 mod 11
= 28 mod 11
= 6

9 5 mod 11
= 45 mod 11
= 1.

Thus in Z11*, 4 7 = 6 and 9 5 = 1. Notice that both the calculations shown have answers between 1 and 10.

Multiplicative Inverses

Each number x in a multiplicative group has a multiplicative inverse element in the group; that is an integer x-1 such that x x-1 = 1 in the group. In Z11*, 9-1 = 5 since 9 5 mod 11 = 1.
In a multiplicative group, each element must have a multiplicative inverse. Consider the integers modulo the (composite) number 15. It is possible to define multiplication on the numbers from 1 to 14, always finishing with reduction modulo 15. With this system, the number 6 has no inverse, since there is no number y such that 6 y mod 15 = 1:
  6 0 mod 15 = 0   6 1 mod 15 = 6   6 2 mod 15 = 12   6 3 mod 15 = 3   6 4 mod 15 = 9
  6 5 mod 15 = 0   6 6 mod 15 = 6   6 7 mod 15 = 12   6 8 mod 15 = 3   6 9 mod 15 = 9
  6 10 mod 15 = 0   6 11 mod 15 = 6   6 12 mod 15 = 12   6 13 mod 15 = 3   6 14 mod 15 = 9.
   
  The reason for this is that gcd(6,15) = 3 > 1; a number x has a multiplicative inverse in Zn* only if gcd(x,n) = 1. Only when n is a prime number p will all elements in Zn* have a multiplicative inverse. Thus Zp* is a group only when p is a prime number.

Other operations

While multiplication is the main operation in the multiplicative group Zp*, other operations can be derived from multiplication. For example, the division x / y can be performed as the multiplication x (y-1) mod p. In Z11*, 7 / 9 = 7 9-1 = 7 5 mod 11 = 35 mod 11 = 2.
It is also possible to define exponentiation in Zp* as repeated multiplication. For example, the exponentiation 73 in Z11 can be achieved by multiplying 7 7 7 mod 11 = 343 mod 11 = 2.

'Cryptography' 카테고리의 다른 글

Configuring the HSM to Operate in FIPS Mode  (0) 2024.04.05
HOTP and TOTP  (31) 2024.03.21
Padding oracles and the decline of CBC-mode cipher suites  (117) 2024.03.08
CBC-bit Flipping  (56) 2024.03.08
AES Cipher  (0) 2024.03.07

+ Recent posts