The Blowfish Encryption Algorithm
Downloads
Filename: labview_blowfish_encryption.zip
Requirements: View
The Blowfish Encryption Algorithm
Block cipher: 64-bit block
Variable key length: 32 bits to 448 bits
Designed by Bruce Schneier
Much faster than DES and IDEA
Unpatented and royalty-free
No license required
Blowfish is a symmetric block cipher that can be used as a drop-in replacement for DES or IDEA. It takes a variable-length key, from 32 bits to 448 bits, making it ideal for both domestic and exportable use. Blowfish was designed in 1993 by Bruce Schneier as a fast, free alternative to existing encryption algorithms. Since then it has been analyzed considerably, and it is slowly gaining acceptance as a strong encryption algorithm. Blowfish is unpatented and license-free, and is available free for all uses.
As far as I know this is the first implementation of the Blowfish Algorithm in LabVIEW. With this set of subvi's one can encrypt data in LabVIEW without the need of external software. This can be used to send data securely over Data socket as well as TCP and UDP communications. And also protect remote control systems from unauthorized access, by encrypting the control communications.
I have added compatibility for the basic blowfish functions with other implantations. And fixed a couple of bugs. Also added a self-test vi that should show if the vi is compatible between the PC and MAC. The "LabVIEW Blowfish Encryption.vi" uses header info to return an encrypted message back to its original length, because of this; it will likely not be directly compatible with other encryption software even though they may use the same blowfish encryption method. Without knowing what other software uses for header info, I just used what was convenient for me in LabVIEW.
I welcome any constructive commits, and bug reports can be sent to the E-mail contained in the code.
Requirements
Filename: labview_blowfish_encryption.zip
Software Requirements
Application Software: LabVIEW Professional Development System 7.0
Language(s): LabVIEW
Reader Comments | Submit a comment »
Very nice, but not the first
Very nice example Tad! Thanks for sharing
with the community. The first BlowFish
implementation I know of was done by Jeffrey
Travis about 5-6 years ago (2003) for
security on a hospital management system.
That one, however, was not released at that
time to the public. (You'd have to ask
Jeffrey). As far as I know, your's is the
first freely available version. BlowFish with
LabVIEW met FDA and HIPAA security and
privacy requirements both over intranet and
internet configurations at 128 bits, so it's
a solid choice for security.
- Michael Ashe, Imaginatics. michael.ashe@imaginatics.net - Dec 20, 2009
This is a great example. I used it in some
of my applications here to allow secure web
access to one of my LV applications.
www.incolo.com
- Sep 4, 2009
Labview6.1 look at this:
http://www.labviewforum.de/download.php?id=973&sid=24ef87408a0c0aff0561d04b1e403446
- Nov 3, 2005
missing .lsb code solved
Evaluation of the vi shows that the missing code is only
used for optional compression and decompression.
Removing this from the vi results in a vi that works on
macintosh, though without compression.
Thanks for the code.
Paul.
- Paul Schofelen, Universiteit Maastricht. p.schoffelen@hb.unimaas.nl - Dec 5, 2004
code lib is missing
I can't execute this vi, because a lib is
missing The object code file (.lsb) node
has no code to execute. in zlibdeflate.vi
- Philippe Perisset, EAWAG/ETH Swiss Federale Institute of Environmental Science and Technology. perisset@eawag.ch - Sep 19, 2004
How about LV 6.1?
It would be a great help if NI can convert
this to enable earlier version owners use
this tool.
- sheela.belur@vdtg.com - Feb 11, 2004
It works, but...
Thanks for this code.
I would like to crypt a message with this
library, and then decrypt it with php, using
mcrypt library.
The problem is that mcrypt library ask for
others parameters, and I can't find the good
parameters to decrypt propertly the message.
PHP ask for mode (ECB, EFB...) and for create
an IV.
What is the relation with this compression code?
- Toublanc, VSL. ntoublanc@vsl-schweiz.ch - Jan 22, 2004
What about users of LabVIEW 6 and 5?
There are a large number of LabVIEW users
who are using LabVIEW 5 or 6. There should
be 5x and 6x versiona available.
- Tanveer, GTCL, Petrobangla. aenigma@dhaka.net - Jan 6, 2004
Is the encryption available for the 6.1 versions?
I was wondering if the encryption vi's were
available for the 6.1 version of labview?
- Jason Lemay, Deka R&D. jlemay@dekaresearch.com - Dec 22, 2003
Very useful.
Thanks for sharing such a useful VI. I had a
couple questions though.
In the "Decipher" case, of the right most
case structure, you build an error cluster of
"Text is Empty Password is most likely
incorrect" and tests if the string length is
"0, Default". It should probably be "0", and
then the non-error case (currently set to
"1") be "Default." Otherwise I always get an
error.
Also, is compression part of the blowfish
standard? It seems like I could construct
some random plain-text that happens to be
zlib compressed that when encrypted with no
compression, and then un-encrypted with the
"compression" boolean set that I might not
get the plain-text that I was expecting (I
would get the uncompress form, rather than
the plain-text I passed in). Just curious.
Thanks!
- David Duffey, National Instruments. david.duffey@ni.com - Dec 5, 2003
Legal
This example program (this "program") has been made available by a third party, which is solely responsible for its content. National Instruments has not reviewed this program, does not support this program, and does not guarantee its quality in any way. NATIONAL INSTRUMENTS MAKES NO WARRANTIES, EXPRESS, STATUTORY OR IMPLIED, WITH RESPECT TO THIS PROGRAM, INCLUDING WITHOUT LIMITATION ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE, NON-INFRINGEMENT OF INTELLECTUAL PROPERTY, OR ANY OTHER WARRANTIES THAT MAY ARISE FROM USAGE OF TRADE OR COURSE OF DEALING. For details on terms of use or support of this program, please contact the code author or the site being referred at the top of this page. For further legal information, please visit http://ni.com/legal/termsofuse/unitedstates/us/.
