คำถามติดแท็ก cryptography

สำหรับความท้าทายที่เกี่ยวข้องกับการเข้ารหัส: การเข้ารหัสหรือการถอดรหัส

12
พิสูจน์ว่ามาตรฐานการเข้ารหัสลับของรัสเซียมีโครงสร้างที่มากเกินไป
เป้าหมายของความท้าทายนี้คือการหาฟังก์ชั่นสั้น ๆ ที่เป็นไปไม่ได้ในฟังก์ชันpที่คุณเลือก นี่คือรหัส C ที่ใช้มัน (ดู ลิงค์ TIO นี้ซึ่งพิมพ์เอาท์พุทด้วย) และหน้าวิกิพีเดียที่มีมัน unsigned char pi[] = { 252,238,221,17,207,110,49,22,251,196,250,218,35,197,4,77, 233,119,240,219,147,46,153,186,23,54,241,187,20,205,95,193, 249,24,101,90,226,92,239,33,129,28,60,66,139,1,142,79, 5,132,2,174,227,106,143,160,6,11,237,152,127,212,211,31, 235,52,44,81,234,200,72,171,242,42,104,162,253,58,206,204, 181,112,14,86,8,12,118,18,191,114,19,71,156,183,93,135, 21,161,150,41,16,123,154,199,243,145,120,111,157,158,178,177, 50,117,25,61,255,53,138,126,109,84,198,128,195,189,13,87, 223,245,36,169,62,168,67,201,215,121,214,246,124,34,185,3, 224,15,236,222,122,148,176,188,220,232,40,80,78,51,10,74, 167,151,96,115,30,0,98,68,26,184,56,130,100,159,38,65, 173,69,70,146,39,94,85,47,140,163,165,125,105,213,149,59, 7,88,179,64,134,172,29,247,48,55,107,228,136,217,231,137, 225,27,131,73,76,63,248,254,141,83,170,144,202,216,133,97, 32,113,103,164,45,43,9,91,203,155,37,208,190,229,108,82, 89,166,116,210,230,244,180,192,209,102,175,194,57,75,99,182, }; unsigned char p(unsigned char x) { return pi[x]; } คืออะไร p pเป็นส่วนประกอบของสองมาตรฐานการเข้ารหัสลับของรัสเซียคือฟังก์ชันแฮชStreebogและตัวเลขบล็อกKuznyechik ในบทความนี้ (และระหว่างการประชุม ISO) นักออกแบบของอัลกอริทึมเหล่านี้อ้างว่าพวกเขาสร้างอาร์เรย์piโดยเลือกวิธีเรียงสับเปลี่ยน 8 …

30
พิมพ์ Tabula Recta!
พิมพ์ Tabula Recta! Tabula Recta (บางครั้งเรียกว่า 'Vigenere Table') สร้างโดย Johannes Trithemius และถูกนำมาใช้ในยันต์หลายแห่งรวมถึงตัวแปรทั้งหมดของตัวเลข Vigenere ของ Bellaso และ Trithemius cipher ดูเหมือนว่านี้: ABCDEFGHIJKLMNOPQRSTUVWXYZ BCDEFGHIJKLMNOPQRSTUVWXYZA CDEFGHIJKLMNOPQRSTUVWXYZAB DEFGHIJKLMNOPQRSTUVWXYZABC EFGHIJKLMNOPQRSTUVWXYZABCD FGHIJKLMNOPQRSTUVWXYZABCDE GHIJKLMNOPQRSTUVWXYZABCDEF HIJKLMNOPQRSTUVWXYZABCDEFG IJKLMNOPQRSTUVWXYZABCDEFGH JKLMNOPQRSTUVWXYZABCDEFGHI KLMNOPQRSTUVWXYZABCDEFGHIJ LMNOPQRSTUVWXYZABCDEFGHIJK MNOPQRSTUVWXYZABCDEFGHIJKL NOPQRSTUVWXYZABCDEFGHIJKLM OPQRSTUVWXYZABCDEFGHIJKLMN PQRSTUVWXYZABCDEFGHIJKLMNO QRSTUVWXYZABCDEFGHIJKLMNOP RSTUVWXYZABCDEFGHIJKLMNOPQ STUVWXYZABCDEFGHIJKLMNOPQR TUVWXYZABCDEFGHIJKLMNOPQRS UVWXYZABCDEFGHIJKLMNOPQRST VWXYZABCDEFGHIJKLMNOPQRSTU WXYZABCDEFGHIJKLMNOPQRSTUV XYZABCDEFGHIJKLMNOPQRSTUVW YZABCDEFGHIJKLMNOPQRSTUVWX ZABCDEFGHIJKLMNOPQRSTUVWXY ฉันต้องการสิ่งนี้บ่อยครั้ง แต่ไม่พบที่ใดก็ได้บนอินเทอร์เน็ตเพื่อคัดลอกและวาง เนื่องจากตารางสี่เหลี่ยมนั้นยาวและใช้เวลานานในการพิมพ์รหัสของคุณจึงต้องสั้นที่สุด กฎ / …

