MCPcopy Create free account
hub / github.com/TheAlgorithms/Python / make_decrypt_key

Method make_decrypt_key

ciphers/hill_cipher.py:145–166  ·  view source on GitHub ↗

>>> hill_cipher = HillCipher(np.array([[2, 5], [1, 6]])) >>> hill_cipher.make_decrypt_key() array([[ 6, 25], [ 5, 26]])

(self)

Source from the content-addressed store, hash-verified

143 return encrypted
144
145 def make_decrypt_key(self) -> np.ndarray:
146 """
147 >>> hill_cipher = HillCipher(np.array([[2, 5], [1, 6]]))
148 >>> hill_cipher.make_decrypt_key()
149 array([[ 6, 25],
150 [ 5, 26]])
151 """
152 det = round(np.linalg.det(self.encrypt_key))
153
154 if det < 0:
155 det = det % len(self.key_string)
156 det_inv = None
157 for i in range(len(self.key_string)):
158 if (det * i) % len(self.key_string) == 1:
159 det_inv = i
160 break
161
162 inv_key = (
163 det_inv * np.linalg.det(self.encrypt_key) * np.linalg.inv(self.encrypt_key)
164 )
165
166 return self.to_int(self.modulus(inv_key))
167
168 def decrypt(self, text: str) -> str:
169 """

Callers 1

decryptMethod · 0.95

Calls

no outgoing calls

Tested by

no test coverage detected