Điểm:1

Định nghĩa chính thức của mật mã thay thế đơn chữ cái

lá cờ cn

Tôi đang cố gắng viết định nghĩa chính thức cho Mật mã thay thế đơn chữ cái. Tôi đã thử như sau


$\mathcal{M}:=$ Tập hợp tất cả các chuỗi văn bản tiếng Anh có độ dài tùy ý có thể, loại bỏ tất cả các dấu chấm câu, chữ số, khoảng trắng trong một chuỗi.

$\mathcal{C}=\mathcal{M}$

$\mathcal{K}:=S_{26}$

Để cho $m=m_1m_2\cdots m_l \in \mathcal{M}$ sau đó

$Enc_{k}(m):=k(m_1)k(m_2)\cdots k(m_l)=c=c_1c_2\cdots c_l \ \ \text{where} \ \ c_i=k(m_i)$

&

$Dec_k(c):=k^{-1}(c_1)k^{-1}(c_2)\cdots k^{-1}(c_l)$


Câu hỏi của tôi là cách xác định thuật toán tạo khóa $Gen$?

kelalaka avatar
lá cờ in
Chọn một khóa ngẫu nhiên từ $\mathcal{K}$? Và, $c_i=k(m_i)$ không rõ ràng đối với mật mã thay thế. Phải là $c_i = (m_i + k) \bmod 26$. Ngoài ra mã hóa và giải mã thông điệp là một phần không thể thiếu $A=0, B=1,...$
Saikat avatar
lá cờ cn
Vâng, điều này là ổn. Nhưng có thuật toán nào cho việc này không?
kelalaka avatar
lá cờ in
có dành riêng cho ngôn ngữ, thuật toán nói `chọn một phần tử từ` một cách thống nhất` là đủ.
lá cờ ph
@kelalaka không phải là bổ sung mod 26, bạn đang nghĩ về mật mã Caesar.
lá cờ ph
Nhưng tôi đồng ý rằng việc tạo khóa không cần phải là một phần của thuật toán.
kelalaka avatar
lá cờ in
@ bmm6o đây là mật mã thay thế trong đó mật mã Caesar là một phần của nó. Nó chỉ chứa 26 trong số 26 của mật mã hoán vị! phím.
Điểm:1
lá cờ tl

Trước hết, mật mã thay thế một bảng chữ cái có thể là khái niệm thay thế một bảng chữ cái hoặc mã hóa chỉ sử dụng kỹ thuật này. Điều đó có nghĩa là, Ceaser là sự thay thế một bảng chữ cái, bởi vì nó sử dụng khái niệm này. Sự khác biệt đối với sự thay thế một bảng chữ cái "thực" là việc tạo khóa không hoàn toàn ngẫu nhiên.

Cá nhân tôi sẽ không định nghĩa $\mathcal{M}, \mathcal{C}, \mathcal{K}$ theo cách bạn đã làm, bởi vì tôi nghĩ rằng nó không đủ rõ ràng. Một định nghĩa toán học hơn có thể tốt hơn:

  • $\mathcal{M} = \{ a,b,c,...,z\}^*$$\mathcal{C} = \{ a,b,c,...,z\}^*$

Tôi cũng muốn tránh $\mathcal{M} = \mathcal{C}$ bởi vì nó có thể đúng về mặt toán học, nhưng có thể gây hiểu lầm cho người đọc. Tôi chọn $\{ a,b,c,...,z\}^*$, bởi vì thông thường không gian tin nhắn là $\{0,1\}^*$ và tôi đã điều chỉnh điều đó cho phù hợp với bối cảnh nhất định.

Bây giờ tôi nghĩ bạn không thể định nghĩa $\mathcal{K} = S_{26}$. Là gì $S$? tôi sẽ xác định $\mathcal{K} = \{f_k\mid k \in \{a,...,z\}\}$, ở đâu $f_k$ là một chức năng thay thế bijective.

Mã hóa và giải mã có vẻ tốt. Tôi sẽ làm như thế cho một tin nhắn $m = m_1, ... m_n \in \mathcal{M}$:

  • $Enc_k(m)$: $c_i = f_{m_i}(m_i)\forall i \in \{1,...,n\}$
  • $Dec_k(c)$: $m_i = f^{-1}_{c_i}(c_i) \forall i \in \{1,...,n\}$

Thế hệ sau đó có thể được định nghĩa là:

  • $Gen$: Chọn một sự thay thế ngẫu nhiên $f_k$ Cho mọi $k \in \{a,...,z\}$, để có thể $f^{-1}_k$ là hàm nghịch đảo song ánh

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.