30
StringgnirtSStringgnirtSStringgnirtS
นี่คือความท้าทายที่ค่อนข้างง่ายสำหรับคุณ กำหนดสตริงที่มีความยาวNส่งออกสตริงไปข้างหน้าจากนั้นย้อนกลับแล้วไปข้างหน้าจากนั้นย้อนกลับ ... เป็นต้นNครั้ง ตัวอย่างเช่นถ้าข้อมูลของคุณเป็น Hello! คุณควรส่งออก: Hello!!olleHHello!!olleHHello!!olleH คุณยังสามารถเลือกที่จะออกบรรทัดใหม่หนึ่งบรรทัด การส่งของคุณอาจเป็นได้ทั้งโปรแกรมเต็มหรือฟังก์ชั่นและคุณอาจต้องใช้เวลาเข้าและส่งออกในรูปแบบที่เหมาะสม ตัวอย่างเช่นคุณอาจใช้ IO จาก STDIN / STDOUT อาร์กิวเมนต์ของฟังก์ชันและค่าส่งคืนจากไฟล์ ฯลฯ คุณสามารถสันนิษฐานได้ว่าสตริงอินพุตจะไม่ว่างเปล่าและจะมี ASCII ที่พิมพ์ได้เท่านั้น คุณต้องส่งออกสตริงใหม่ในบรรทัดเดียว ตัวอย่างเช่นถ้าผลลัพธ์ไปยังตัวอย่างสุดท้ายคือ Hello! !olleH Hello! !olleH Hello! !olleH นี่จะไม่ใช่ทางออกที่ถูกต้อง! ต่อไปนี้เป็นกรณีทดสอบเพิ่มเติม: Input: a Output: a Input: abcd Output: abcddcbaabcddcba Input: OK! Output: OK!!KOOK! Input: 4815162342 Output: 4815162342243261518448151623422432615184481516234224326151844815162342243261518448151623422432615184 Input: PPCG Output: …
42 code-golf  string  code-golf  math  geometry  data-structures  repeated-transformation  code-golf  number  random  code-golf  math  rational-numbers  code-golf  ascii-art  animation  code-golf  ascii-art  number  code-golf  math  number  code-golf  data-structures  code-golf  string  parsing  code-golf  array-manipulation  random  permutations  code-golf  string  code-golf  parsing  code-golf  string  quine  code-golf  string  parsing  comment  code-golf  string  counting  natural-language  code-golf  string  decision-problem  code-golf  math  code-challenge  metagolf  test-battery  code-golf  string  code-golf  math  number  arithmetic  source-layout  code-golf  number  primes  decision-problem  code-golf  math  arithmetic  code-golf  date  code-golf  string  cryptography  code-golf  code-golf  chess  board-game  code-golf  geometry  grid  puzzle-solver  set-partitions  code-golf  number  natural-language  code-golf  ascii-art  code-golf  math  code-golf  string  ascii-art  kolmogorov-complexity  code-golf  string  natural-language  code-golf  game  board-game  tic-tac-toe  code-golf  ascii-art  hexagonal-grid  code-golf  string  comment  code-golf  internet  code-golf  sorting  code-golf  kolmogorov-complexity  unicode  code-golf  tips  code-golf  string  natural-language  code-golf  string  kolmogorov-complexity  source-layout  hello-world  code-golf  string  kolmogorov-complexity  counting  natural-language  code-golf  random  quine  code-golf  string  math  bitwise  code-golf  permutations  code-golf  string  code-golf  arithmetic 

