Score:1

Even-Mansour Cipher: อัลกอริธึมที่มีประสิทธิภาพสำหรับการสุ่มตัวอย่างการเรียงสับเปลี่ยน

ธง cn

ความเข้าใจของฉันเกี่ยวกับการเข้ารหัส Even-Mansour มีดังต่อไปนี้:

  • เราวาดการเปลี่ยนแปลงแบบสุ่ม $พี$ จากเซตของการเรียงสับเปลี่ยนทั้งหมด $P: \{0,1\}^n \ลูกศรขวา \{0,1\}^n$. การเปลี่ยนแปลงนี้เป็นแบบสาธารณะ
  • เราสร้างคีย์สุ่มสองคีย์ $k_1, k_2 \ใน \{0,1\}^n$.
  • เพื่อเข้ารหัสข้อความ $m \in \{0,1\}^n$เราคำนวณ $E_{k_1, k_2} = P(m \oบวก k_1) \oบวก k_2$.

มีอัลกอริทึมประเภทใดบ้างที่ช่วยให้เราสามารถสุ่มตัวอย่าง (และเป็นตัวแทน) การเรียงสับเปลี่ยนได้อย่างมีประสิทธิภาพ $พี$ จากเซตของการเรียงสับเปลี่ยนทั้งหมดจาก $n$ สตริงบิตถึง $n$ สตริงบิต?

Score:1
ธง sa

Even-Mansour เป็นแบบจำลองเชิงทฤษฎีเพื่อพิสูจน์ผลลัพธ์ด้านความปลอดภัย เราจะต้องสุ่มตัวอย่างการเรียงสับเปลี่ยนของ $n$ บิตพูดสำหรับ $n=128,$ เนื่องจากพื้นที่ผลลัพธ์ของ $N=2^n$ วัตถุจะมีขนาดใหญ่เกินไปที่จะเก็บหรือจัดการ สิ่งนี้คล้ายกับความจริงที่ว่าไม่มีใครใช้การแจกแจงแบบสุ่มอย่างหมดจดและ i.i.d. ลำดับของบิตเป็นคีย์สตรีมในโหมด OTP ในการเข้ารหัสสมัยใหม่ มันช้าเกินไป

อย่างไรก็ตาม อัลกอริทึมต่อไปนี้ให้การเปลี่ยนลำดับแบบสุ่ม $\{1,2,\ldots, N\}.$ ไม่มีการเรียกร้องประสิทธิภาพที่เหมาะสมที่สุดที่นี่

รหัสสำหรับการเรียงสับเปลี่ยนแบบสุ่มของรายการขนาดเล็ก

ป้อนข้อมูล: รายการ $A=[1,2,\ldots, N]$ ของ $N=2^n$ รายการ

งาน: เปลี่ยนค่าเป็น $A$ สุ่ม.

อนุญาต $S:=\{u: u \in A\}.$ อนุญาต $B:=A$

แต่ละ $i=1,\ldots,N$ ทำ

$\สี่เหลี่ยม$ เลือกจำนวนเต็มแบบสุ่ม $j \ใน S$

$\สี่เหลี่ยม$ เปลี่ยนอาร์เรย์ $B$ ทาง $B[j]:=A[i]$

$\สี่เหลี่ยม$ ลบ $เจ$ จากชุด $S$

จบสำหรับ อัลกอริทึมนี้เลือก $N,$ แล้ว $N-1$, แล้ว $N-2$ ฯลฯ วัตถุที่เหมือนกันและสามารถสร้างการเรียงสับเปลี่ยนแต่ละครั้งด้วยความน่าจะเป็นที่เท่ากัน เนื่องจากมันสร้าง $N\!$ ทางเลือก เอาท์พุต: รายการ $A$ ตอนนี้เป็นแบบสุ่ม

มีวิธีที่มีประสิทธิภาพมากขึ้นในการสุ่มตัวอย่างการเรียงสับเปลี่ยนแบบสุ่ม ดูตัวอย่าง Jens Gustedt, "Efficient sampling ofrandom permutations", วารสารอัลกอริทึมที่ไม่ต่อเนื่องฉบับ 6 ฉบับที่ 1 ปี 2549 ลองดู Fisher-Yates shuffle และ Knuth Shuffle ด้วย Google คือเพื่อนของคุณ

อัลกอริทึมด้านล่างยังไปไม่ถึง ขอบคุณ @kelalaka สำหรับการแก้ไข

ป้อนข้อมูล: รายการ $A=\{1,2,\ldots, N\}$ ของ $N=2^n$ รายการ

งาน: เปลี่ยนค่าเป็น $A$ สุ่ม.

แต่ละ $i=0,\ldots,N-1$ ทำ

$\สี่เหลี่ยม$ เลือกจำนวนเต็มแบบสุ่ม $เจ$ กับ $i<j<N.$

$\สี่เหลี่ยม$ สลับรายการ $เอ[i]$ และ $ก[ญ].$

จบสำหรับ

เอาท์พุต: รายการ $A$ ตอนนี้เป็นแบบสุ่ม

kelalaka avatar
in flag
ดังที่เราทราบจากขอบเขตการเรียงลำดับการเปรียบเทียบ เราต้องการประมาณ $n \log n$ swaps เพื่อเปลี่ยนอาร์เรย์ที่ไม่เรียงลำดับกลับเป็นอาร์เรย์ที่เรียงลำดับ $N$-swap ไม่เพียงพอที่จะสุ่มตัวอย่างการเรียงสับเปลี่ยนทั้งหมดใช่ไหม
pe flag
Fisher-Yates ส่งผลให้เกิดการเปลี่ยนแปลงแบบสุ่มอย่างสม่ำเสมอ พิจารณาจำนวนที่เป็นไปได้สำหรับ $A[0]$ จากนั้น $A[1]$ ฯลฯ: $N\cdot N-1 \cdot \dots \cdot 1$ ​​= $N!$

โพสต์คำตอบ

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