ผู้ป้องกันความเป็นส่วนตัวของกนู หรือ (อังกฤษ: GNU Privacy Guard) หรือที่เรียกว่า GnuPG หรือ GPG เป็นโปรแกรมในการเข้ารหัสข้อมูล เพื่อป้องกันการบุกรุกทางข้อมูลและเพื่อทำให้ข้อมูลนั้นมีความปลอดภัยมากขึ้น
GnuPG เป็นโปรแกรมที่ออกแบบมาเพื่อใช้งานแทนทื่โปรแกรม PGP หรือ Pretty Good Privacy เนื่องจาก PGP นั้นมีข้อจำกัดเรื่องสัญญาอนุญาตและสิทธิบัตรซอฟต์แวร์ โดย GnuPG ใช้มาตรฐาน RFC 4880 ของ IETF ซึ่งเป็นมาตรฐานของ OpenPGP โดยรุ่นล่าสุดของ PGP นั้นสามารถทำงานร่วมกับ GnuPG และระบบอื่น ๆที่เป็น OpenPGP ได้ ซึ่งในตัวเวอร์ชันเก่าของ PGP ไม่สามารถสนับสนุนการทำงานของโปรแกรมได้ทั้งหมด
GPG เป็นโปรแกรมที่พัฒนาโดย Free Software Foundation โดยได้รับเงินทุนสนับสนุนจากรัฐบาลของประเทศเยอรมัน ภายใต้เงื่อนไขของเวอร์ชันที่ 3 ของ GNU General Public License ดังนั้นจึงทำให้ GPG เป็นซอฟต์แวร์เสรีที่สามารถแจกจ่ายแก้ไขดัดแปลงได้โดยเสรี
ประวัติ
GnuPG นั้นพัฒนาขึ้นโดย โดยเวอร์ชัน 1.0.0 นั้นถูกปล่อยออกมาเมื่อวันที่ 7 สิงหาคม ค.ศ 1999 (พ.ศ. 2542) และได้รับทุนสนับสนุนจากกระทรวงเศรษฐกิจและเทคโนโลยีของประเทศเยอรมัน ในการทำคู่มือการใช้งาน ทำให้สามารถใช้ในไมโครซอฟท์วินโดวส์ในปี ค.ศ. 2000
เนื่องจาก GnuPG นั้นเป็นระบบที่ทำตามมาตรฐานของ OpenPGP ดังนั้นประวัติของ OpenPGP นั้นจึงสำคัญต่อ GnuPG โดย OpenPGP ถูกออกแบบมาให้ทำงานร่วมกันกับ PGP ซึ่งเป็นโพรโทคอลที่ใช้ในการเข้ารหัสอีเมลล์ที่พัฒนาขึ้นโดย
GnuPG เวอร์ชัน 2.0 ถูกปล่อยออกมาเมื่อวันที่ 13 พฤศจิกายน ค.ศ. 2006 ซึ่งพัฒนามาจากเวอร์ชัน 1.x โดยเวอร์ชันสุดท้ายของรุ่น 1.x คือ 1.4.8 นั้นยังคงมีการพัฒนาต่อควบคู่กันกับ GnuPG 2.0 เนื่องจากมีการเปลี่ยนแปลงในสถาปัตยกรรมของโปรแกรม ซึ่งไม่เหมาะกับการใช้งานในบางประเภท
การใช้งาน
GnuPG นั้นเป็นโปรแกรมที่เสถียรและมีคุณภาพระดับนำไปใช้งานจริง สามารถใช้งานได้กับทุกระบบปฏิบัติการ โดยโปรแกรมนี้มักรวมไปกับระบบปฏิบัติการเสรี เช่น FreeBSD, OpenBSD, NetBSD และระบบปฏิบัติการลีนุกซ์เกือบทุกรายก็ว่าได้
GnuPG สามารถคอมไพล์ได้กับทุกระบบปฏิบัติการ แต่การคอมไพล์ข้ามระบบปฏิบัติการนั้นยังคงมีความยุ่งยากอยู่บ้าง เนื่องจากในแต่ละระบบปฏิบัติการนั้นมีระบบป้องกันความปลอดภัยแตกต่างกัน การปรับให้ทำงานด้วยกันได้ค่อนข้างทำได้ยาก คอมไพเลอร์ที่มีคุณภาพสูง ๆ ควรจะสร้างโปรแกรมซึ่งทำงานเข้ากับ GnuPG ในระบบปฏิบัติการอื่นๆ GnuPG มีการคอมไพล์เรียบร้อยแล้วสำหรับระบบปฏิบัติการที่เป็นที่นิยม เช่น ไมโครซอฟท์วินโดวส์ และ Mac OS X
แม้ว่าโดยพื้นฐานของโปรแกรม GnuPG นั้นเป็นเพียงแค่การทำงานบน command line interface ธรรมดา แต่ในส่วนของ front-end นั้นจะมีส่วนติดต่อผู้ใช้แบบกราฟิก (GUI) มาให้ เพื่อใช้ติดต่อกับ GnuPG เช่น การรองรับการเข้ารหัสของ GnuPG นั้นถูกรวมเข้าในโปรแกรม และ Evolution ซึ่งเป็นโปรแกรมอ่านอีเมลบน KDE และ GNOME ของลีนุกซ์ ส่วนในระบบปฏิบัติการ Mac OS X ก็มี front-end Aqua สำหรับการเข้ารหัสและจัดการกับ key พร้อม ทั้งมีโปรแกรมติดตั้ง (installer) ของ GnuPG มาให้ แอปพลิเคชันจำพวก instant messanging เช่น Psi และ สามารถเข้ารหัสข้อความอัตโนมัติถ้าเครื่องมีการติดตั้ง GnuPG ไว้แล้วแล้ว มีปลั๊กอิน Enigmail สำหรับมอซิลลาทันเดอร์เบิร์ดและ SeaMonkey และมีปลั๊กอิน กับ รองรับ มอซิลลาไฟร์ฟอกซ์
ในปี ค.ศ. 2005 G10 Code และ Intevation ได้ปล่อย ซึ่งเป็นชุดของโปรแกรมที่ประกอบด้วย GnuPG บน WinPT, Gnu Privacy Assistant (PGA) และ GnuPG plugin สำหรับ และ โดยอยู่ในรูปโปรแกรมติดตั้ง สามารถนำมาใช้กับระบบปฏิบัติการวินโดวส์ได้เกือบทุกระบบในปัจจุบัน
การทำงาน
GnuPG จะทำการเข้ารหัสข้อความโดยการใช้ (asymmetric key) 1 คู่ ซึ่งจะถูกสร้างขึ้นมาโดยผู้ใช้งาน GnuPG ซึ่ง public key ที่ได้นั้นสามารถแลกเปลี่ยนกับผู้ใช้คนอื่น ๆ ได้ด้วยวิธีต่าง ๆ กัน เช่น โดย public key นั้นจะต้องมีการแลกเปลี่ยนกันอย่างระมัดระวังเพื่อป้องกันการแก้ไขความสัมพันธ์ระหว่าง public key กับเจ้าของ สามารถเพิ่ม (digital signature) ไปกับข้อความด้วยเพื่อเป็นการรับรองให้แน่ใจได้ว่าข้อความดังกล่าวมาจากผู้ที่ต้องการติดต่อด้วยจริง และไม่มีการถูกปลอมแปลงหรือแก้ไขโดยบุคคลอื่น ถ้าหากไม่ประสงค์จะเข้ารหัสข้อความนั้น
GnuPG นั้นปราศจากข้อจำกัดเรื่องสิทธิบัตรซอฟต์แวร์ นั่นคือ GnuPG ไม่ได้ทำการเข้ารหัสด้วยอัลกอลิทึมหรือซอฟต์แวร์ที่มีแบบแผน รวมถึงอัลกอลิทึมการเข้ารหัสของ IDEA ซึ่งเป็นรูปแบบที่รวมอยู่ใน PGP ตั้งแต่เริ่มแรกแล้ว แต่จะใช้อัลกอลิทึมที่ไม่ปัญหาเรื่องสิทธิบัตร เช่น , , AES, Blowfish และ แต่ยังสามารถที่จะใช้ IDEA ใน GnuPG โดยการดาวน์โหลดปลั๊กอินมา ซึ่งจะต้องขอลิขสิทธิ์การใช้ที่ถูกต้องด้วยหากใช้งานในประเทศที่สิทธิบัตรของ IDEA มีผลบังคับใช้
GnuPG เป็นโปรแกรมเข้ารหัสแบบผสม ซึ่งใช้ (symmetric key) เพื่อช่วยให้มีความเร็วในการเข้ารหัส และกุญแจสาธาระณะ(public key) มาช่วยในการแลกเปลี่ยนกุญแจ โดยการใช้ public key ของผู้รับเพื่อใช้ในการเข้ารหัสใน session key ซึ่งจะใช้เพียงแค่ครั้งเดียว การทำงานแบบนี้เป็นส่วนหนึ่งของมาตรฐานของ OpenPGP และเป็นส่วนหนึ่งของ PGP ตั้งแต่เวอร์ชันแรก
ปัญหา
มาตรฐานของ OpenPGP นั้นกำหนดให้ใช้ (digital signature) ได้หลายแบบ ในปี ค.ศ. 2003 มีความตั้งใจเพื่อที่จะทำให้การทำลายเซ็นดิจิทัลแบบหนึ่งใน GnuPG ซึ่งมีประสิทธิภาพและความปลอดภัยมากยิ่งขึ้น แต่เกิดข้อผิดพลาดในการเปลี่ยนแปลงทำให้ GnuPG มีช่องโหว่ทางความปลอดภัย โดยจะมีกระทบกับรูปแบบของการส่งข้อความที่ใช้ลายเซ็นดิจิทัลเพียงแค่รูปแบบเดียว ซึ่งจะเป็นเพียงแค่ GnuPG เวอร์ชัน 1.0.2 ถึง 1.2.3 เท่านั้น และมี key ที่มีปัญหาน้อยกว่า 1000 key ลายเซ็นดิจิทัลรูปแบบนี้เป็น แบบที่ไม่นิยม จึงทำให้เกิดความเสียหายน้อย และรูปแบบดังกล่าวก็ถูกลบจาก GnuPG ในเวอร์ชันตั้งแต่เวอร์ชัน 1.2.4 เป็นต้นไป ปัญหาอีกอย่างอย่างที่พบในต้นปี ค.ศ. 2006 นั้นก็คือ ปัญหาแรกคือการตรวจสอบสายเซ็นโดยใช้ GnuPG ผ่าน script อาจทำให้ผลออกมาว่าลายเซ็นถูกต้องทั้งที่ไม่ควรที่จะเป็น ปัญหาที่สองคือข้อความที่ไม่ใช้ MIME มีการเพิ่มข้อมูล จะรายงานว่าเป็นส่วนหนึ่งของข้อความที่เซ็นแล้วด้วย ปัญหาทั้งสองก็ประกาศออกมาพร้อมกับ GnuPG ที่ปรับปรุงแล้ว
GnuPG เป็นระบบแบบ command line ที่ไม่ได้เขียนให้เป็น API ที่สามารถจะทำงานร่วมกับซอฟต์แวร์ตัวอื่นได้ มี ที่ทำตัวเป็น API wrapper โดยตีความผลลัพธ์จาก GnuPG และยังมีการสร้าง front end แบบกราฟิกหลายตัวด้วย วิธีนี้ทำให้ต้องเรียกโปรแกรม GnuPG สำหรับการเรียกใช้ API ของ GPGME แต่เนื่องจาก GPGME ได้นำอินเทอร์เฟสของ GnuPG ที่ออกแบบมาโดยเฉพาะสำหรับให้โปรแกรมติดต่อซึ่งกันและกัน จึงทำให้ API มีความเสถียร ปัญหาในเรื่องความปลอดภัยก็ยากที่จะเกิดขึ้นเนื่องจากปัญหาในโปรแกรมประยุกต์จะไม่กระทบถึงโค้ดการเข้ารหัสถอดรหัสจริง เนื่องอยู่คนละ process กัน
ตัวอย่างคำสั่งในโปรแกรม
gpg --gen-key ใช้สร้าง keypair ขึ้นมา 1 ชุด เลือกได้ว่าจะทำเป็น DSA หรือ RSA และ กำหนดอายุของ key ชุดนี้ การกำหนดอายุของ key ช่วยป้องกันการ brute force ได้ด้วย
gpg -s เพื่อ ใส่ลายเซ็นดิจิตัลใน file นั้นๆ
gpg -e -r name (doc) ใช้สำหรับเข้ารหัส file ที่ต้องการ
gpg -d name ใช้สำหรับถอดรหัส file นั้นออกมา
gpg -f name ใช้สำหรับดู ลายนิ้วมือ (Fingerprint) ว่าถูกต้องหรือไม่
gpg -import name ใช้นำkey ที่ได้รับมาจากผู้ที่ติดต่อด้วยไปเก็บไว้ใน public key ring
gpg --output name.gpg -export name ใช้นำ key ออกจาก ไปเก็บไว้ใน output ที่ต้องการ
ตัวอย่างการใช้โปรแกรมในการติดต่อกันระหว่างผู้ใช้
ถ้า A ต้องการติดต่อกับ B
1.เริ่มแรกให้ทำการสร้าง key ขึ้นมา 1 คู่เพื่อใช้ในการติดต่อ
gpg --gen-key
โดย key ที่สร้างขึ้นมาได้จะมี Pub คือ กุญแจสาธารณะ (public key) กับ uid คือกุญแจส่วนตัว (private key)
2.นำ key ที่ได้ไปเก็บไว้ยังไฟล์ที่ต้องการจะส่งไปให้ B
gpg --output name -export keyid
มีการแลกเปลี่ยน key กัน โดยสามารถทำผ่านทาง key server หรือ ส่ง Email(จดหมายอิเล็กทรอนิก)ก็ได้
gpg --send-keys KeyID
3. B ไป download key จาก key server หรือจาก email ที่ได้รับ แล้วนำไปเก็บไว้ใน public key ring เพื่อใช้ในการถอดรหัสข้อความที่ถูกเข้าได้ public key
gpg -import name
B สามารถตรวจสอบ fingerprint ของ A ได้โดยคำสั่ง
gpg -f name
4.A ทำการเข้ารหัสข้อความด้วย key ที่สร้างไว้ จากนั้นส่งข้อความที่เข้ารหัสแล้วไปให้ B
gpg -e -r name doc
5.B ได้รับข้อความและถอดรหัสออกมาดูได้ด้วย private key ที่ได้รับมาจาก A
gpg -d name
อ้างอิง
- GnuPG 2.0 releases Werner Koch, November 13, 2006
- GnuPG's ElGamal signing keys compromised Werner Koch, November 27, 2003
- A Short History of the GNU Privacy Guard Werner Koch, December 20, 2007
wikipedia, แบบไทย, วิกิพีเดีย, วิกิ หนังสือ, หนังสือ, ห้องสมุด, บทความ, อ่าน, ดาวน์โหลด, ฟรี, ดาวน์โหลดฟรี, mp3, วิดีโอ, mp4, 3gp, jpg, jpeg, gif, png, รูปภาพ, เพลง, เพลง, หนัง, หนังสือ, เกม, เกม, มือถือ, โทรศัพท์, Android, iOS, Apple, โทรศัพท์โมบิล, Samsung, iPhone, Xiomi, Xiaomi, Redmi, Honor, Oppo, Nokia, Sonya, MI, PC, พีซี, web, เว็บ, คอมพิวเตอร์
phupxngknkhwamepnswntwkhxngknu hrux xngkvs GNU Privacy Guard hruxthieriykwa GnuPG hrux GPG epnopraekrminkarekharhskhxmul ephuxpxngknkarbukrukthangkhxmulaelaephuxthaihkhxmulnnmikhwamplxdphymakkhun GnuPG epnopraekrmthixxkaebbmaephuxichnganaethnthuopraekrm PGP hrux Pretty Good Privacy enuxngcak PGP nnmikhxcakderuxngsyyaxnuyataelasiththibtrsxftaewr ody GnuPG ichmatrthan RFC 4880 khxng IETF sungepnmatrthankhxng OpenPGP odyrunlasudkhxng PGP nnsamarththanganrwmkb GnuPG aelarabbxun thiepn OpenPGP id sungintwewxrchnekakhxng PGP imsamarthsnbsnunkarthangankhxngopraekrmidthnghmd GPG epnopraekrmthiphthnaody Free Software Foundation odyidrbenginthunsnbsnuncakrthbalkhxngpraethseyxrmn phayitenguxnikhkhxngewxrchnthi 3 khxng GNU General Public License dngnncungthaih GPG epnsxftaewresrithisamarthaeckcayaekikhddaeplngidodyesriprawtiGnuPG nnphthnakhunody odyewxrchn 1 0 0 nnthukplxyxxkmaemuxwnthi 7 singhakhm kh s 1999 ph s 2542 aelaidrbthunsnbsnuncakkrathrwngesrsthkicaelaethkhonolyikhxngpraethseyxrmn inkarthakhumuxkarichngan thaihsamarthichinimokhrsxfthwinodwsinpi kh s 2000 enuxngcak GnuPG nnepnrabbthithatammatrthankhxng OpenPGP dngnnprawtikhxng OpenPGP nncungsakhytx GnuPG ody OpenPGP thukxxkaebbmaihthanganrwmknkb PGP sungepnophrothkhxlthiichinkarekharhsxiemllthiphthnakhunody GnuPG ewxrchn 2 0 thukplxyxxkmaemuxwnthi 13 phvscikayn kh s 2006 sungphthnamacakewxrchn 1 x odyewxrchnsudthaykhxngrun 1 x khux 1 4 8 nnyngkhngmikarphthnatxkhwbkhuknkb GnuPG 2 0 enuxngcakmikarepliynaeplnginsthaptykrrmkhxngopraekrm sungimehmaakbkarichnganinbangpraephthkarichnganGnuPG nnepnopraekrmthiesthiyraelamikhunphaphradbnaipichngancring samarthichnganidkbthukrabbptibtikar odyopraekrmnimkrwmipkbrabbptibtikaresri echn FreeBSD OpenBSD NetBSD aelarabbptibtikarlinuksekuxbthukraykwaid GnuPG samarthkhxmiphlidkbthukrabbptibtikar aetkarkhxmiphlkhamrabbptibtikarnnyngkhngmikhwamyungyakxyubang enuxngcakinaetlarabbptibtikarnnmirabbpxngknkhwamplxdphyaetktangkn karprbihthangandwyknidkhxnkhangthaidyak khxmiphelxrthimikhunphaphsung khwrcasrangopraekrmsungthanganekhakb GnuPG inrabbptibtikarxun GnuPG mikarkhxmiphleriybrxyaelwsahrbrabbptibtikarthiepnthiniym echn imokhrsxfthwinodws aela Mac OS X aemwaodyphunthankhxngopraekrm GnuPG nnepnephiyngaekhkarthanganbn command line interface thrrmda aetinswnkhxng front end nncamiswntidtxphuichaebbkrafik GUI maih ephuxichtidtxkb GnuPG echn karrxngrbkarekharhskhxng GnuPG nnthukrwmekhainopraekrm aela Evolution sungepnopraekrmxanxiemlbn KDE aela GNOME khxnglinuks swninrabbptibtikar Mac OS X kmi front end Aqua sahrbkarekharhsaelacdkarkb key phrxm thngmiopraekrmtidtng installer khxng GnuPG maih aexpphliekhchncaphwk instant messanging echn Psi aela samarthekharhskhxkhwamxtonmtithaekhruxngmikartidtng GnuPG iwaelwaelw miplkxin Enigmail sahrbmxsillathnedxrebirdaela SeaMonkey aelamiplkxin kb rxngrb mxsillaifrfxks inpi kh s 2005 G10 Code aela Intevation idplxy sungepnchudkhxngopraekrmthiprakxbdwy GnuPG bn WinPT Gnu Privacy Assistant PGA aela GnuPG plugin sahrb aela odyxyuinrupopraekrmtidtng samarthnamaichkbrabbptibtikarwinodwsidekuxbthukrabbinpccubnkarthanganGnuPG cathakarekharhskhxkhwamodykarich asymmetric key 1 khu sungcathuksrangkhunmaodyphuichngan GnuPG sung public key thiidnnsamarthaelkepliynkbphuichkhnxun iddwywithitang kn echn ody public key nncatxngmikaraelkepliynknxyangramdrawngephuxpxngknkaraekikhkhwamsmphnthrahwang public key kbecakhxng samarthephim digital signature ipkbkhxkhwamdwyephuxepnkarrbrxngihaenicidwakhxkhwamdngklawmacakphuthitxngkartidtxdwycring aelaimmikarthukplxmaeplnghruxaekikhodybukhkhlxun thahakimprasngkhcaekharhskhxkhwamnn GnuPG nnprascakkhxcakderuxngsiththibtrsxftaewr nnkhux GnuPG imidthakarekharhsdwyxlkxlithumhruxsxftaewrthimiaebbaephn rwmthungxlkxlithumkarekharhskhxng IDEA sungepnrupaebbthirwmxyuin PGP tngaeterimaerkaelw aetcaichxlkxlithumthiimpyhaeruxngsiththibtr echn AES Blowfish aela aetyngsamarththicaich IDEA in GnuPG odykardawnohldplkxinma sungcatxngkhxlikhsiththikarichthithuktxngdwyhakichnganinpraethsthisiththibtrkhxng IDEA miphlbngkhbich GnuPG epnopraekrmekharhsaebbphsm sungich symmetric key ephuxchwyihmikhwamerwinkarekharhs aelakuyaecsatharana public key machwyinkaraelkepliynkuyaec odykarich public key khxngphurbephuxichinkarekharhsin session key sungcaichephiyngaekhkhrngediyw karthanganaebbniepnswnhnungkhxngmatrthankhxng OpenPGP aelaepnswnhnungkhxng PGP tngaetewxrchnaerkpyhamatrthankhxng OpenPGP nnkahndihich digital signature idhlayaebb inpi kh s 2003 mikhwamtngicephuxthicathaihkarthalayesndicithlaebbhnungin GnuPG sungmiprasiththiphaphaelakhwamplxdphymakyingkhun aetekidkhxphidphladinkarepliynaeplngthaih GnuPG michxngohwthangkhwamplxdphy odycamikrathbkbrupaebbkhxngkarsngkhxkhwamthiichlayesndicithlephiyngaekhrupaebbediyw sungcaepnephiyngaekh GnuPG ewxrchn 1 0 2 thung 1 2 3 ethann aelami key thimipyhanxykwa 1000 key layesndicithlrupaebbniepn aebbthiimniym cungthaihekidkhwamesiyhaynxy aelarupaebbdngklawkthuklbcak GnuPG inewxrchntngaetewxrchn 1 2 4 epntnip pyhaxikxyangxyangthiphbintnpi kh s 2006 nnkkhux pyhaaerkkhuxkartrwcsxbsayesnodyich GnuPG phan script xacthaihphlxxkmawalayesnthuktxngthngthiimkhwrthicaepn pyhathisxngkhuxkhxkhwamthiimich MIME mikarephimkhxmul caraynganwaepnswnhnungkhxngkhxkhwamthiesnaelwdwy pyhathngsxngkprakasxxkmaphrxmkb GnuPG thiprbprungaelw GnuPG epnrabbaebb command line thiimidekhiynihepn API thisamarthcathanganrwmkbsxftaewrtwxunid mi thithatwepn API wrapper odytikhwamphllphthcak GnuPG aelayngmikarsrang front end aebbkrafikhlaytwdwy withinithaihtxngeriykopraekrm GnuPG sahrbkareriykich API khxng GPGME aetenuxngcak GPGME idnaxinethxrefskhxng GnuPG thixxkaebbmaodyechphaasahrbihopraekrmtidtxsungknaelakn cungthaih API mikhwamesthiyr pyhaineruxngkhwamplxdphykyakthicaekidkhunenuxngcakpyhainopraekrmprayuktcaimkrathbthungokhdkarekharhsthxdrhscring enuxngxyukhnla process kntwxyangkhasnginopraekrmgpg gen key ichsrang keypair khunma 1 chud eluxkidwacathaepn DSA hrux RSA aela kahndxayukhxng key chudni karkahndxayukhxng key chwypxngknkar brute force iddwy gpg s ephux islayesndicitlin file nn gpg e r name doc ichsahrbekharhs file thitxngkar gpg d name ichsahrbthxdrhs file nnxxkma gpg f name ichsahrbdu layniwmux Fingerprint wathuktxnghruxim gpg import name ichnakey thiidrbmacakphuthitidtxdwyipekbiwin public key ring gpg output name gpg export name ichna key xxkcak ipekbiwin output thitxngkartwxyangkarichopraekrminkartidtxknrahwangphuichtha A txngkartidtxkb B 1 erimaerkihthakarsrang key khunma 1 khuephuxichinkartidtx gpg gen key ody key thisrangkhunmaidcami Pub khux kuyaecsatharna public key kb uid khuxkuyaecswntw private key 2 na key thiidipekbiwyngiflthitxngkarcasngipih B gpg output name export keyid mikaraelkepliyn key kn odysamarththaphanthang key server hrux sng Email cdhmayxielkthrxnik kid gpg send keys KeyID 3 B ip download key cak key server hruxcak email thiidrb aelwnaipekbiwin public key ring ephuxichinkarthxdrhskhxkhwamthithukekhaid public key gpg import name B samarthtrwcsxb fingerprint khxng A idodykhasng gpg f name 4 A thakarekharhskhxkhwamdwy key thisrangiw caknnsngkhxkhwamthiekharhsaelwipih B gpg e r name doc 5 B idrbkhxkhwamaelathxdrhsxxkmaduiddwy private key thiidrbmacak A gpg d namexangxingGnuPG 2 0 releases Werner Koch November 13 2006 GnuPG s ElGamal signing keys compromised Werner Koch November 27 2003 A Short History of the GNU Privacy Guard Werner Koch December 20 2007