Tag Archives: Algorithm

Data Encryption

How to Safely Encrypt Sensitive Data in Your Mobile App

In November 2014, cybercriminals perpetrated one of the biggest cybercrimes of the decade. They hacked into Sony’s computer systems, stole sensitive data, paralyzed the company’s operations, and gradually leaked embarrassing information to the media. The hackers threatened to continue until Sony agreed to pull the controversial comedy The Interview from its theatrical release.

As the headlines will tell you, the encryption of sensitive data is one of the most important investments a company can make. Facebook is currently under heat for data protection practices. The UK National Crime Agency called WannaCry a signal moment for awareness of cyberattacks and their real world impact. With the stakes higher than ever, the encryption of sensitive data in apps has never been more important.

Here are our top tips on how to safely encrypt sensitive data in your mobile app.

TIP #1: Coding and Testing

Writing secure code is fundemental to creating a secure app. Obfuscating and minifying code so that it cannot be reverse engineered is critical to keeping a secure environment. Testing and fixing bugs when they are exposed should be an ongoing investment of resources as it will pay off in the long run.

Tip #2: Scramble Data

Sometimes, the best method of encrypting data is scrambling. Software and web developers often become obsessed with storing every bit of data in databases and logs, assuming it may be useful later, but doing so can create a target for cybercriminals.

Cunning developers will only store a scrambled version of the data, making it unreadable to the outside eye, but still useful for those who know how to query it correctly.

For an in-depth dive into scrambling data, check out this awesome essay on how Amazon does it.

Tip #3: In Transit Vs. At Rest Encryption

There are two types of data to be encrypted: in transit data and at rest data. In transit data is moving data, be it in transit via email, in apps, or through browsers and other web connections. At rest data is stored in databases, the cloud, computer hard drives, or mobile devices. In transit data can be protected through the implementation of robust network security controls and firewalls. At rest data can be protected through systematically categorizing and classifying data with data protection measures in mind.

Tip #4: Secret Vs. Public Key Algorithms

Secret Key Algorithms are algorithms that use the same key for encryption and decryption. Public-key algorithms us two different encryption keys, one for encryption and the other for decryption. The public key is how the data is sent and the private key decodes it. Public-key algorithms are more secure, but require more computer processing power.

Tip #5: Blockchain Cryptography

We’ve covered the Blockchain in our past article on The Revolutionary Mechanics of the Blockchain. Blockchain cryptography has been on the rise because blockchain databases are distributed and thus more resilient in the face of a DOS attack.

Tip #6: Apps that Clean Up after Themselves 

Apps that collect sensitive information don’t necessarily need to store it. It is wise to delete sensitive data from mobile apps when the data is no longer in active use.

Tip #7 Choose the Right Algorithm

There are several popular pre-existing algorithms in existence that can be used to encrypt sensitive data in mobile apps. Check out UpWork’s awesome rundown:

  1. Advanced Encryption Standard (AES)
  2. RSA
  3. IDEA
  4. Signal
  5. Blowfish and Two Fish
  6. Ring Learning With Errors or Ring-LWE

Over the last 10 years, enterprise-wide use of encryption has jumped by 22 percent according to the Ponemon Institute. When building a mobile app, investing in encrypting sensitive data will pay off in the long run and haunt those that short-change it.

toptal-blog-image-1407508081138

Everything You Need to Know About Machine Learning

A calculator can solve complex problems which would take even the most savvy mathematicians an incomparable amount of time. Artificial intelligence has become one of the most hotly debated and highly funded aspects of technology because the speed at which machines can process information yields innumerable possibilities and applications which can and will benefit humanity. One of the first popular incarnations of AI is Machine Learning.

Machine Learning is the ability for a computer to learn without being explicitly programmed. Machine learning focuses on computer programs which can identify patterns and create its own algorithms when exposed to new data. It is used in self-driving cars, in newsfeed algorithms on social media, in evaluating job candidates, in recognizing faces on your phone, and more.

The most powerful form of machine learning currently active is called “deep learning”. “Deep learning” builds a complex mathematical structure known as a neural network out of vast quantities of data. Machine learning’s ability to handle mass amounts of data makes it crucial to the advancement of IoT. The IoT collects enormous amounts of data which require computers with machine learning to recognize patterns and create algorithms.  In self-driving cars, IoT cameras and sensors in each autonomous vehicle absorb their surroundings and turn them into huge amounts of data. The data is then sent to the cloud where it is accessible to all autonomous vehicles on the road. Thus, when one self-driving car makes a mistake, all of them learn. In conjunction with the Internet of Things, machine learning will be vital to the building of a smartworld.

TOP PROGRAMMING LANGUAGES

Machine learning requires a great deal of statistical analysis; it demands an intelligent programming language which can process a number of complex issues and general paradigms.

R: Considered a statistical workhorse, R has emerged as one of the top programming languages for machine learning. R is intended for advanced users because of its complex nature and wide learning curve.

Python: A rising star for machine learning, Python is a data science book which has been in use in the manufacturing industry for awhile. Python gives users direct access to predictive analytics, making it the foremost data science language. Developers turn to Python when they are looking to frame better questions or expand the capabilities of their existing machine learning systems.

MATLAB/Octave: Millions of engineers are already using MATLAB, a matrix-based language, to analyze and develop cutting edge systems. MATLAB has emerged as the simplest way to demonstrate computational mathematics.

MACHINE LEARNING AND iOS 10

Machine learning laid much of the groundwork for the biggest upgrade in iOS 10. It is very difficult for computers to comprehend the intricacies of the human language. Machine learning has enabled iPhones to sense contextual clues with increasing confidence, improving iMessage’s ability to autocorrect and for Siri to understand the particulars of your vernacular. In the iPhone 7 camera, machine learning allows the device to separate the background from the foreground to achieve amazing portraits once possible only with DSLR cameras.

MACHINE LEARNING AND ANDROID

Google is among the dominant forces in machine learning. Much of Google Search’s prominence is owed to advances in the machine learning field. In November 2015, Google released TensorFlow, an open-source software library for machine intelligence. TensorFlow effectively simulates “deep learning” neural networks across different computer hardware and offers a straightforward way for users to train computers to perform tasks by feeding them large amounts of data.

Google uses Tensorflow in many of their internal processes, including RankBrain for information retrieval, image classification, SmartReply, and more.

MAXIMIZING MACHINE LEARNING IN MOBILE APPS

Now that mobile devices have the high productive capacity level to perform tasks to the same degree as a traditional computer, the question of what machine learning can offer apps has arisen. Large retailers like Amazon and eBay use machine learning in their mobile apps to improve customer experience with smarter product search and recommendation features, along with the ability to forecast buying trends with analytics.

While Machine Learning algorithms require a high level of programming experience and a ton of data to be effective, integrating apps with Siri & iMessage for iOS 10 allows developers to take advantage of the vast deep learning neural networks embedded into Apple’s 1st-party apps.

While the future of machine learning  on a commercial level remains to be seen outside of tech titans like Facebook, machine learning algorithms will be crucial in conjunction with the IoT in building a new SmartWorld with unparalleled predictive capabilities.