11
บิชอปเมา
ในการเข้ารหัสคีย์สาธารณะลายนิ้วมือกุญแจสาธารณะนั้นเป็นลำดับไบต์สั้น ๆ ที่ใช้เพื่อระบุคีย์สาธารณะที่ยาวขึ้น โดยเฉพาะใน SSH พวกเขาสามารถใช้เพื่อตรวจสอบว่าเซิร์ฟเวอร์เป็นเซิร์ฟเวอร์ที่ฉันคาดหวังว่าจะสื่อสารด้วยและฉันไม่ได้ตกเป็นเป้าหมายของการโจมตีจากคนกลาง พวกเขามักจะแสดงเป็นสตริงของตัวเลขฐานสิบหกดังนั้นจึงค่อนข้างน่าเบื่อและน่าเบื่อเมื่อเปรียบเทียบกับลายนิ้วมือที่ฉันคาดหวัง: 37:e4:6a:2d:48:38:1a:0a:f3:72:6d:d9:17:6b:bd:5e เพื่อให้ง่ายขึ้นเล็กน้อย OpenSSH ได้แนะนำวิธีการแสดงลายนิ้วมือเป็นศิลปะ ASCII ซึ่งจะมีลักษณะดังนี้: +-----------------+ | | | | | . | | . o | |o . o . S + | |.+ + = . B . | |o + + o B o E | | o . …

30
ตัวเลขนี้เป็นจำนวนเต็มกำลังของ -2 หรือไม่
มีวิธีการที่ชาญฉลาดในการพิจารณาว่าตัวเลขเป็นกำลัง 2 นั่นไม่ใช่ปัญหาที่น่าสนใจอีกต่อไปดังนั้นลองพิจารณาว่าจำนวนเต็มที่กำหนดเป็นกำลังจำนวนเต็ม-2หรือไม่ ตัวอย่างเช่น: -2 => yes: (-2)¹ -1 => no 0 => no 1 => yes: (-2)⁰ 2 => no 3 => no 4 => yes: (-2)² กฎระเบียบ คุณสามารถเขียนโปรแกรมหรือฟังก์ชั่นและใช้วิธีการมาตรฐานใด ๆ ในการรับอินพุตและจัดเตรียมเอาต์พุต อินพุตของคุณเป็นจำนวนเต็มเดียวและเอาต์พุตต้องเป็นค่าจริงหากจำนวนเต็มเป็นกำลังของเลขจำนวนเต็ม -2 และค่าเท็จเป็นอย่างอื่น ไม่อนุญาตให้ใช้เอาต์พุตอื่น (เช่นข้อความเตือน) ใช้กฎโอเวอร์โฟลว์จำนวนเต็มตามปกติ: วิธีแก้ปัญหาของคุณจะต้องสามารถทำงานกับจำนวนเต็มขนาดใหญ่ตามอำเภอใจในภาษาของคุณ (หรืออาจจะเป็นจริง) ในรูปแบบสมมุติซึ่งจำนวนเต็มทั้งหมดถูก จำกัด โดยค่าเริ่มต้น แต่หากโปรแกรมของคุณล้มเหลวในทางปฏิบัติ ไม่รองรับจำนวนเต็มที่มีขนาดใหญ่ซึ่งไม่ได้ทำให้โซลูชันไม่ถูกต้อง คุณอาจใช้ภาษาการเขียนโปรแกรมใด ๆแต่โปรดทราบว่าช่องโหว่เหล่านี้เป็นสิ่งต้องห้ามตามค่าเริ่มต้น สภาพการชนะ นี่คือการประกวดcode-golf : …

