Academic Company Events NI Developer Zone Support Solutions Products & Services Contact NI MyNI

Document Type: Customer Submitted Example
Contributor Name: Tad Taylor
Contributor Company: Blue Road Research
NI Supported: No
Publish Date: Sep 6, 2006

The Blowfish Encryption Algorithm

567 ratings | 4.95 out of 5
Print

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

 
567 ratings | 4.95 out of 5
Print

Reader Comments | Submit a comment »

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/.