Score:0

วิธีสร้างคีย์จาก 56 บิตโดยใช้ DES

ธง ru

ก่อนอื่นฉันแค่ต้องการขอโทษที่ฉันขาดความรู้ในระบบนี้

อาจารย์ให้แบบฝึกหัดแก้โจทย์ปัญหาก่อนที่จะเข้าเรียน ฉันเบื่อที่จะดูวิดีโอออนไลน์ แต่ฉันรู้วิธีใช้คีย์เริ่มต้น 64 บิตเท่านั้น

คีย์เลขฐานสิบหก 56 บิตเริ่มต้น: 'B092EBA02E3798' ให้รหัส K16 (ในเทิร์นสุดท้าย) เป็น 64 บิตในเลขฐานสิบหก

ดังนั้นคำถามของฉันคือฉันต้องเปลี่ยน 56 บิตเป็น 64 บิตก่อนทำการเปลี่ยนลำดับเริ่มต้นหรือไม่ และถ้าใช่ฉันจะทำอย่างไร ขอขอบคุณสำหรับความช่วยเหลือของคุณ.

kelalaka avatar
in flag
ยินดีต้อนรับสู่ Cryptography.SE. วิกิพีเดียเป็นก้าวแรก!. เรามี Q/A สำหรับเรื่องนี้ อย่างไรก็ตาม โปรดดูที่ [Wiki:DES](https://en.wikipedia.org/wiki/Data_Encryption_Standard#Description) คีย์ประกอบด้วย 64 บิตอย่างเห็นได้ชัด อย่างไรก็ตามมีเพียง 56 รายการเท่านั้นที่ใช้โดยอัลกอริทึม แปดบิตใช้สำหรับตรวจสอบพาริตีเท่านั้น และหลังจากนั้นจะถูกละทิ้ง ดังนั้นความยาวของคีย์ที่มีประสิทธิภาพคือ 56 บิต
kelalaka avatar
in flag
สิ่งนี้ตอบคำถามของคุณหรือไม่ [พาริตีบิต DES](https://crypto.stackexchange.com/questions/70736/des-parity-bits)
Score:3
ธง in

คีย์ DES ถูกกำหนดให้เป็น 64 บิต 56 รายการเป็นคีย์จริงและ 8 รายการเป็นแพริตีบิต สิ่งนี้ทำให้พอดีกับ 8 ไบต์

K16 น่าจะหมายถึงคีย์ย่อยสุดท้ายตามกำหนดการคีย์ แต่ละคีย์ย่อยของ DES มีความยาว 48 บิต ป้อนคำอธิบายรูปภาพที่นี่

การเข้ารหัสคีย์ 56 บิตใน 64 บิตทำได้โดยการเพิ่มพาริตีบิตให้กับแต่ละไบต์ 7 บิต อย่างไรก็ตาม ฉันทราบว่าไม่มีวิธีมาตรฐานในการแสดงคีย์ย่อย 48 บิตเป็น 64 บิต

Hakim Cheheb avatar
ru flag
ขอบคุณมากสำหรับความช่วยเหลือของคุณ ฉันเดาว่าฉันแค่ลองแก้แบบฝึกหัดด้วยคีย์ 48 บิต
Score:1
ธง cn

อาจมีข้อมูลไม่เพียงพอเกี่ยวกับตำแหน่งที่พบคีย์ 56 บิตของคุณในอัลกอริทึม

ถ้าค่า 56 บิต B092EBA02E3798 แสดงถึงบล็อกซีดีตามหลัง PC1 the แท็บแป้นพิมพ์ ตาราง -s แสดงคีย์ที่เลือก K16 เป็นผลมาจากการใช้ PC2 กับบล็อกซีดี:

  บิต 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
เคเอส
   1 15 18 12 25 2 6 4 1 16 7 22 11 24 20 13 5 27 9 17 8 28 21 14 3
   2 16 19 13 26 3 7 5 2 17 8 23 12 25 21 14 6 28 10 18 9 1 22 15 4
   3 18 21 15 28 5 9 7 4 19 10 25 14 27 23 16 8 2 12 20 11 3 24 17 6
   4 20 23 17 2 7 11 9 6 21 12 27 16 1 25 18 10 4 14 22 13 5 26 19 8
   5 22 25 19 4 9 13 11 8 23 14 1 18 3 27 20 12 6 16 24 15 7 28 21 10
   6 24 27 21 6 11 15 13 10 25 16 3 20 5 1 22 14 8 18 26 17 9 2 23 12
   7 26 1 23 8 13 17 15 12 27 18 5 22 7 3 24 16 10 20 28 19 11 4 25 14
   8 28 3 25 10 15 19 17 14 1 20 7 24 9 5 26 18 12 22 2 21 13 6 27 16
   9 1 4 26 11 16 20 18 15 2 21 8 25 10 6 27 19 13 23 3 22 14 7 28 17
  10 3 6 28 13 18 22 20 17 4 23 10 27 12 8 1 21 15 25 5 24 16 9 2 19
  11 5 8 2 15 20 24 22 19 6 25 12 1 14 10 3 23 17 27 7 26 18 11 4 21
  12 7 10 4 17 22 26 24 21 8 27 14 3 16 12 5 25 19 1 9 28 20 13 6 23
  13 9 12 6 19 24 28 26 23 10 1 16 5 18 14 7 27 21 3 11 2 22 15 8 25
  14 11 14 8 21 26 2 28 25 12 3 18 7 20 16 9 1 23 5 13 4 24 17 10 27
  15 13 16 10 23 28 4 2 27 14 5 20 9 22 18 11 3 25 7 15 6 26 19 12 1
  16 14 17 11 24 1 5 3 28 15 6 21 10 23 19 12 4 26 8 16 7 27 20 13 2

  บิต 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
เคเอส
   1 42 53 32 38 48 56 31 41 52 46 34 49 45 50 40 29 35 54 47 43 51 37 30 33
   2 43 54 33 39 49 29 32 42 53 47 35 50 46 51 41 30 36 55 48 44 52 38 31 34
   3 45 56 35 41 51 31 34 44 55 49 37 52 48 53 43 32 38 29 50 46 54 40 33 36
   4 47 30 37 43 53 33 36 46 29 51 39 54 50 55 45 34 40 31 52 48 56 42 35 38
   5 49 32 39 45 55 35 38 48 31 53 41 56 52 29 47 36 42 33 54 50 30 44 37 40
   6 51 34 41 47 29 37 40 50 33 55 43 30 54 31 49 38 44 35 56 52 32 46 39 42
   7 53 36 43 49 31 39 42 52 35 29 45 32 56 33 51 40 46 37 30 54 34 48 41 44
   8 55 38 45 51 33 41 44 54 37 31 47 34 30 35 53 42 48 39 32 56 36 50 43 46
   9 56 39 46 52 34 42 45 55 38 32 48 35 31 36 54 43 49 40 33 29 37 51 44 47
  10 30 41 48 54 36 44 47 29 40 34 50 37 33 38 56 45 51 42 35 31 39 53 46 49
  11 32 43 50 56 38 46 49 31 42 36 52 39 35 40 30 47 53 44 37 33 41 55 48 51
  12 34 45 52 30 40 48 51 33 44 38 54 41 37 42 32 49 55 46 39 35 43 29 50 53
  13 36 47 54 32 42 50 53 35 46 40 56 43 39 44 34 51 29 48 41 37 45 31 52 55
  14 38 49 56 34 44 52 55 37 48 42 30 45 41 46 36 53 31 50 43 39 47 33 54 29
  15 40 51 30 36 46 54 29 39 50 44 32 47 43 48 38 55 33 52 45 41 49 35 56 31
  16 41 52 31 37 47 55 30 40 51 45 33 48 44 49 39 56 34 53 46 42 50 36 29 32

โดยที่บิต 1 ถึง 24 ได้มาจากรีจิสเตอร์ C และบิต 25 ถึง 56 ได้มาจากรีจิสเตอร์ D

ค่าลงทะเบียน AC ของ B092EBA ที่ขยายออกไปคือ

บิต 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
วาล 1 0 1 1 0 0 0 0 1 0 0 1 0 0 1 0 1 1 1 0 1 0 1 1 1 0 1 0

การใช้ Permuted Choice 2 กับ C Register ให้:

PC2 14 17 11 24 1 5 3 28 15 6 21 10 23 19 12 4 26 8 16 7 27 20 13 2
     0 1 0 1 1 0 1 0 1 0 1 0 1 0 1 1 0 0 0 0 1 0 0 0

หรือ 5AA5B08.

ค่า AD Register ของ 02E3798 ที่ขยายออกมาคือ

บิต 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
วาล 0 0 0 0 0 0 1 0 1 1 1 0 0 0 1 1 0 1 1 1 1 0 0 1 1 0 0 0

การใช้ Permuted Choice 2 กับ D Register ให้:

PC2 41 52 31 37 47 55 30 40 51 45 33 48 44 49 39 56 34 53 46 42 50 36 29 32
     0 1 0 1 1 0 0 0 0 0 0 1 1 1 1 0 0 1 1 0 0 0 0 0

หรือ 581E60.

ที่ให้ค่าคีย์ที่เลือกเป็น 5AA5B08581E60 ซึ่งเป็นค่า 48 บิต อินพุตคีย์สำหรับ f(R,K) สำหรับกล่อง S 4 กล่องแรกมาจาก C ในขณะที่ 4 กล่องสุดท้ายมาจาก D

ในทางกลับกัน หากค่า 56 บิต B092EBA02E3798 แทนบิต 1 (MS) ถึง 7 ของ 8 (LS) ของอินพุต 8 บิตต่อเนื่องแปดไบต์ไปยัง PC1 ซึ่งจะขยายออกเป็นค่า 64 บิต โดยที่บิตเพิ่มเติมใช้สำหรับพาริตี แต่ละเว้นที่นี่และตั้งค่าเป็นศูนย์:

                     พี
1 0 1 1 0 0 0 0
0 1 0 0 1 0 0 0
1 0 1 1 1 0 1 0
0 1 1 1 0 1 0 0
0 0 0 0 0 0 1 0
0 1 1 1 0 0 0 0
1 1 0 1 1 1 1 0
0 0 1 1 0 0 0 0

หรือ B048BA740270BE30.

ค่านี้สามารถป้อนลงในสำเนาของ Eugene Steyer ตัวอย่าง Javascript DES ซึ่งสามารถเป็นได้ แก้ไขเพื่ออนุญาตให้ป้อนคีย์และข้อมูลโดยพลการ และผลิต:

แคนซัส[16]: 011100 001110 010011 001011 100000 101000 000111 101001

ซึ่งจะเป็น 70E4CB8281E9 ซึ่งเป็นค่า 48 บิต

หากไม่เห็นบริบทของการมอบหมายของคุณ ฉันสงสัยว่าวิธีที่ 2 ที่แสดงในที่นี้มีไว้เพื่อให้คุณต้องแสดงผลงานของคุณหรือไม่ ซึ่งจะสื่อถึงการสาธิต PC1 และ PC2 ตลอดจนการกล่าวถึงกำหนดการสำคัญที่สาธิตคีย์ 16 ที่เลือกคือ PC2 นำไปใช้กับบล็อกซีดี

ช่วยให้เข้าใจ Digital Encryption Standard เป็นมาตรฐานการทำงานร่วมกันที่อ้างอิงถึงการใช้งานฮาร์ดแวร์ที่พบในสิทธิบัตร DES สองรายการของ IBM โดยใช้การเรียงลำดับบิตแบบ big-endian จาก 1 และมีอินเทอร์เฟซ 8 บิตไปยังโฮสต์

ความสัมพันธ์ระหว่างไบต์คีย์อินพุต, PC1, PC2 และบล็อกซีดีแสดงอยู่ใน คำตอบนี้ สำหรับคำถามอื่น

Score:0
ธง ng
SSA

สำหรับอดีต นี่คือ 64 บิตของคุณ ${key = AABB09182736CCDD}$ คุณสามารถแปลงเป็นไบนารี่แล้วจัดเรียงบิตที่แสดงในอาร์เรย์ keyp และคุณจะได้คีย์ 56 บิตใหม่ คีย์ใหม่เป็น bitarray concatenated (bit5+bit49+bit41....+bit4) บิตที่เหลือทั้งหมดจะถูกทิ้ง สำหรับการนับอาร์เรย์ด้านล่างเริ่มจาก 0

ป้อนคำอธิบายรูปภาพที่นี่

  • รับคีย์ 56 บิตจาก 64 บิตโดยใช้แพริตีบิต คีย์ = อนุญาต (คีย์, คีย์, 56)
  • ตอนนี้หลังจากเปลี่ยน PC1 ด้านบนที่แสดงโดย Meir แล้วคีย์ 56 บิตคือ '0xc3c033a33f0cfa'
  • หากฉันเข้าใจคำถามของคุณถูกต้อง คุณต้องค้นหาคีย์ 64 บิตจากคีย์ 56 บิต เนื่องจาก Meir กล่าวว่าไม่สามารถทำได้คุณสามารถใช้คีย์ 56 บิตนี้หลังจากเปลี่ยนลำดับเริ่มต้นและสร้างคีย์ย่อย 16 48 บิตและใช้ในลำดับย้อนกลับขณะถอดรหัส โปรดมองหา Feistel Cipher เนื่องจาก DES อิงตามนั้น
Hakim Cheheb avatar
ru flag
ขอบคุณมาก ฉันจะตรวจสอบรายละเอียดเพิ่มเติมเกี่ยวกับ Fiestel Clipher ขอบคุณ

โพสต์คำตอบ

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