The zip file which contains both of the executables also contains many other files and a folder which will assist you in getting up to speed with Yull.
There are 115 files in the SAMPLESOURCEFILES folder. You can modify these files as you wish, or not use them at all or delete them completely. They are there so you can practice with YULL without impacting your own files.
Yull encrypts and decrypts files. For encrypting, Yull takes your source file and outputs an encrypted file. Yull does not care what the source file is. It can be a jpg, a PDF, a text file, a web page, a Word file, or some other file. It doesn't matter. Yull treats all files the same.
By default, the encrypted file will have the same name as the original file. You can customize this on the Options page by specifying an extension for encrypted files (like "OUT"). Yull takes your encrypted file and outputs a decrypted file. If the encrypted file ends in .OUT, Yull will normally remove that extension. Yull can operate anywhere on your computer. If its location is on the PATH then you need only run it. Otherwise, like any other executable, you need the complete path to Yull (either version).
Because encrypting and decrypting are such critical functions, Yull always requires a complete path to your source file. You will see how the file paths can be also constructed from the options file (discussed shortly).
The four elements Yull uses are the source file, the output directory, the key and the options. It is easy to see and modify the options in the GUI app. They are on the options tab. Also, in most places, F1 will bring up a help screen about where you are.
YULL is very CPU intensive. Your CPU (or Core) will go to
100% while Yull encrypts or decrypts. Also, note that Yull can run a file
through millions, even billions of encryptions. This can take some time. This is not a problem for
YULLG(version 2.01 or above), which is multi-threaded,
so the application will always remain responsive.
There are LEVELS on the option tab of the GUI app which
prepackage the options, basically making a series of
tradeoffs, from MAX encryption, meaning lots of encrypts and lots of time, to
TINY, which is relatively minimal, to PLANK, which is extremely fast. You can override these options as you please. But
if you need MAX level, be prepared to let Yull run for a while.
Note that (as far as I can determine), a file encrypted with the PLANK level looks pretty much the same as that with the MAX level.
Here is a comparison of the number of encrypts and times for the file 256, which is 12,288 bytes long (note: results may be different on your computer):
LEVEL ENCRYPTS TIME PLANK 990,829 0.322 seconds TINY 2,421,090 0.473 seconds NORMAL 14,815,328 3.333 seconds MAX 27,024,606 6.626 seconds
Even with the PLANK level, there are almost one million encrypts.
Each time the data enters an encryption function, a counter is incremented. That's how the number of encrypts is counted.
Here are the files included with the distribution: Click here to show files included with the zip distribution.
Yull does not require any setup. There is nothing to install so Yull is ready to go once you have unzipped the files. BUT Yull needs at least a key file in order to work. You could select any file as your key limited only by the size being between 100 and 10000 bytes. Yull encrypts the key before using it (only used at runtime) so even a text file can be used as a key. But with encryption, more randomness is always better, so files created specifically to be a key are the best. You can create such files with Yull.
The easiest way to create your default folder and key is run YULLG, and select Create Default Folder from the Settings Menu and follow the prompts. See "Default Folder and Key" a bit below this.
If you are distributing Yull to many hosts in a company as part of a job you can excute
YULL.EXE to do this.
Note also that YULL DOES NOT REQUIRE A CONNECTION TO THE INTERNET. There is a link on the Help Menu to this web page.
Regardless of whether you use YULL.EXE or YULLG.EXE, Yull needs at least to know the source file and its location, the output location and the key. You either supply Yull with the complete path to the source file and the complete path to the output folder (or file), or give YULL enough information to construct it on its own. There are various parameters which will help you do this. If no options are specified, YULL uses the default options which are those for the NORMAL encryption level. But the default options contain no path information.
The same criteria apply to the key. Yull must be able to
find the key. Whether it's the default key in the default location or some
other place, Yull cannot run encrypt or decrypt without a key.
You can instruct Yull (both yull.exe and yullg.exe) to create your default folder and key. The folder is located in:
You can see what your
is by running CMD.EXE (the DOS box), typing in
ECHO %HOMEPATH% at the prompt and pressing
Once Yull creates your default folder you can instruct it to
create your default key. This can be a key of any size between 100 and 10,000 bytes (defaults to 1024
bytes). The default key MUST be named <username>.key. Yull will do that
for you. If you are logged into Windows as, say, Lucy, your default key is
lucy.key. Yull can use the key
to encrypt and decrypt files but of course you can use other files for a key (or instruct Yull to create it for you). YOU ALWAYS NEED THE SAME KEY TO ENCRYPT AND
DECRYPT. So always guard your key carefully.
NOTE: This only applies to your DEFAULT FOLDER AND KEY. You
can use any folders you like and any key you like with the size of the key
between 100 and 10,000 bytes. The key can be named anything, even a name like
mscorlib32A.DLL so it will seem like a Windows system file. The default folder
and key is just for your convenience.
If you don't like using a folder located on your
%HOMEPATH%\AppData\Local\YullEncryption, you can add a line to your Options file:
This will set your default encrypt OUTPUT and your default DECRYPT input folder to the desired location.
You could do this by individually setting your folders, as well.
NOTE: Your default key and your default history file will remain in the default location,
Of course, you and use any file you want as your key in any reachable location (size must be between 100 and 10,000 bytes).
The default options are only there for your convenience. You can ignore them easily. Set your source and output locations as you want.
Besides the Key and the Source file and destination folder, Yull uses options. There are default options, meaning, if you don't set any options, Yull sets them. They are required. There are a lot of options. Luckily, Yull can use an Options File. This is just a text file with the options in them, one to a line. There are examples below.
You can easily package your options into an options file when running YullG. With Yull.exe, the Console app, you cannot. Here's an example of an options file:
ENCRYPTSOURCEDIR="n:\source" DECRYPTOUTPUTDIR="n:\final" DECRYPTSOURCEDIR="n:\output" ENCRYPTOUTPUTDIR=n:\output LEVEL=PLANK WRITEHISTORY YULLDECIDESDUMMYDATA OVERWRITEMODE=OVERWRITE PDATA=IT'S GREAT TO KNOW YOUR DATA IS SAFE DATAGRIDDEFAULT=Include
Once this options file is loaded into Yull, it becomes:
The options file was created by the graphical executable YULLG.Exe but it's just a text file. Lines that contain nothing are ignored. Lines that begin with -- are ignored. If Yull cannot parse the first word on the line it will ignore that line.
But if you have a line like:
Yull will abend the options loading process (in the GUI app) or quit (in the Console app) as it cannot cast "BIG DADDY" to an integer value:
YULL is very picky about the options. They are critical and you don't want
YULL making guesses. It needs to be done correctly, so
YULL will error out when attempting to load or parse an invalid options file.
YULL will tell you why there was a failure.
In general, if Yull cannot understand an option (from the options file or the command line), it will abend the options loading process as the user (you) need to be very sure what you are doing.
You must use the same
options file for both encrypting and decrypting. The default direction is
encryption so to encrypt files with an options file all you need to do (with
the Console app) is:
to encrypt the file "256". "options" is the name of the options file (the name and location are arbitrary). There must be a complete path to the source file and, except for the USEDEFAULTOPTIONS switch, a complete path to the options file.
Note that if the source directory was included in the options file, you would only need this on the command prompt:
yull in=256 @options
All the options are available on the Options tab of
Here's the Options and what they represent:
There are two types of options: Switches and Parameters. Switches evaluate to true just by their presence. Parameters are of the form: Parameter=xxx.
Most of the parameters are self-explanatory except for ReadOrder and Dummy Data.
This is a numerical parameter that is used to determine the read order. When Yull encrypts (and decrypts) files, it reads the data out of disk, or natural, order. So if a file will be read in 100 reads, Yull determines the order of the reads, in part based on this parameter. It is numeric but there is no sense one value is greater or lesser than another.
There are six possible values: MAX, NORMAL, FAST, NEURO, TINY, and PLANK. When you set them in the GUI, the values for Max and Min Buff Size, Max and Min Rounds, and Read Order will change accordingly. In the above Options file, while the LEVEL is TINY, this options file will overwrite those value with their own, in effect negating the Encryption LEVEL to an extent. Internally, during processing the Encryption Level is evaluated to determine the way the file is processed.
PLANK is defined as: In physics, the Planck length, denoted lP, is a unit of length, equal to 1.616199(97)x10-35 metres. It is a base unit in the system of Planck units, developed by physicist Max Planck. The Planck length can be defined from three fundamental physical constants: the speed of light in a vacuum, the Planck constant, and the gravitational constant. And nothing really much to do with Yull except it seems pretty cool.
If your options are invalid processing will stop.
Yull adds dummy or random data to each read. This is why the encrypted file is larger than the original file. Valid range is 20-100.
Here's the complete options list. Note that the / switches appear in the options file without the /. Their presence evaluates to true for that option.
This is Personal Data. It is not a password. You do not have
to use PDATA or you do not have to store PDATA in an options file. You can instruct
YULL to ask for your PDATA at runtime.
If you do not define your own PDATA,
YULL will construct your PDATA from some of your options.
YULL uses your PDATA to encrypt your key at runtime, which happens automatically. That is why just stealing the key and the program is not sufficient. Without your PDATA, the key is useless. Again, you do not have to do anything with PDATA if you don't want to, however it is an important security measure.
You can store your PDATA in the Options file and you can encrypt the options file as well. If you don't store the PDATA but still want to use it, check the ASK FOR PERSONAL DATA and when
YULL encrypts or decrypts it will ask you for your PDATA.
YULL will NOT validate your PDATA.
If you type
YULL on the command line (for the Console Version), you will see this print out to the screen:
All arguments are case-insensitive.
Yull Data Encryption. Version 1.50 Copyright (c) 2010-2016 Ronald Gans. All rights reserved. Yull takes 19 possible parameters and 17 switches: Parameters are arguments that take a value like in=file or keysize=590 Switches are preceded by a forward slash / and take no other value. Their presence evaluates to true for that switch. All arguments are case-insensitive. NOTE: ALL PARAMETERS CAN BE PLACED INTO AN OPTIONS FILE SO THE COMMAND LINE CAN BE AS SIMPLE AS Yull in=file @options or Yull in=file /usedefaultoptions. in= input file. A simple file spec. Wildcards are accepted. out= This is the output file. Note: It is better to let Yull decide where the output file goes based on other parameters. ENCRYPTSOURCEDIR= The source dir for encryption. Can be omitted if the source file contains a complete path. ENCRYPTOUTPUTDIR= The output dir of encryption. DECRYPTSOURCEDIR= The source dir for decryption. DECRYPTOUTPUTDIR= The output dir for decryption. DIRECTION= either ENCRYPT or DECRYPT. See the Readme file. for more details. /ASKFORKEY Yull will ask you for the key at runtime. /encrypt Encrypt (the default) Can be replaced by DIRECTION /decrypt Decrypt Can be replaced by DIRECTION key= Complete path to the key. maxrounds= A positive integer that indicates the maximum number of rounds. minrounds= A positive integer that indicates the minimum number of rounds. keysize= A positive integer that indicates the key size Only used if no key file is specified. keydir= The full path to the key directory if you want Yull to create the key and put it in that folder. Only used during encryption. And files are encrypted with it *****if you overwrite it those encrypted files will be *****undecryptable. MAXBUFFSIZE= Specify the maximum size of the read buffer. MINBUFFSIZE= Specify the minimum size of the read buffer. DUMMYDATAAMOUNT= Specify the amount of dummy data added to each read. defaultencryptext= Specify the default encryption extension. defaultdecryptext= Specify the default decryption extension. READORDER= A number between 3 and 254. Used to configure the read order. see the GUIDE on line for more about this. PDATA = Your personal data. Max 200 characters. Used to encrypt your key during operation. ASKPDATA = Yull will ask you to supply your personal data. Not stored. See the web site for how Personal Data affects Yull. LEVEL= This is the Encryption Level. It can take one of 6 values: FAST Yull decides read size and rounds biased toward speed. MAX Yull decides read size ands rounds biased toward max security. NORMAL This is the default. Between FAST and MAX. NEURO This is a faster mode. Everything biased towards speed. TINY This is the second fastest mode. PLANK This is the fastest mode. KEYSTARTPOS An integer between 0 and length of the key-100. KEYENDPOS An integer between 100 and length of the key Yull will only use the portion of the key between these two numbers. /YullDecidesDummyData /YullDecidesReadOrder /NoQuestions Yull will not ask you questions. /UseDefaultKey If you have created a default key. If not you can use the command: createdefaultKey /createDefaultKey See http://YullEncryption.com/Guide and search for Default Key /useDefaultFolder Use your default user folder for output. /createDefaultFolder See http://YullEncryption.com/Guide and search for Default Folder /encryptOptions Encrypt your options file. yull in=filename /encryptoptions. /decryptOptions Decrypt your options file. yull in=filename /decryptoptions. /silent If present, no logged output. BUT, exceptions will be displayed. /totallysilent Nothing is displayed, not even exceptions. /shred Yull deletes the original file. /help This text. by overwriting it with random values several times, then truncating it then deleting it. -Legal Yull will display the license agreement. Yull requires at least the "in" parameter. Encrypt is true by default. Yull ignores non-parameters on the command line. Yull also reads as "options" file indicated by the "@" sign + filename. Sample options file command line: yull @optionsFile. Sample encrypt command line: Yull in=test.txt out=test.out OR Yull in=c:\myfiles\mytest.txt out=c:\myfiles\output direction=encrypt key=c:\myfiles\myfiles.key OR Yull in=*.* sourecedir=c:\myfiles\source output=c:\myfiles\output key=c:\myfiles\myfiles.key Sample decrypt command line: Yull in=c:\myfiles\myfiles.txt out=c:\myfiles\output key=c:\myfiles\myfiles.key direction=decrypt Yull in=testfile @optionsfile If no "out" parameter is specified Yull will use the "in" parameter and attach ".out" to it for the out file. If no key parameter is specified during encryption, Yull generates a key file (in-file-name.key). If no keysize is specified Yull will create a key of 1024 bytes. Use this key file for decryption. NOTE: You must use the same parameters for decryption that were used for encryption. Please read the documentation for how to use the command line arguments and what they signify.
The easiest way to create an Options file is to do so in
YullG.EXE. You can tweak the options and once you have what you want save it
either as your Default Options or to some other file. If you rather use
YULL.EXE (like in a batch file or as a job) you can use the options file to run
The options are processed in the order in which they are encountered, except for the options file which is processed last. If you want to encrypt with a particular key, say, key=x:\mykeyfile but the options file has USEDEFAULTKEY as a line and your command line is (for the Console App only):
yull @myoptions key=x:\mykeyfile
then Yull will use your default key not mykeyfile because the options file is processed last.
With YULLG, when you load your options you can see them and
you cannot specify one option in one place and another value in another place.
NOTE I use my E: drive.
Note: the file sizes are now different.
256 was 12288 bytes and the encrypted file is 15528 bytes long, the difference due to the dummy data added.
Now, to get back the original file we need only do this:
Now, 256 is one of a series of files I created that are all just ordered numbers.
You can use the included program xvi32.exe (in the zip distribution) to validate the two 256 files are the same. Or you can use the internal DOS program FC or my little helper app, fcomp.exe.
You could also run YULL.EXE with wildcards like this:
yull in=256*. @yulloptions
and Yull will encrypt all the files
matching the 256* file spec using the options in the file
yullOptions located in the current directory.
This is the start up screen for YullG. Notice there are two tabs, File and Options, and four menus, File, Options, Settings and Help.
If you place your mouse cursor on the unused area of the File tab and press F1 you get this:
And the same on the Options tab. All the fields have Context sensitive help. Additionally, there's extensive help on the web site.
When you are starting out with YullG, I recommend creating the Default Folder and Key. You do it with YULLG like this:
Select Settings=>Create Default Folder
Then select Create A Key like this:
Now you can use your Default folder and key. You can store files in your default folder if you want.
So now if you elect to use the default encryption output folder and the default decryption source folder, you will be referencing these folders.
This way all your encrypted files are in the same place, if that's how you want to work.
The thing about Yull is, to a great extent, it works the way you want it to, it does not force you to work the way it wants you to.
Now a word about the preview grid on the main tab. You can encrypt files from the GUI app in several ways. You can put one file name into the source. You can put wild cards into the source (like 256*.*). You can press "Preview Encrypt" and the Preview Grid will show all the files in the source folder (and you can do the same with decryption):
Here we've select the Default Folder as our destination for encryption and the default folder for decryption. There are 36 files in my source folder. If you have a lot of files in the source folder and only want to work with a few of them, you can sort them by the file name and size. You can also select one or more of the entire group by clicking on the square to the left of the name. With the column header at "Exclude" when you click on a file you see will the information about the group updated.
If you pressed Encrypt now you would encrypt 35 files. BUT if you have a few files you want to work with out of a big list of files, you can click on the word "Exclude" and it will change to "Include":
So now it's 1 file included out of 36 instead of 1 file excluded out of 36.
Again, Yull is designed to work with Options, so package your options in a file and save them:
YULL.EXE (the CLI app) is single-threaded. When it is busy, it is really busy. You can't
interact with the console app when it is running.
YULLG.EXE, the GUI app is not single-threaded, starting with Version 2.01. This means:
(1) You can now see a progress bar that updates.
(2) You can cancel out of a long-running process. For instance, if you started to encrypt many files and decided to abort this process, now you can.
When YULLG is encrypting (or decrypting) more than one file and it encounters an error, say, a read-only file or a device that becomes not ready, the entire process will stop.
Yull does not use a lot of memory. At rest YULLG uses
about 7 megabytes (7,000 K). When encrypting or decrypting
it might use 2000 more at most. It is not a memory hog, but it is a CPU
If you want to edit your options file in a Window then select Manage Options from the Options menu (see above). You will get this:
Check the Default Options File and press the Folder icon to go directly to your Default Folder. You can load up your default options file by clicking on the Default Options check box, pressing the File Open Icon and selecting yullOptions, the name of the Default Yull Options File.
You can edit it and save it or save as or save encrypted.
When you save your options encrypted it is important to note the key you enter is NOT SAVED ANYWHERE. SO take care of it.
How to Save Your Options Encrypted
1. Click the Save Encrypted Check Box:
2. Click Save or Save As
We'll do Save As. As soon as you click Save or Save As you will see this warning screen:
If you elect to continue by pressing YES you will get this screen:
and then this screen:
You will have to enter your password twice just to make sure. And that's that.
Check back on the web site for more additions to the this Guide.
I urge you to use the files in the SOURCE directory to get a
feel about how Yull works.
YULL-REG.EXE program is included with the standard
YULL-REG will add
DECRYPT entries to the Windows Explorer context menu, meaning the right-click set of selections in Windows Explorer. The program must be run in Administrator mode and some enterprises might want to reserve that privilege for actual Admins. While the context choices are available for all users on that computer, the selections will only be operational for those users who have set up the Yull Default Folder and options file called
YULL context menu selections only depend upon the default folder and default options file. The options file can point to wherever the user wants and whatever key the user wants to us.
I have worked on Yull since 2005. I hope you find it useful and welcome any feedback, good or bad. Please contact me at firstname.lastname@example.org