เข้ารหัสแผ่นครั้งเดียวด้วย QR การเข้ารหัสแพดแบบครั้งเดียวให้ความปลอดภัยที่ไม่แตกหัก* หากคุณสามารถรับประกันการสร้างตัวเลขสุ่มอย่างแท้จริง และความปลอดภัยของแพดที่สร้างขึ้น การใช้งานจากมุมมองของคนธรรมดาที่เข้ารหัสเป็นวิธีที่สนุกในการเรียนรู้เพิ่มเติมเกี่ยวกับมัน และสามารถเพิ่มชั้นความปลอดภัยพิเศษให้กับการสื่อสารที่ละเอียดอ่อนที่สุดของคุณ
ฉันเริ่มต้นด้วยการพยายามเลียนแบบตัวอย่าง NSA ด้านบน ในที่สุดฉันก็ลงเอยด้วยคีย์อักขระ 169 ตัว (แมปเป็นตาราง 13 x 13) ในขณะที่ฉันพยายามเข้ารหัสอักขระเพิ่มเติมในโค้ด QR มันยังใช้งานได้ดีสำหรับข้อความสั้น ๆ และเพื่อพิสูจน์แนวคิด มันมากเกินพอ
รหัส R นั้นสั้นและเรียบง่ายและแสดงไว้ด้านล่าง มันเริ่มต้นด้วยการสร้างตัวเลขสุ่ม 13 x 13 ตั้งแต่ 0 ถึง 25 เพื่อแมปเป็น A ถึง Z นอกจากนี้ยังใช้ไลบรารี qrcode เพื่อสร้างรหัส QR ของคีย์เข้ารหัส จากนั้นจะส่งออกเป็นไฟล์ PDF เพื่อพิมพ์และแจกจ่ายให้กับทั้งผู้ส่งและผู้รับ
#==========================
# Simple one-time-pad generator
# with QR code generation for encryption key
#
# J. van der Linde (jvdl@jvdl.me)
#
# Updated 30 April 2021
#==========================
rm(list = ls())
library(dplyr)
library(qrcode)
library(grid)
library(gridExtra)
#==========================
setwd("~/R/Projects/onetimepad/")
#export pdf to file
pdf("~/R/Projects/onetimepad/otp.pdf")
#initialise with number of rows, cols, and sheets of paper to generate
dim_row <- 13
dim_col <- 13
total_chars <- dim_row * dim_col
total_sheets <- 3
for (i in 1:total_sheets) {
print(paste("Producing sheet no.", i, "of", total_sheets))
otp_num <- floor(runif(total_chars, min = 0, max = 26)) #generate from 0 to 25
otp_char <- replace(otp_num, TRUE, LETTERS[unlist(otp_num + 1)]) #rewrite numbers 0-25 to A-Z
otp_string <- paste(unlist(otp_char), collapse = '') #create a continuous string for the QR code
otp_num_matrix <- matrix(otp_num, nrow = dim_row, ncol = dim_col, byrow = TRUE) #create a numeric matrix
otp_char_matrix <- matrix(otp_char, nrow = dim_row, ncol = dim_col, byrow = TRUE) #create a char matrix
otp_char_df <- data.frame(otp_char_matrix) #create dataframe of char matrix
rownames(otp_char_df) <- seq(dim_row) #set rownames as 1 ... x
colnames(otp_char_df) <- seq(dim_col) #set colnames as 1 ... y
#output the table of chars to the PDF
grid.table(otp_char_df)
grid.text(paste("SHEET", i, "OF", total_sheets), x = unit(0.5, "npc"), y = unit(0.95, "npc"))
#print QR code of OTP to PDF
qrcode_gen(otp_string)
if (i != total_sheets){
grid.newpage()
}
}
#close pdf device
dev.off()
ด้านล่างนี้เป็นข้อความที่ตัดตอนมาจากเอาต์พุต PDF แนวคิดคือควรพิมพ์สำเนาเอกสารนี้สองชุด ชุดหนึ่งสำหรับผู้ส่งและอีกชุดหนึ่งสำหรับผู้รับ ควรส่ง OTP ด้วยตนเองเพื่อให้แน่ใจว่าไม่ถูกดักฟัง ทั้งคู่ควรเก็บ OTP ไว้ในที่ที่ปลอดภัยและทำลายสำเนาอิเล็กทรอนิกส์นี้
เมื่อจำเป็นต้องส่งข้อความที่มีความลับเป็นพิเศษ ตัวละครเอกของเราซึ่งเราจะเรียกพวกเขาว่าอลิซและบ็อบตามประเพณี จะต้องตกลงเกี่ยวกับรหัสที่จะใช้ พวกเขาอาจเตรียมการล่วงหน้าโดยเริ่มที่แผ่นแรกและดำเนินการต่อไปตามลำดับ หรือพวกเขาสามารถตัดสินใจเลือกแผ่นงานได้เอง ตัวอย่างเช่น อลิซสามารถส่งข้อความหาบ๊อบโดยพูดว่า “ใช้ชีต 3 วันนี้” เข้ารหัสแผ่นครั้งเดียวด้วย QR
ในสถานการณ์สมมติของเรา สมมติว่าอลิซต้องพบกับบ็อบ บางทีพวกเขาอาจสรุปธุรกรรมที่เป็นความลับหรือประท้วงเพื่อประชาธิปไตยในประเทศของตน เธอต้องการส่งข้อความว่า “เจอกันตอนสิบเอ็ดโมงที่จัตุรัสกลางเมือง” ประการแรก เธอใช้โปรแกรม ส่งข้อความโต้ตอบแบบทันทีที่ ปลอดภัยอย่าง Signal เพื่อเริ่มการสนทนากับ Bob
อลิซ: สวัสดี FreedomProtestor123 วันนี้ใช้แผ่น3 ข้อความจะตามมาในไม่ช้า
บ๊อบ: สวัสดี DemocracyGirl42 จะทำ
เหตุการณ์ปัจจุบัน…
โดยใช้การบวกแบบโมดูลาร์ (รหัสของเราสำหรับ AZ เท่านั้น ซึ่งมีหมายเลขตั้งแต่ 0 ถึง 25) Alice คำนวณข้อความที่เข้ารหัส เธอเพิ่มตัวอักษรตัวแรกของข้อความต่อตัวอักษรตัวแรกของคีย์ โมดูโล 26 เธอทำซ้ำสำหรับตัวอักษรตัวที่ 2 ของข้อความและตัวอักษรตัวที่สองของคีย์ ไปเรื่อยๆ จากนั้นเธอก็จับคู่ตัวเลขผลลัพธ์ของการบวกแบบโมดูลาร์กลับไปเป็นตัวอักษร
นอกจากนี้ยังสามารถทำได้ค่อนข้างง่ายด้วยความช่วยเหลือของคอมพิวเตอร์ อลิซสามารถใช้โทรศัพท์ของเธอสแกนคิวอาร์โค้ดที่อยู่ติดกับตารางแบบเก่าและทำขั้นตอนให้เสร็จสิ้นผ่านแอปหรือหน้าเว็บ อลิซต้องทำให้แน่ใจว่าเธอสามารถไว้วางใจทุกอย่างในห่วงโซ่นี้ได้ ตั้งแต่เครื่องสแกนรหัส QR ไปจนถึงการไม่ขัดขวางการรับส่งข้อมูลทางอินเทอร์เน็ตของเธอ
ฉันเชื่อมโยงที่นี่กับตัวอย่าง HTML/JS พื้นฐานซึ่งสามารถโฮสต์ออนไลน์หรือเก็บไว้ออฟไลน์เพื่อใช้งานได้ โค้ดนี้จงใจให้เรียบง่ายและสะอาดตา (ไม่มี CSS) เพื่อให้ตรวจสอบแหล่งที่มาได้ง่ายและตัดสินใจได้ว่าจะเชื่อถือหรือไม่ คุณสามารถดูการใช้งานโฮสต์ของฉันได้ที่http://jvdl.me/otp.html ; เนื่องจากเป็นหน้า HTML ที่เรียบง่าย โทรศัพท์หรือคอมพิวเตอร์ทุกเครื่องสามารถแสดงผลได้
การใช้ปุ่มบนแผ่นงาน 3
(DKPKAREZTPABSCHIBLTHZZLNARDGRXVGIBGQDPWLESQWKKAVQDKSPHZNMRDBBNJPTWDANLOARNELLMGODWAMQPYACBABRVTYAPDQHVQESOWQJESMMMDLZULCVGTCYXVZYIJBKOODXCXYSAUCAFGNUUPIBXPHLSXPBBLTQTLUO)
และข้อความของเธอ “เจอกันตอนสิบเอ็ดโมงที่จัตุรัสกลางเมือง” ในที่สุดอลิซก็ลงเอยด้วยข้อความเข้ารหัสต่อไปนี้:
อลิซ: VOT IOL ES XAEWWP HU JY MOD SZJN JTAROZ
บ๊อบ: เข้าใจแล้ว ขอบคุณ
ลึกลับและคลุมเครือ บางทีก็โรแมนติก…
อลิซสามารถเว้นวรรคเพื่อป้องกันไม่ให้อะไรถูกอนุมานจากความยาวของคำ บ๊อบจะยังสามารถเข้าใจข้อความได้ อลิซสามารถใช้ตัวอักษรที่ใช้กันน้อยกว่าปกติ (เช่น Q หรือ X) แทนการเว้นวรรคเพื่อแยกคำในขณะที่ยังคงรักษาข้อความต่อเนื่องกัน สิ่งนี้จะหลีกเลี่ยงการเน้นคำที่เข้ารหัสทีละคำ
อลิซไม่ต้องการคีย์ทั้งหมดเนื่องจากข้อความของเธอสั้น Bob ทำขั้นตอนนี้ซ้ำด้วยการลบและโมดูโลแทนการบวกและโมดูโล เขาลบคีย์ออกจากข้อความที่เข้ารหัสเพื่อรับข้อความต้นฉบับที่ถอดรหัสแล้ว ตอนนี้เขารู้แล้วว่าจะได้พบกับอลิซเมื่อไหร่และที่ไหน
อลิซและบ็อบเป็นคนฉลาดทั้งคู่ พวกเขาคำนึงถึงสิ่งต่อไปนี้ทั้งหมด:
- อลิซและบ็อบตรวจสอบให้แน่ใจว่าพวกเขาได้รับแผ่นอิเล็กโทรดเพียงชุดเดียว อลิซสร้างมันขึ้นมาและมอบให้บ็อบด้วยตนเอง หรือในทางกลับกัน เข้ารหัสแผ่นครั้งเดียวด้วย QR
- ข้อความไม่ควรยาวเกินคีย์ (เช่น ไม่ควรวนซ้ำ)
- พวกเขาจำเป็นต้องปกป้องแผ่นอิเล็กโทรดด้วยชีวิตและจัดเก็บอย่างปลอดภัย โดยเฉพาะอย่างยิ่งหากถูกพบอาจทำให้พวกเขาเสียชีวิตได้
- พวกเขาจำเป็นต้องเขียนแผ่นงานที่ใช้แล้วหลังจากเกิดการเข้ารหัส/ถอดรหัส
- พวกเขาส่งข้อความที่เข้ารหัสผ่านแพลตฟอร์มอื่นที่ปลอดภัย เช่น Signal ถ้าเป็นไปได้
ขอบคุณสำหรับการติดตาม! ปลอดภัยในการสื่อสารของคุณ คุณสามารถทำซ้ำงานที่ทำที่นี่ได้อย่างง่ายดายด้วยซอฟต์แวร์ฟรี หากคุณมีข้อความที่เป็นความลับจริงๆ ที่คุณกำลังพยายามจะสื่อ
Face-sso (By K&O) หากท่านสนใจ เครื่องสแกนใบหน้ารุ่นต่างๆ หลากหลายรุ่น หรือ ติดตั้งระบบสแกนใบหน้า สามารถติดต่อสอบถามได้โดยตรง เรามีแอดมินคอยคอบคำถาม 24 ชั้วโมงที่ Line OA เครื่องสแกนใบหน้า สามารถ ขอราคาพิเศษได้ ตามงบประมาณที่เหมาะสม สอบถามได้สบายใจทั้ง เรื่องค่าบริการ ราคา และ งบประมาณ มั่นใจเพราะเป็นราคาที่สุด คุ้มค่าที่สุด
หากท่านมีความสนใจ บทความ หรือ Technology สามารถติดต่อได้ตามเบอร์ที่ให้ไว้ด้านล่างนี้
Tel.086-594-5494
Tel.095-919-6699