3
แก้ลูกบาศก์ของรูบิค
เขียนโปรแกรมที่สั้นที่สุดที่แก้คิวบ์ของรูบิค (3 * 3 * 3) ภายในระยะเวลาที่เหมาะสมและเคลื่อนไหวได้ (พูดได้สูงสุด 5 วินาทีในเครื่องของคุณและน้อยกว่า 1,000 ครั้ง) อินพุตอยู่ในรูปแบบ: UF UR UB UL DF DR DB DL FR FL BR BL UFR URB UBL ULF DRF DFL DLB DBR (อินพุตเฉพาะนี้แสดงถึงคิวบ์ที่แก้ไขแล้ว) 12 สตริงอักขระ 2 ตัวแรกคือขอบในตำแหน่ง UF, UR, ... BL (U = ขึ้น, F = ด้านหน้า, R = …

23
การเข้ารหัสแฮชกอล์ฟ
การประกวดครั้งนี้จบแล้ว เนื่องจากลักษณะของความท้าทายตำรวจและโจรความท้าทายตำรวจกลายเป็นเรื่องง่ายขึ้นมากเมื่อความสนใจในความท้าทายโจรที่เกี่ยวข้องได้ลดลง ดังนั้นในขณะที่คุณยังสามารถโพสต์ฟังก์ชันแฮชคำตอบของคุณจะไม่ได้รับการยอมรับหรือเป็นส่วนหนึ่งของกระดานแต้มนำ ความท้าทายนี้คือการค้นหาการใช้งานฟังก์ชันแฮชที่สั้นที่สุดที่ทนทานต่อการชนกล่าวคือควรหาข้อความที่แตกต่างกันสองข้อความที่มีแฮชเดียวกัน ในฐานะตำรวจคุณพยายามคิดค้นและใช้ฟังก์ชันแฮชเพื่อหาการประนีประนอมที่ดีที่สุดระหว่างขนาดรหัสและการต่อต้านการชน ใช้จำนวนไบต์มากเกินไปและตำรวจอีกคนจะเร็วกว่าคุณ! ในฐานะโจรคุณพยายามสกัดกั้นความพยายามของตำรวจโดยการทำหน้าที่ของพวกเขาให้แตกเพื่อพิสูจน์ว่าพวกเขาไม่เหมาะสม สิ่งนี้จะบังคับให้พวกเขาใช้จำนวนไบต์มากขึ้นเพื่อเสริมอัลกอริทึมของพวกเขา! ตำรวจท้าทาย งาน ใช้การเข้ารหัสลับฟังก์ชันแฮชH: ฉัน -> Oที่คุณเลือกที่ฉันเป็นชุดของทั้งหมดไม่ integers เชิงลบด้านล่าง 2 2 30และOเป็นชุดของทั้งหมดไม่ integers เชิงลบด้านล่าง 2 128 คุณสามารถใช้Hเป็นฟังก์ชันจริงที่ยอมรับและส่งคืนจำนวนเต็มเดียวการแทนค่าสตริงของจำนวนเต็มหรืออาร์เรย์ของจำนวนเต็มหรือโปรแกรมเต็มรูปแบบที่อ่านจาก STDIN และพิมพ์ไปยัง STDOUT ในฐาน 10 หรือ 16 เกณฑ์การให้คะแนน Hว่ามันต้องต่อต้านความท้าทายโจรที่กำหนดไว้ด้านล่าง ถ้าโจรเอาชนะส่งของคุณใน 168 ชั่วโมงแรกหลังการโพสต์มันก็ถือว่าแตก การดำเนินการของHควรสั้นที่สุด การส่งที่ไม่ได้ติดตามที่สั้นที่สุดจะเป็นผู้ชนะของความท้าทายของตำรวจ กฎเพิ่มเติม หากคุณใช้งานHเป็นฟังก์ชั่นโปรดใส่กระดาษห่อเพื่อใช้งานฟังก์ชั่นจากภายในโปรแกรมที่ทำงานตามที่อธิบายไว้ข้างต้น โปรดระบุเวกเตอร์ทดสอบอย่างน้อยสามรายการสำหรับโปรแกรมหรือ wrapper ของคุณ (ตัวอย่างอินพุตและเอาต์พุตที่สอดคล้องกัน) Hสามารถออกแบบนวนิยายของคุณ (ที่ต้องการ) หรืออัลกอริทึมที่รู้จักกันดีตราบใดที่คุณใช้มันด้วยตัวคุณเอง ห้ามมิให้ใช้ฟังก์ชั่นแฮชในตัว, ฟังก์ชั่นการบีบอัด, ตัวเลข, …

30
ROT-13 แปลงอินพุตมาตรฐาน
ความท้าทาย: เพื่ออ่านอินพุตของความยาวโดยพลการและสร้างROT13ของอินพุต อักขระทั้งหมดที่นอกเหนือจาก AZ ควรคัดลอกไปที่คำต่อคำเอาต์พุตและควรเก็บไว้ในกรณีที่เป็นไปได้ ภาษาใด ๆ ที่สามารถอ่านและเขียนสตรีมมาตรฐานเป็นเกมที่ยุติธรรม

3
การแฮชรหัสผ่าน underhanded [ปิด]
ด้วยจิตวิญญาณของการประกวด C ที่มีเล่ห์เหลี่ยม วัตถุประสงค์ของการประกวดครั้งนี้คือการนำโค้ดไปใช้อย่างตรงไปตรงมาในขณะที่ซ่อนจุดบกพร่องที่ซ่อนอยู่ในนั้นไว้อย่างละเอียด การแข่งขัน คุณเป็นโมลรัสเซียที่ทำงานในแผนก IT ของ บริษัท สายลับอเมริกัน เจ้านายชาวอเมริกันของคุณเพิ่งขอให้คุณใช้อัลกอริทึมการแฮชรหัสผ่านเพื่อใช้สำหรับการเข้ารหัสข้อความลับ เจ้านายของคุณต้องการให้คุณใช้งานฟังก์ชั่นต่อไปนี้: f: String -> byte[16] ซึ่งแปลงรหัสผ่านเป็นปริมาณ 16 ไบต์ที่เหมาะสมสำหรับใช้เป็นคีย์ AES เจ้านายของคุณต้องการฟังก์ชั่นที่ปลอดภัยซึ่งในบริบทนี้หมายความว่าสตริงรหัสผ่านที่แตกต่างกันควรสร้างผลลัพธ์ที่แตกต่างพร้อมความน่าจะเป็นอย่างมาก ยกตัวอย่างเช่นกลับmd5fกัญชาของท่านจะเป็นการดำเนินงานที่เรียบง่ายของ แน่นอนว่าหัวหน้าที่แท้จริงของคุณในสายลับรัสเซียต้องการให้คุณล้มล้างกระบวนการนี้ งานของคุณคือการดำเนินการดังกล่าวว่ารัสเซียสามารถถอดรหัสทุกข้อความลับเข้ารหัสโดยใช้ปุ่มส่งกลับโดยff ในการทำเช่นนั้นคุณต้องดำเนินการfเพื่อที่จะส่งคืนชุดย่อยขนาดเล็กของเอาต์พุตที่เป็นไปได้ 2 ^ 128 เท่านั้น โดยเฉพาะอย่างยิ่งคุณfจะต้องส่งกลับผลลัพธ์ที่ต่างกันมากที่สุด 2 ^ 16 เพื่อให้รัสเซียสามารถค้นหาคีย์ที่ถูกต้องสำหรับข้อความที่เข้ารหัสแต่ละข้อความที่พวกเขาต้องการถอดรหัสได้อย่างง่ายดาย อย่างไรก็ตามโปรดจำไว้ว่าการจารกรรมถือโทษประหารชีวิต เพื่อไม่ให้ถูกจับได้ฟังก์ชันของคุณfจะต้องสร้างผลลัพธ์ที่แตกต่างกันอย่างน้อย 2 ^ 8 ดังนั้นการตรวจสอบคร่าวๆของเอาต์พุตไม่กี่รายการfจึงไม่น่าจะเปิดเผยสิ่งที่ซ้ำกัน และที่สำคัญที่สุดรหัสที่คุณแนะนำเพื่อ จำกัด ช่วงของfต้องดูโดยไม่ได้ตั้งใจไม่ได้ตั้งใจ หากคุณถูกลากเข้าไปในห้องพิจารณาคดีต้องมีข้อสงสัยที่สมเหตุสมผลว่าคุณแนะนำข้อผิดพลาดโดยเจตนาหรือโดยอุบัติเหตุ การตัดสิน ฉันและอีกสองคนที่ฉันรับสมัครจะเป็นผู้ตัดสินผลงาน (ส่งอีเมลถึงฉันหากคุณต้องการตัดสิน) ฉันเสนอรางวัล 200 ชื่อเสียงให้กับผู้ชนะ …

30
Mirage ของคนฉลาด
กาลครั้งหนึ่งฉันได้อ่านคำถาม / คำตอบนี้เกี่ยวกับ Quora มีโปรแกรมเมอร์ที่มีองศาวิทยาศาสตร์คอมพิวเตอร์ซึ่งไม่สามารถผ่านการทดสอบ FizzBuzz ได้หรือไม่ รหัสนี้เป็นคำตอบที่ชัดเจน for i in range(1, 100): if i % 3 == 0 and i % 5 == 0: print "FizzBuzz" elif i % 3 == 0: print "Fizz" elif i % 5 == 0: print "Buzz" else: print i แน่นอนว่าFizzBuzzได้รับการตีกอล์ฟให้ตาย แต่นั่นไม่ใช่สิ่งที่คำถามนี้เกี่ยวกับ ในความเห็นมีคนพูดว่าคำตอบที่ชัดเจนนี้ดีมากเพราะมันง่ายที่จะเพิ่มเงื่อนไขพิเศษเช่นพิมพ์ "Jazz" …
29 popularity-contest  code-challenge  word  popularity-contest  string  grid  language-design  code-golf  source-layout  math  fastest-algorithm  assembly  code-golf  json  code-golf  arithmetic  array-manipulation  code-golf  ascii-art  code-golf  crossword  code-golf  string  restricted-complexity  code-golf  ascii-art  kolmogorov-complexity  code-golf  string  decision-problem  balanced-string  syntax  code-golf  grid  puzzle-solver  hexagonal-grid  code-golf  math  number  sequence  code-golf  string  decision-problem  code-golf  cryptography  king-of-the-hill  code-challenge  fastest-code  code-golf  number  code-golf  code-golf  string  code-golf  cryptography  king-of-the-hill  java  code-golf  number-theory  base-conversion  code-golf  code-golf  array-manipulation  code-golf  array-manipulation  sorting  code-challenge  restricted-source  quine  code-golf  tips  python  king-of-the-hill  code-golf  source-layout  fractal  code-golf  tips  game  king-of-the-hill  path-finding  grid  code-golf  kolmogorov-complexity  natural-language  code-golf  tips  python  code-golf  number  arithmetic  sequence  array-manipulation  code-golf  number  combinatorics  random  integer-partitions  code-golf  string  code-golf  vim  comment  code-golf  combinatorics  counting  code-challenge  rosetta-stone  code-golf  combinatorics  sequence  subsequence  code-golf  code-challenge  restricted-source  primes  printable-ascii  popularity-contest  graphical-output  image-processing 

7
ถอดรหัสกบที่มีอาการทางประสาท
ถอดรหัสกบที่มีอาการทางประสาท ตอนนี้ Puzzling.SE ในที่สุดก็ถอดรหัสรหัสสัตว์ครึ่งบกครึ่งน้ำที่หมกมุ่นอยู่แล้วลองเขียนโปรแกรมหรือฟังก์ชั่นเพื่อถอดรหัส! (ถ้าคุณต้องการที่จะดูปริศนาก่อนที่มันจะเสียสำหรับคุณคลิกที่ลิงค์ด้านบนทันที) วิธีการทำงานของรหัส ในโรคประสาทกบO ught การ Rel x ในM UD Baths ( "โรคประสาทกบ" สำหรับระยะสั้น) ทุกตัวอักษรจะถูกเข้ารหัสเป็นหนึ่งหรือสองคำ: ความยาวของคำที่ไม่ใช่ตัวเอียงหมายถึงตัวอักษร neurotic => 8 ตัวอักษร => H frogs => 5 ตัวอักษร => E perpendicular => 13 ตัวอักษร = M คำที่มีตัวเอียงปรับเปลี่ยนคำต่อไปนี้เพิ่ม 10 ถ้าคำตัวเอียงเป็นความยาวคี่หรือ 20 ถ้าคำตัวเอียงเป็นแม้ในความยาว คำใดคำหนึ่งหรือทั้งหมดอาจเป็นตัวเอียง คำที่เป็นตัวเอียงจะตามด้วยคำที่ไม่ใช่ตัวเอียงเสมอ *o*ught to => คี่ 2 => …

24
Atbash Palindromes ตนเอง
พิจารณาการเปลี่ยนแปลง Atbash : A|B|C|D|E|F|G|H|I|J|K|L|M Z|Y|X|W|V|U|T|S|R|Q|P|O|N ที่ A ⇔ Z และ L ⇔ O เช่นมีคุณสมบัติที่น่าสนใจซึ่งบางคำแบ่งปัน เมื่อมีการแปลสตริงบางรายการให้เทียบเท่ากับ atbash คำแปลนั้นจะกลับคำเดิม ผมเรียกเหล่านี้Atbash เอง Palindromes ตัวอย่างเช่นลองแปลWIZARD : W → D ฉัน→ R Z → A A → Z R →ฉัน D → W ผลลัพธ์คือDRAZIWซึ่งตรงกันข้ามกับWIZARD ดังนั้นWIZARDจึงเป็น atbash palindrome ตนเอง วัตถุประสงค์รับสตริงของอักขระ ASCII ที่พิมพ์ได้ออกหรือส่งคืนค่าความจริงหากสตริงนั้นเป็น atbash self palindrome และค่า …

6
Gimli ทำให้สั้นกว่านี้ใช่ไหม
ฉันเป็นหนึ่งในนักเขียนของกิมลี เรามี 2-tweet (280 chars) ใน C แต่ฉันอยากจะดูว่ามันเล็กแค่ไหน Gimli ( paper , website ) เป็นความเร็วสูงด้วยการออกแบบการเปลี่ยนรูปแบบการเข้ารหัสลับระดับความปลอดภัยสูงที่จะนำเสนอในการประชุมเกี่ยวกับการเข้ารหัสฮาร์ดแวร์และระบบฝังตัว (CHES) 2017 (25-28 กันยายน) งาน ตามปกติ: เพื่อให้การนำ Gimli ไปปฏิบัติใช้ในภาษาที่คุณเลือกได้ มันควรจะสามารถใช้เป็นอินพุต 384 บิต (หรือ 48 ไบต์หรือ 12 int ไม่ได้ลงนาม ... ) และผลตอบแทน (อาจแก้ไขในสถานที่ถ้าคุณใช้ตัวชี้) ผลของ Gimliนำไปใช้กับ 384 บิตเหล่านี้ อนุญาตให้ทำการแปลงอินพุตจากทศนิยมฐานสิบหกฐานแปดหรือฐานสอง กรณีมุมที่อาจเกิดขึ้น การเข้ารหัสจำนวนเต็มจะถือว่าเป็น endian น้อย (เช่นสิ่งที่คุณอาจมีอยู่แล้ว) คุณอาจเปลี่ยนชื่อGimliเป็นGแต่จะต้องยังคงเป็นการเรียกใช้ฟังก์ชัน ใครชนะ? นี่คือ …

22
การตรวจสอบการ padding PKCS # 7
ในวิทยาการเข้ารหัสลับการหุ้ม PKCS # 7เป็นโครงร่างการขยายซึ่งเพิ่มจำนวนไบต์ N ≥ 1 โดยที่ค่าของแต่ละไบต์ที่เพิ่มมีค่าเท่ากับ N ตัวอย่างเช่นHello, World!ซึ่งมี 13 ไบต์มีดังต่อไปนี้ในฐานสิบหก: 48 65 6C 6C 6F 2C 20 57 6F 72 6C 64 21 ถ้าเราเลือกที่จะ PKCS # 7 ความยาว 16 แผ่นผลที่ได้คือ: 48 65 6C 6C 6F 2C 20 57 6F 72 6C 64 21 03 03 03 และถ้าเราเลือกที่จะยาวถึง …

13
ROT คืออะไร - ถอดรหัส ROT-n
นี่คือตัวอักษรของตัวอักษรภาษาอังกฤษตามลำดับความถี่: e t a o i n s h r d l c u m w f g y p b v k j x q z นั่นคือeเป็นจดหมายที่ใช้บ่อยที่สุดและzเป็นจดหมายที่พบน้อยที่สุด (ข้อมูลจากWikipedia ) ความท้าทายของคุณคือการใช้ข้อความ ROT-n'd เช่น: ocdndnvqzmtnzxmzohznnvbzocvodnqzmtnzxpmzviynvaz นี่คือข้อความ "นี่คือทุกสิ่งที่ส่งมาถึงความพึงพอใจของคุณปลอดภัย" ซึ่ง "เข้ารหัส" ผ่าน ROT-21 (ครึ่งหนึ่งของ 42) โปรแกรมของคุณที่ใช้ตารางความถี่ด้านบนควรสามารถกำหนดได้ว่าอักขระแต่ละตัวถูกหมุนและข้อความต้นฉบับเท่าใด (หากคุณไม่คุ้นเคยกับ ROT-n มันจะเปลี่ยนอักขระแต่ละตัวเป็นหลักnเช่นใน ROT-2,. a -> c, …

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.