Score:1

ตัวกำหนดตารางเวลาคีย์ Rivest Cipher 6 (RC6)

ธง us

ฉันกำลังพยายามทำความเข้าใจเกี่ยวกับ Key Scheduler ที่ใช้ใน RC6 และฉันมีคำถามทั้งหมด 3 ข้อ เดอะ RC6 หน้าวิกิพีเดีย บอกว่าความแตกต่างเพียงอย่างเดียวระหว่าง RC5 และตัวกำหนดตารางเวลาคีย์ RC6 คือมีการสร้างคำเพิ่มเติมจากคีย์ใน RC6 ในแอปพลิเคชันของฉัน ฉันใช้ w=32bits, r=20rounds และ b=16bytes

คำถามแรกของฉันคือสิ่งเหล่านี้เป็นสองวงแยกกันสำหรับลูปหรืออันที่สองสำหรับลูปที่วนซ้ำจาก s-1 ถึง v ภายในอันแรกสำหรับลูปที่วนซ้ำตั้งแต่ 1 ถึง 2r+3 คำถามที่สองของฉันคือเหตุใดเราจึงตั้งค่า A=B=i=j=0 และคำสั่งนี้และ v=3xmax{c,2r+4} ภายในคำสั่งแรกสำหรับลูปหรือไม่

กระดาษ RC6 ยังให้รหัสหลอกนี้:


อินพุต: คีย์ b ไบต์ที่ผู้ใช้ระบุโหลดไว้ล่วงหน้าในอาร์เรย์ c-word L[0... c - 1]

จำนวน r ของรอบ

เอาท์พุต: w-bit แป้นกลม S[0... 2r + 3]

ขั้นตอน: S[0] = Pw

สำหรับ i = 1 ถึง 2r + 3 ทำ:
S[i] = S[i - 1] + Qw
A = B = i = j = 0
v = 3 x สูงสุด{c,2r+4}

สำหรับ s = 1 ถึง v ทำ:
{
A = S[i] = (S[i] + A + B)<<<3
B = L[j] = (L[j] + A + B)<<<(A + B)
ผม = (i + 1)สมัย(2r + 4)
j = (j + 1)modc
}

คำถามที่สามของฉันคือวิธีโหลดเวิร์ดอาร์เรย์ L ด้วยคีย์ 16 ไบต์ของฉันล่วงหน้า กระดาษ RC5 พูดว่า:

ขั้นตอนอัลกอริทึมแรกของการขยายคีย์คือการคัดลอกคีย์ลับ K[0...b-1] ลงในอาร์เรย์ L[0...c-1] ของคำ c=b/u โดยที่ u= w/8 คือ จำนวนไบต์/คำ การดำเนินการนี้ทำในลักษณะที่เป็นธรรมชาติโดยใช้ u คีย์ไบต์ที่ต่อเนื่องกันของ K เพื่อเติมแต่ละคำที่ต่อเนื่องกันใน L ไบต์ลำดับต่ำเป็นไบต์ลำดับสูง ตำแหน่งไบต์ที่ไม่ได้เติมใดๆ ของ L จะเป็นศูนย์

และรหัสหลอกสำหรับการดำเนินการนี้คือ:

สำหรับ i=b-1 ลงไปที่ 0 ทำ:
    L[i/u] = (L[i/u]<<<8)+K[i];

เพื่ออธิบายรายละเอียดเกี่ยวกับคำถามที่สาม ถ้าฉันเปลี่ยนจาก 15 เป็น 0 และคุณ = 32/8=4 ฉันจะใช้ทศนิยมเพื่อจัดทำดัชนี L ได้อย่างไร ตัวอย่างเช่น เมื่อฉันอายุ 15 ปี เรามี L[15/4]=(L[15/4]<<<8 + K[i]);

Score:2
ธง ru
  1. ลูปไม่ปะติดปะต่อ กล่าวอีกนัยหนึ่ง การวนรอบแรกเสร็จสิ้น จากนั้นการวนซ้ำที่สองจะเริ่มขึ้น

  2. A=B=i=j=0 มีการกำหนดค่าเริ่มต้นเป็นศูนย์อย่างชัดเจน เนื่องจากในหลายภาษาที่ไม่สามารถระบุค่าเริ่มต้นได้อาจนำไปสู่พฤติกรรมที่ไม่ระบุ (เช่น การตั้งค่าตัวแปรเป็นค่าสุ่มที่อยู่ในหน่วยความจำเก่า)การเริ่มต้นนี้และการเริ่มต้นของ v เกิดขึ้นนอกลูป

  3. นิพจน์ i/u ควรถูกตีความเป็นเลขคณิตจำนวนเต็มคล้าย C ที่ส่งกลับค่าจำนวนเต็ม (ในกรณีนี้โดยการหาค่าพื้น) ดังนั้นในตัวอย่างของคุณ L[15/4]=L[3]

โพสต์คำตอบ

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