Симметричная криптография

Lời giải cho quyển sách [20] của Н.Н. Токарева.

Глава 3. Булевы функции. Комбинаторный подход

Bài 16. Chứng minh rằng, hàm Boolean \(f\) tuyến tính khi và chỉ khi \(f(\bm{x} \oplus \bm{y}) = f(\bm{x}) \oplus f(\bm{y})\) với mọi \(\bm{x}\), \(\bm{y}\). Tương tự kiểm tra hàm Boolean là affine khi và chỉ khi \(f(\bm{x} \oplus \bm{y}) = f(\bm{x}) \oplus f(\bm{y}) \oplus f(\bm{0})\).

Bài 17. Tìm số đỉnh và số cạnh của đồ thị \(E^n\). Có bao nhiêu vector \(\bm{x}, \bm{y} \in E^n\) sao cho \(d(\bm{x}, \bm{y}) = k\)?

Mỗi đỉnh của \(E^n\) biểu diễn một vector dạng

\[(z_1, \ldots, z_n), \quad z_i \in \{ 0, 1 \}\]

nên \(E^n\)\(2^n\) đỉnh. Mỗi đỉnh nối với \(n\) đỉnh khác (khác nhau chỉ ở vị trí \(z_i\)) nên \(\deg v_i = n\) với \(i = \overline{1, 2^n}\). Theo định lí cơ bản về số cạnh của đồ thị (Định lý 8) thì

\[\text{số cạnh} = \dfrac{1}{2} \sum_{i=1}^{2^n} \deg v_i = \dfrac{1}{2} \cdot n \cdot 2^n = n \cdot 2^{n-1}.\]

Để \(d(\bm{x}, \bm{y}) = k\) thì đầu tiên ta chọn \(k\) vị trí khác nhau với \(C_n^k\) cách. Với mỗi vị trí khác nhau ta có hai cách chọn \(x_i\)\(y_i\)

\[\begin{split}\begin{cases} x_i = 1 \\ y_i = 0 \end{cases}, \quad \text{hoặc} \ \begin{cases} x_i = 0 \\ y_i = 1 \end{cases}.\end{split}\]

Do đó có \(2^k\) cách chọn cho các vị trí khác nhau, còn \(n - k\) vị trí còn lại thì chọn tùy ý nên có \(2^{n-k}\) cách.

Đáp án là \(C_n^k \cdot 2^k \cdot 2^{n-k} = C_n^k \cdot 2^n\).

Bài 18. Tìm lực lượng của mặt cầu \(S_r(\bm{x}) = \{ \bm{y} : d(\bm{x}, \bm{y}) = r \}\)hình cầu \(B_r(\bm{x}) = \{ \bm{y} : d(\bm{x}, \bm{y}) \leqslant r \}\).

Đối với mặt cầu thì đáp án chính là bài 17, nghĩa là \(\lvert S_r(\bm{x}) \rvert = 2^r \cdot C_n^r\).

Đối với hình cầu \(B_r(\bm{x})\) ta xét tất cả giá trị từ \(0\) tới \(r\):

  • khi \(d(\bm{x}, \bm{y}) = 0\) thì có \(2^n \cdot C_n^0\) cách chọn;

  • khi \(d(\bm{x}, \bm{y}) = 1\) thì có \(2^n \cdot C_n^1\) cách chọn;

  • tương tự, khi \(d(\bm{x}, \bm{y}) = i\) thì có \(2^n \cdot C_n^i\) cách chọn;

  • cho tới khi \(d(\bm{x}, \bm{y}) = r\) thì có \(2^n \cdot C_n^r\) cách chọn.

Như vậy lực lượng của hình cầu là tổng tất cả giá trị trên:

\[\lvert B_r(\bm{x}) \rvert = 2^n \cdot (C_n^0 + C_n^1 + \cdots + C_n^r).\]