Score:1

คำจำกัดความอย่างเป็นทางการของรหัสแทนตัวอักษรแบบโมโน

ธง cn

ฉันกำลังพยายามเขียนคำจำกัดความที่เป็นทางการสำหรับรหัสแทนตัวอักษรแบบโมโน ฉันได้ลองต่อไปนี้


$\mathcal{M}:=$ ชุดของสตริงความยาวตามอำเภอใจของข้อความภาษาอังกฤษ ลบเครื่องหมายวรรคตอน ตัวเลข ช่องว่างทั้งหมดในสตริง

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

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

อนุญาต $m=m_1m_2\cdots m_l \in \mathcal{M}$ แล้ว

$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)$


คำถามของฉันคือวิธีกำหนดอัลกอริทึมการสร้างคีย์ $เจน$?

kelalaka avatar
in flag
เลือกคีย์สุ่มจาก $\mathcal{K}$? และ $c_i=k(m_i)$ ไม่ชัดเจนสำหรับรหัสแทน ควรเป็น $c_i = (m_i + k) \bmod 26$ นอกจากนี้ การเข้ารหัสและถอดรหัสข้อความยังเป็นส่วนที่สำคัญ $A=0, B=1,...$
Saikat avatar
cn flag
ใช่ ไม่เป็นไร แต่มีอัลกอริทึมสำหรับสิ่งนี้หรือไม่?
kelalaka avatar
in flag
ภาษาเฉพาะ ใช่ อัลกอริทึมที่บอกว่า `เลือกองค์ประกอบจากแบบสม่ำเสมอ' ก็น่าจะเพียงพอแล้ว
ph flag
@kelalaka มันไม่ใช่การเพิ่ม mod 26 คุณกำลังนึกถึงรหัสซีซาร์
ph flag
แต่ฉันยอมรับว่าการสร้างคีย์ไม่จำเป็นต้องเป็นส่วนหนึ่งของอัลกอริทึม
kelalaka avatar
in flag
@ bmm6o นี่คือรหัสแทนซึ่งรหัสซีซาร์เป็นส่วนหนึ่งของมัน มันมีเพียง 26 ของการเรียงสับเปลี่ยนรหัสของ 26! กุญแจ
Score:1
ธง tl

ประการแรก การเข้ารหัสตัวอักษรเดี่ยวอาจเป็นแนวคิดของการแทนที่ตัวอักษรเดี่ยวหรือการเข้ารหัสโดยใช้เทคนิคนี้เท่านั้น นั่นหมายความว่า Ceaser เป็นการแทนที่ด้วยตัวอักษรเดี่ยว เพราะมันใช้แนวคิดนี้ ความแตกต่างของการแทนที่ตัวอักษรเดี่ยว "จริง" คือการสร้างคีย์ไม่ได้สุ่มอย่างสมบูรณ์

ส่วนตัวฉันจะไม่กำหนด $\mathcal{M}, \mathcal{C}, \mathcal{K}$ แบบที่คุณทำเพราะฉันคิดว่ายังไม่ชัดเจนพอ คำจำกัดความทางคณิตศาสตร์อาจดีกว่า:

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

ฉันยังต้องการหลีกเลี่ยง $\mathcal{M} = \mathcal{C}$ เพราะอาจถูกต้องตามหลักคณิตศาสตร์ แต่อาจส่อให้ผู้อ่านเข้าใจผิดได้ ฉันเลือก $\{ a,b,c,...,z\}^*$เพราะโดยปกติพื้นที่ข้อความคือ $\{0,1\}^*$ และฉันก็ปรับให้เข้ากับบริบทที่กำหนด

ตอนนี้ฉันคิดว่าคุณไม่สามารถกำหนดได้ $\mathcal{K} = S_{26}$. คืออะไร $S$? ฉันจะกำหนด $\mathcal{K} = \{f_k\mid k \in \{a,...,z\}\}$, ที่ไหน $f_k$ เป็นฟังก์ชันการแทนที่แบบ bijective

การเข้ารหัสและถอดรหัสดูดี ฉันจะทำอย่างนั้นสำหรับข้อความ $m = m_1, ... m_n \in \mathcal{M}$:

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

Generation สามารถกำหนดเป็น:

  • $เจน$: เลือกการแทนที่แบบสุ่ม $f_k$ สำหรับทุกๆ $k \in \{a,...,z\}$, ดังนั้น $f^{-1}_k$ เป็นฟังก์ชันผกผันแบบสองนัย

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา