【理論原理】DYNA加密邏輯原理深度解析 自編cmd加密程序

    DYNA作為最流行的商業求解軟件之一,各大企業都在用DYNA來求解各種工程問題,企業間也經常交流傳遞DYNA求解文件,為了不泄露商業機密和模型的可計算性,DYNA開放加密接口。在DYNA的官方技術答疑網站中有對加密邏輯進行詳細的說明,鏈接如下:

https://ftp.lstc.com/anonymous/outgoing/support/FAQ/Instructions_encryption

    通過官方說明可以將加密邏輯表達為如下圖

【理論原理】DYNA加密邏輯原理深度解析 自編cmd加密程序的圖1

   上述加密邏輯圖需要了解背景及關鍵字含義如下:

   (1)DYNA加密是基于openPGP加密協議,DYNA加密公鑰在上述官網鏈接中可查,加密私鑰隱藏在求解器中

   (2)對稱加密算法,是指加密和解密使用相同的密鑰

   (3)非對稱加密算法,是指加密和解密使用不同的密鑰

   上述加密邏輯圖可以理解為以下步驟:

  (1)將求解文件分為master文件和include文件,隨機生成AES密鑰

  (2)基于openPGP加密協議,將include文件和AES密鑰進行AES對稱加密,生成AES加密文件

  (3)基于openPGP加密協議,將AES加密文件和DYNA加密公鑰進行Elgamal非對稱加密,生成Elgamal加密文件

   此時,求解文件加密完成,求解時

  (4)求解器使用DYNA加密私鑰,將Elgamal加密文件解密,得到AES加密文件和AES密鑰

  (5)求解器使用AES密鑰,將AES加密文件解密,得到include文件和AES密鑰

   上述加密邏輯簡單易實現,行業內有很多二次開發的加密小軟件,但如DYNA中國總代理商仿坤開發加密小軟件,被加入許可證書限制使用權限,李某人尊重知識產權,但私以為如此簡單的且公開的方法沒必要層層設卡,強烈建議通過前文的DYNA官方加密說明鏈接,閱讀理解后即可自行編程。

   業務繁忙的朋友,也可以通過簡單理解上述加密邏輯圖,按如下案例操作實現加密:

  (1)下載并安裝Gpg4win開源免費加密軟件(https://www.gpg4win.org/),下載時選擇捐助0元,有條件的朋友也可以適當支持一下

  (2)下載并保存DYNA加密公鑰,或將以下分割線內的DYNA公鑰用文本保存命名為lstc_pgpkey.asc


-----BEGIN PGP PUBLIC KEY BLOCK-----

Version: GnuPG v2.0.19 (GNU/Linux)

mQGiBFM61ScRBACgqz7q7kytYuuRpa+1DTD9J3Kn8s3kMHO7zPtLu8bsb1L1I4UQ

CC6HRL2fMVRtBQZuy445eqsot5npcnzpQ6rcvsQZTVCqXH/gx5O5xs6/W8ktaJXn

hBrxGabk6IzlOXYvmQ2+jOATfQs29pt4+e/+oXFI9EfKBHao2dEgtOWS6wCg+9gi

9azFZOUIHV0EJDPFQJZrRFUD/11AG23e7964MN0HTWAWCIvPs8johwB7NOF6UjRR

xuqD/ZqiQ1hhmQzJR89Weg0TeFFCVP+yK2tgPOgsXry/r7WF/RnO9S/7yvtTWHr8

QPVxCur7vcKX/Lis6ByiyyDvihavBB6RgMYl5HkrEstTY/j3O09woxtQ4Pae5yZ2

woj0BACI87Lk6aO/9wAVXBDYyufqX9bea/lbMEuQZ7qzBO7xjSwchYeoLUbCK5sh

iGI+nT3+liqUZW8+KXd/6I+xsN+YXuS9olmeN5L391VF7ZnWcsOKLbr3tnA3TKJb

Q/txpFhI/2CM2u0VU6w6DAAGlxic5Gf1Cdc8/mA5KaNEuq24PrRDTGl2ZXJtb3Jl

IFNvZnR3YXJlIFRlY2hub2xvZ3kgQ29ycG9yYXRpb24gKExTVEMpIDxzdXBwb3J0

QGxzdGMuY29tPohVBBMRAgAVAhsDAh4BAheABQJTOtVDAgsHAhYAAAoJECATgx5l

rsCu0P4An2f9h8YuWfW+mNY1gm29nIs+kbeZAJ44HMvNgfOVtqUxUCyTlCLjwR6O

CbkBDQRTOtUnEAQA4Q4D0F6l77N0e6XCIH49b7MHFyjkq3OdgHE4vylubEAXVeeX

FD4Vrojn3t/I1QqAUG4ipZZAlLVrSYruzQLYaLhjYP124Py/b6vRo0FcyVsLbazj

BxnGs+fFTrYspLaWfBK2dIrQ9ze9QSLhNous36W3em+fhx8hzGgcUUZRQOcAAwUD

/RkrdN+Mbim6H6MNnEKhoXlpogzriCUB+hpxfQSP+go6+Np2RGkQfTEu+W51vrFA

cW36cncp3OLpsvKzaQgTTT1rqb11Hoe/YpH3T9ngz4NX7a4OSDhHDKC1Q1BuzTEJ

3A3RXeAgRaMV8+hFm91g2KWZuMeqd+nSo2sb5EvpFhW9iEkEGBECAAkFAlM61ScC

GwwACgkQIBODHmWuwK7BaQCfUovuhS6oXuh+1sSqkGCxzHEGER8AniHYve/Kn6CL

SoAeXMxSC7F44Ood

=R0pG

-----END PGP PUBLIC KEY BLOCK-----


  (3)將以下代碼用文本保存命名為Encrypt.bat

gpg --import lstc_pgpkey.asc
gpg -e -a --rfc2440 --textmode --cipher-algo AES --compress-algo 0 -r 0x65AEC0AE include

  (4)將待加密文件include,DYNA公鑰文件lstc_pgpkey.asc,cmd程序Encrypt.bat放在同一目錄下

  (5)雙擊運行Encrypt.bat,在提示指令中輸入y,加密完成

  (6)在目錄下可以看到生成了include.asc加密文件

登錄后免費查看全文
立即登錄
App下載
技術鄰APP
工程師必備
  • 項目客服
  • 培訓客服
  • 平臺客服

TOP

2
1
4