📜 ⬆️ ⬇️

Protection of IT solutions in Russia

The purpose of this post is to convey information about how to protect IT solutions in Russia - patents, copyright, know-how. Protesters against intellectual property - please do not come here. We will not plant debates, hundreds of them ...

First of all, let's start from the beginning to build a terminology that we will use in the future. Our first task is to understand the relationship between the algorithm and the computer program.

Task


Suppose we have a task that was given to the programmer Valera, whose intellectual work we are going to protect.
There is a sequence of integers:
1, 4, 0, 3, 7, 11
It is required to sort the numbers in ascending order, i.e. bring them to mind
0, 1, 3, 4, 7, 11
To solve this problem it is necessary to develop an algorithm.
The algorithm is a method for solving computational and other problems , which precisely prescribes how and in what sequence to obtain a result that is uniquely determined by the source data .

Valera has developed an algorithm that solves the problem. To simplify, he “developed / invented” bubble sorting, the flowchart of which looks like this:


And he wrote several implementations of this algorithm in the form of computer programs.
Computer program - presented in an objective form, a set of data and commands intended for the operation of a computer and other computer devices in order to obtain a certain result , including preparatory materials obtained during the development of a computer program and the audiovisual displays generated by it (article 1261 of the Civil Code of the Russian Federation).

Those. he wrote one program in C:
#define SWAP(A, B) { int t = A; A = B; B = t; } void bubblesort(int *a, int n) { int i, j; for (i = n - 1; i > 0; i--) { for (j = 0; j < i; j++) { if (a[j] > a[j + 1]) SWAP( a[j], a[j + 1] ); } } } 

')
Second in Python:
 def swap(arr, i, j): arr[i], arr[j] = arr[j], arr[i] def bubble_sort(arr): i = len(arr) while i > 1: for j in xrange(i - 1): if arr[j] > arr[j + 1]: swap(arr, j, j + 1) i -= 1 


And the third is in assembler:
  mov bx, offset array mov cx, n for_i: dec cx xor dx, dx for_j: cmp dx, cx jae exit_for_j jbe no_swap mov ah, byte ptr bx[di] mov byte ptr bx[di], al mov byte ptr bx[si], ah no_swap: inc dx jmp for_j exit_for_j: loop for_i 


Hence the following statement, rather banal:
A single algorithm can have many implementations , both within a single programming language, and in different programming languages . And, on the contrary, in any computer program (we do not take degenerate cases) there is always some kind of algorithm .
And now the question arises: "How and what of this, and in what way, can we protect within the law?"

Algorithm protection


Patents


The algorithm of the computer program, you can get a patent for the invention (method), subject to all the conditions for inventions:

And the presence of a technical result.

Examples of technical results can be:

Pros of patents:

Cons of patents:



What are the costs of a patent (prices are approximately, for evaluation):


Know-how or trade secret


Also, if there is no money, then you can enter a trade secret mode in the enterprise / organization.
It does not make sense to dwell in detail, because This topic is widely painted on the Internet.
Know-how advantages:

Know-how has several minuses:


Mixed Type - Know-how + Patents

A very common solution. Patents protect the main part of the system, and all implementation details, “tweaks” are protected in the know-how mode.
Pros:

Minuses:


Computer security program



Computer programs are protected as literary works by copyright, and therefore protect the specific implementation of the algorithm, and not the algorithm itself.
To declare your authorship, you can use, as a simple option, send a letter from the series with a printout of the source to yourself through the Russian post, and you can register the computer program with Rospatent (deposition), but not more than 70 pages, however break into pieces. Also, when registering with Rospatent, you can attach audiovisual displays to the computer program, and simply screenshots of the program, which you can later use to protect the interface from fakes or direct copying.
Pros:

Minuses:


Putting it all together in the form of a FAQ


I want to protect my idea from implementation by competitors:
I want to "stake out" my algorithm for myself:
I developed unique algorithms that can steal:
I am afraid that my idea will be stolen using the reverse engineering method:


What to do so that the idea is not stolen:
What to do so that the idea does not flow away from the company along with the employees:


How to protect against source leakage:
How to stake out the authorship of the program for yourself:
How to protect the interface from fakes


Instead of an afterword



While our developers are sleeping ... Large corporations are moving to the national phase in Russia. According to statistics, Microsoft files applications in the Russian Federation for more than 100 patents annually. Among the software patents noted the same: VISA, AVG, MOTOROLA, FORD (see patent ), GOOGLE, FACEBOOK, INTEL ... thousands of them.
And what about us?
Most Russian software companies ignore intellectual property. Of those who managed to light up in the field of intellectual property - Abbyy (about 17 patents of the Russian Federation), Kaspersky Lab (43 patents), and some of our research institutes. This alignment is a bit sad for several factors - no one is immune from patent lawsuits from the above listed companies, patent trolls, and all of this can come back to pressure at any stage of the project.

Used literature and sources

www.uspto.gov - US Patent Office website
www1.fips.ru - Russian Patent Office website
epo.org - European Patent Office website

Questions / Wishes / Updates?

Source: https://habr.com/ru/post/190712/


All Articles