Shareware Review - March 1997

Kelvinator

That's right.....Its the Kelvinator the first AutoLISP encryption utility created by Kelvin R. Throop in 1987. Following the release of AutoCAD version 2.1, independent developers began to create complex applications employing the AutoCAD menu macro language and the Variables and Expressions feature as an embedded programming language. With the release of version 2.18, which introduced the AutoLISP programming language, AutoCAD became a fully programmable and extensible system.

From inception, AutoCAD's open architecture has been intended to encourage outside developers and individual users to customize AutoCAD and implement applications for diverse markets. Since menu macros and AutoLISP routines are interpreted languages, applications must be shipped in source code form, and Autodesk recognized the need to protect the developers of these applications from theft of their proprietary products. Encryption of menu macros and AutoLISP programs was implemented and made available to authorized developers. This encryption never purported to be particularly secure, but it does prevent casual examination of distributed code. The fact that the encryption program is made available to hundreds of developers who cannot always prevent its further distribution makes penetration by reverse engineering of the program or a known-plain text attack inevitable should somebody be so callous as to steal the work of developers and undermine the viability of their businesses.

A SECOND LAYER OF PROTECTION.

Since encrypting files cannot provide total security, a second level of defense was called for. The Kelvinator is a program which translates an AutoLISP program into a form which is essentially gibberish when examined by a human but which should execute identically to the original program. Thus, if the distributed program is decrypted, the resulting source code will be little use to the looter. Kelvination of a program consists of:

1) Deleting comments.
2) Translating variable names into gibberish.
3) Removing indentation and line breaks.

As an example of the consequences of Kelvination, the following AutoLISP program was processed and the output of the Kelvinator is as follows, line breaks have been manually inserted: there were none in the actual output file.

(DEFUN Qj(Q@ QQ Ql Q& / Q1 Q# Q0 Q$ QO Q| Q% Q?j)(SETQQ?j(GETVAR"cmdecho"))(SETQ
Q%(GETVAR"blipmode"))(SETVAR"blipmode"0)(SETVAR"cmdecho"0)(SETQQ|(* 3.141596235 2))(SETQ Q$(/ Q|
Q&))(SETQ QO(/ Ql Q&))(SETQ Q1 0.0)(SETQQ# 0.0)(COMMAND"pline"QQ)(REPEATQ@(REPEAT Q&(SETQ Q0(POLAR QQ(SETQ Q1(+Q1 Q$))(SETQ Q#(+ Q# QO))))(COMMANDQ0)))(COMMAND)(SETVAR"blipmode"Q%)(SETVAR"cmdecho"Q?j)NIL)(DEFUNC:SPIRAL(/ Qjj Q@j QQjQlj)(PROMPT"\nCentre point: ")(SETQQ@j(GETPOINT))(PROMPT"\nNumber of rotations: " )(SETQQjj(GETINT))(PROMPT"\nGrowth perrotation: ")(SETQ QQj(GETDISTQ@j))(PROMPT"\nPoints per rotation: ")(SETQ Qlj(GETINT))(COND((NULLQlj)(SETQ Qlj 30)))(Qj Qjj Q@j QQj Qlj))

The Kelvinator was very easy to install, just download the file and unzip it to its own directory. The Kelvinator is a DOS application and it will run in the DOS window in Widows 95 and Windows NT 4.0. To encrypt an AutoLISP routine, at the DOS prompt, simply type in "kelv filename >output file name.lsp" without the quotes. You will need to add what ever extension (.lsp is not a given) you use for your AutoLISP routines.

This a freeware application, at one time it was distributed on the AutoCAD development disk set that shipped before release 9.0, but then it disappeared.

Send comments or questions about PAUG to mail05@paug.org.
Send comments or questions about this Web Site to webmaster05@paug.org.
Post AutoCAD questions at http://forum.paug.org/.
Revised: Wednesday, 30. November 2005.