Hill algorithm

### Program Information

Name: Hill algorithm
Domain: Algorithm
Functionality: It encrypts a plaintext, which is usually a sequence of m letters, into a ciphertext that has the same size as the plaintext.
Input: The input is defined as a tuple $\langle P,K \rangle$,where $P$ and $K$ refer to a plaintext and a $key$ matrix, respectively. The source test case is denoted as $(P,K)$,the follow-up test case is denoted $(P',K')$.
Output: The outputs are defined as $C_h$ and $C_h'$ correspondingto the ciphertext.

#### Reference

A property-based testing framework for encryption programs https://doi.org/10.1007/s11704-014-3040-y

### MR Information

#### MR1------

Description:
Property: $K'(n)=K(m),K'(m)=K(n)(K(n) \leftrightarrow K(m) \wedge (m!=n)) \Rightarrow C'_h(n)=C_h(m),C'_h(m)=C_h(n)$
Source input: $(P,K)$
Source output: $C_h$
Follow-up input: $(P',K')$
Follow-up output: $C'_h$
Input relation: $K'(n)=K(m),K'(m)=K(n)(K(n) \leftrightarrow K(m) \wedge (m!=n))$
Output relation: $C'_h(n)=C_h(m),C'_h(m)=C_h(n)$
Pattern:

#### MR2------

Description:
Property: ($K$ is an identity matrix) $P'(n)=P(m),P'(m)=P(n) \Rightarrow C'_h(n)=C_h(m),C'_h(m)=C_h(n)$
Source input: $(P,K)$
Source output: $C_h$
Follow-up input: $(P',K')$
Follow-up output: $C'_h$
Input relation: ($K$ is an identity matrix) $P'(n)=P(m),P'(m)=P(n)$
Output relation: $C'_h(n)=C_h(m),C'_h(m)=C_h(n)$
Pattern:

#### MR3------

Description:
Property: $P'=P=AAAA",K'=n*K$ (here $n=2$ and $A$ is mapped to 0) $\Rightarrow C'_h=C_h=AAAA"$
Source input:  $(P,K)$
Source output: $C_h$
Follow-up input: $(P',K')$
Follow-up output: $C'_h$
Input relation: $P'=P=AAAA",K'=n*K$ (here $n=2$ and $A$ is mapped to 0)
Output relation: $C'_h=C_h=AAAA"$
Pattern:
Insert title here