1.6: Conversion From Decimal Numeration - Workforce LibreTexts

Invisible Object Culling In Quake Related Engines (REVISED)

Despite all these great achievements in video cards development and the sworn assurances of developers about drawing 2 to 3 million polygons on screen without a significant FPS drop, it’s not all that rosy in reality. It depends on methods of rendering, on the number of involved textures and on the complexity and number of involved shaders. So even if all this really does ultimately lead to high performance, it only happens in the demos that developerss themselves kindly offer. In these demos, some "spherical dragons in vacuum" made of a good hundred thousand polygons are drawn very quickly indeed. However, the real ingame situation for some reason never looks like this funny dragon from a demo, and as a result many comrades abandon the development of their "Crysis killer" as soon as they can render a single room with a couple of light sources, because for some reason FPS in this room fluctuate around 40-60 even on their 8800GTS and upon creating second room it drops to a whopping 20. Of course with problems like this, it would be incorrect to say how things aren’t that bad and how the trouble of such developers are purely in their absence of correctly implemented culling, and how it is time for them to read this article. But for those who have already overcome “the first room syndrome" and tried to draw – inferior though, but, anyway - the world, this problem really is relevant.
However, it should be borne in mind that QUAKE, written in ancient times, was designed for levels of a “corridor" kind exclusively; therefore methods of clipping discussed in this article are not applicable to landscapes, such as ones from STALKER or Crysis, since completely different methods work there, whose analysis is beyond the scope of this article. Meanwhile we’ll talk about the classic corridor approach to mapping and the effective clipping of invisible surfaces, as well as clipping of entire objects.

The paper tree of baloon leaves

As you probably know, QUAKE uses BSP, Binary Spacing Partition tree. This is a space indexing algorithm, and BSP itself doesn’t care if the space is open or closed, it doesn’t even care if the map is sealed, it can be anything. BSP implies the division of a three-dimensional object into a certain number of secant planes called "the branches" or "the nodes" and volumetric areas or rooms called "the leaves". The names are confusing as you can see. In QUAKE / QUAKE2 the branches usually contain information about the surfaces that this branch contain, and the leaves are an empty space, not filled with nothing. Although sometimes leaves may contain water for example (in a form of a variable that indicates, specifically, that we’ve got water in this leaf). Also, the leaf contains a pointer to the data of potential visibility (Potentially Visible Set, PVS) and a list of all surfaces that are marked as being visible from this leaf. Actually the approach itself implies that we are able to draw our world however we prefer, either using leaves only or using branches only. This is especially noticeable in different versions of QUAKE: for example, in QUAKE1 in a leaf we just mark our surfaces as visible and then we also sequentially go through all the surfaces visible from a particular branch, assembling chains of surfaces to draw them later. But in QUAKE3, we can accumulate visible surfaces no sooner than we’ll get into the leaf itself.
In QUAKE and QUAKE2, all surfaces must lie on the node, which is why the BSP tree grows rather quickly, but in exchange this makes it possible to trace these surfaces by simply moving around the tree, not wasting time to check each surface separately, which affects the speed of the tracer positively. Because of this, unique surface is linked to each node (the original surface is divided into several if necessary) so in the nodes we always have what is known to be visible beforehand, and therefore we can perform a recursive search on the tree using the BBox pyramid of frustum as a direction of our movement along the BSP tree (SV_RecursiveWorldNode function).
In QUAKE3, the tree was simplified and it tries to avoid geometry cuts as much as possible (a BSP tree is not even obliged to cut geometry, such cuts are but a matter of optimality of such a tree). And surfaces in QUAKE3 do not lie on the node because patches and triangle models lie there instead. But what happens would they be put on the node nevertheless, you can see on the example of "The Edge Of Forever" map that I compiled recently for an experimental version of Xash. Turns out, in places that had a couple thousand visible nodes and leaves in the original, there are almost 170 thousand of them with a new tree. And this is the result after all the preliminary optimizations, otherwise it could have been even more, he-he. Yeah, so... For this reason, the tree in QUAKE3 does not put anything on the node and we certainly do need to get into the leaf, mark visible surfaces in it and add them to the rendering list. On the contrary, in QUAKE / QUAKE2 going deep down to the leaf itself is not necessary.
Invisible polygon cutoff (we are talking about world polys, separate game objects will be discussed a bit later) is based on two methods:
The first method is to use bit-vectors of visibility (so-called PVS - Potential Visible Set). The second method is regular frustum culling which actually got nothing to do with BSP but works just as efficiently, for a certain number of conditions of course. Bottom line: together these two methods provide almost perfect clipping of invisible polygons, drawing a very small visible piece out of the vast world. Let's take a closer look at PVS and how it works.

When FIDO users get drunk

Underlying idea of PVS is to expose the fact that one leaf is visible from another. For BSP alone it’s basically impossible because leaves from completely different branches can be visible at the same time and you will never find a way to identify the pattern for leafs from different branches seeing each other - it simply doesn’t exist. Therefore, the compiler has to puff for us, manually checking the visibility of all leaves from all leaves. Information about visibility in this case is scanty: one Boolean variable with possible values 0 and 1. 0 means that leaf is not visible and 1 means that leaf is visible. It is easy to guess that for each leaf there is a unique set of such Boolean variables the size of the total number of leaves on the map. So a set like this but for all the leaves will take an order of magnitude more space: the number of leaves multiplied by the number of leaves and multiplied by the size of our variable in which we will store information of visibility (0 \ 1).
And the number of leaves, as you can easily guess, is determined by map size map and by the compiler, which upon reaching a certain map size, cease to divide the world into leaves and treat resulting node as a leaf. Leaf size vary for different QUAKE. For example, in QUAKE1 leaves are very small. For example I can tell you that the compiler divide standard boxmap in QUAKE1 into as many as four leaves meanwhile in QUAKE3 similar boxmap takes only one leaf. But we digress.
Let's estimate the size of our future PVS file. Suppose we have an average map and it has a couple thousand leaves. Would we imagine that the information about the leaf visibility is stored in a variable of char type (1 byte) then the size of visdata for this level would be, no more no less, almost 4 megabytes. That is, much AF. Of course an average modern developer would shrug and pack the final result into zip archive but back in 1995 end users had modest machines, their memory was low and therefore visdata was packed in “more different” ways. The first step in optimizing is about storing data not in bytes, but in bits. It is easy to guess that such approach reduce final result as much as 8 times and what's typical AF – does it without any resource-intensive algorithms like Huffman trees. Although in exchange, such approach somewhat worsened code usability and readability. Why am I writing this? Due to many developers’ lack of understanding for conditions in code like this:
if ( pvs [ leafnum >> 3 ] & ( 1 << ( leafnum & 7 ) ) ) { } 
Actually, this condition implement simple, beautiful and elegant access to the desired bit in the array (as one can recall, addressing less than one byte is impossible and you can only work with them via bit operations)

Titans that keep the globe spinning

The visible part of the world is cut off in the same fashion: we find the current leaf where the player is located (in QUAKE this is implemented by the Mod_PointInLeaf function) then we get a pointer to visdata for the current leaf (for our convenience, it is linked directly to the leaf in the form of "compressed_vis" pointer) and then stupidly go through all the leaves and branches of the map and check them for being visible from our leaf (this can be seen in the R_MarkLeaves function). As long as some leaves turn out to be visible from the current leaf we assign them a unique number from "r_visframecount" sequence which increases by one every frame. Thus, we emphasize that this leaf is visible when we build the current frame. In the next frame, "r_framecount" is incremented by one and all the leaves are considered invisible again. As one can understand, this is much more convenient and much faster than revisiting all the leaves at the end of each frame and zeroing their "visible" variable. I drew attention to this feature because this mechanism also bothers some and they don’t understand how it works.
The R_RecursiveWorldNode function “walk” along leaves and branches marked this way. It cuts off obviously invisible leaves and accumulate a list of surfaces from visible ones. Of course the first check is done for the equivalence of r_visframecount and visframe for the node in question. Then the branch undergoes frustum pyramid check and if this check fails then we don’t climb further along this branch. Having stumbled upon a leaf, we mark all its surfaces visible the same way, assigning the current r_framecount value to the visframe variable (in the future this will help us to determine quickly whether a certain surface is visible in the current frame). Then, using a simple function, we determine which side we are from the plane of our branch (each branch has its own plane, literally called “plane” in the code) and, again, for now, we just take all surfaces linked to this branch and add them to the drawing chain (so-called “texturechain”), although nobody can actually stop us from drawing them immediately, right there, (in QUAKE1 source code one can see both options) having previously checked these surfaces for clipping with the frustum pyramid, or at least having made sure that the surface faces us.
In QUAKE, each surface has a special flag SURF_PLANEBACK which help us determine the orientation of the surface. But in QUAKE3 there is no such flag anymore, and clipping of invisible surfaces is not as efficient, sending twice as many surfaces for rendering. However, their total number after performing all the checks is not that great. However, whatever one may say, adding this check to Xash3D raised average FPS almost one and half times in comparison to original Half-Life. This is on the matter whether it is beneficial. But we digress.
So after chaining and drawing visible surfaces, we call R_RecursiveWorldNode again but now - for the second of two root branches of BSP tree. Just in case. Because the visible surfaces, too, may well be there. When the recursion ends, the result will either be a whole rendered world, or chains of visible surfaces at least. This is what can actually be sent for rendering with OpenGL or Direct3D, well, if we did not draw our world right in the R_RecursiveWorldNode function of course. Actually this method with minor upgrades successfully used in all three QUAKEs.

A naked man is in a wardrobe because he's waiting for a tram

One of the upgrades is utilization of the so-called areaportals. This is another optimization method coming straight out of QUAKE2. The point of using areaportals is about game logic being able to turn the visibility of an entire sectors on and off at its discretion. Technically, this is achieved as follows: the world is divided into zones similar to the usual partitioning along the BSP tree, however, there can’t be more than 256 of them (later I will explain why) and they are not connected in any way.
Regular visibility is determined just like in QUAKE; however, by installing a special “func_areaportal” entity we can force the compiler to split an area in two. This mechanism operates on approximately the same principle as the algorithm of searching for holes in the map, so you won’t deceive the compiler by putting func_areaportal in a bare field - the compiler will simply ignore it. Although if you make areaportal the size of the cross-section of this field (to the skybox in all directions) in spite of everything the zones will be divided. We can observe this technique in Half-Life 2 where an attempt to return to old places (with cheats for example) shows us disconnected areaportals and a brief transition through the void from one zone to another. Actually, this mechanism helped Half-Life 2 simulate large spaces successfully and still use BSP level structure (I have already said that BSP, its visibility check algorithm to be precise, is not very suitable for open spaces).
So installed areaportal forcibly breaks one zone into two, and the rest of the zoneization is at the discretion of the compiler, which at the same time makes sure not to exceed 256 zones limit, so their sizes can be completely different. Well, I repeat, it depends on the overall size of the map. Our areaportal is connected to some door dividing these two zones. When the door is closed - it turns areaportal off and the zones are separated from each other. Therefore, if the player is not in the cut off zone, then rendering it is not worth it. In QUAKE, we’d have to do a bunch of checks and it’s possible that we could only cut off a fraction of the number of polygons (after all, the door itself is not an obstacle for either visibility check, or even more so, nor it is for frustum). Compare to case in point: one command is issued - and the whole room is excluded from visibility. “Not bad,” you’d say, “but how would the renderer find out? After all, we performed all our operations on the server and the client does not know anything about it.” And here we go back to the question why there can’t be more than 256 zones.
The point is, information about all of zone visibility is, likewise, packaged in bit flags (like PVS) and transmitted to the client in a network message. Dividing 256 bits by 8 makes 32 bytes, which generally isn’t that much. In addition, the tail of this information can be cut off at ease if it contains zeroes only. Though the payback for such an optimization would appear as an extra byte that will have to be transmitted over the network to indicate the actual size of the message about the visibility of our zones. But, in general, this approach justified.

Light_environment traces enter from the back

Source Engine turned out to have a terrible bug which makes the whole areaportal thing nearly meaningless. Numerous problems arise because of it: water breaks down into segments that pop in, well, you should be familiar with all this by now. Areaportal cuts the geometry unpredictably, like an ordinary secant plane, but its whole point is being predictable! Whereas areaportal brushes in Source Engine have absolutely no priority in splitting the map. It should be like this: first, the tree is cut the regular way. And when no suitable planes left, the final secant plane of areaportal is used. This is the only way to cut the sectors correctly.

Modern problems

The second optimization method, as I said, is increased size of the final leaf akin to QUAKE3. It is believed that a video card would draw a certain amount of polygons much faster than the CPU would check whether they are visible. This come from the very concept of visibility check: if visibility check takes longer than direct rendering, then well, to hell with this check. The controversy of this approach is determined by a wide range of video cards present at the hands of the end users, and it is strongly determined by the surging fashion for laptops and netbooks in which a video card is a very conditional and very weak concept (don’t even consider its claimed Shader Model 3 support). Therefore, for desktop gaming machines it would be more efficient to draw more at a time, but for weak video cards of laptops traditional culling will remain more reliable. Even if it is such a simple culling as I described earlier.

Decompression sickness simulator

Although I should also mention the principles of frustum culling, perhaps they are incomprehensible to some. Cutoff by frustum pyramid is actually pure mathematics without any compiler calculations. From the current direction of the player’s gaze, a clipping pyramid is built (the tip of the pyramid – in case someone can’t understand - is oriented towards the player’s point of view and its base is oriented in the direction of player’s view). The angle between the walls of the pyramid can be sharp or blunt - as you probably guessed already, it depends on the player's FOV. In addition, the player can forcefully pull the far wall of the pyramid closer to himself (yes, this is the notorious “MaxRange” parameter in the “worldspawn” menu of the map editor). Of course, OpenGL also builds a similar pyramid for its internal needs when it takes information from the projection matrix but we’re talking local pyramid now. The finished pyramid consists of 4-6 planes (QUAKE uses only 4 planes and trusts OpenGL to independently cut far and near polygons, but if you write your own renderer and intend to support mirrors and portals you will definitely need all six planes). Well, the frustum test itself is an elementary check for a presence of AA-box (AABB, Axis Aligned Bounding Box) in the frustum pyramid. Or speaking more correctly, this is a check for their intersection. Let me remind you that each branch has its own dimensions (a fragment of secant plane bound by neighboring perpendicular secant planes) which are checked for intersection. But unfortunately the frustum test has one fundamental drawback - it cannot cut what is directly in the player’s view. We can adjust the cutoff distance, we can even make that “ear feint” like they do in QFusion where final zFar value is calculated in each frame before rendering and then taken into account in entity clipping, but after all, whatever they say, the value itself was obtained from PVS-information. Therefore, neither of two methods can replace the other but they just complement each other. This should be remembered.

I gotta lay off the pills I'm taking

It seems that we figured out the rendering of the world and now we are moving on smoothly to cutting off moving objects... which are all the visible objects in the world! Even ones that, at te first glance, stand still and aren’t planning to move anywhere. Cause the player moves! From one point he still sees a certain static object, and from another point, of course, he no longer does. This detail should also be considered.
Actually, at the beginning of this article I already spoke in detail about an algorithm of objects’ visibility check: first we find the visible leaf for the player, then we find the visible leaf for the entity and then we check by visdata whether they see each other. I, too, would like to clarify (if someone suddenly does not understand) how each moving entity is given the number of its current visible leaf, i.e. directly for entity’s its own current position, and the leaves themselves are of course static and always in the same place.

Ostrich is such an OP problem solver

So the method described above has two potential problems:
The first problem is that even if A equals B, then, oddly enough, B is far from being always equal A. In other words, entity A can see entity B, but this does not mean that entity B see entity A, and, no, it’s not about one of them “looking” away. So why is this happening? Most often for two reasons:
The first reason is that one of the entities’ ORIGIN sit tight inside the wall and the Mod_PointInLeaf function for it points to the outer “zero” leaf from which EVERYTHING is visible (haven’t any of you ever flown around the map?). Meanwhile, no leaf inside the map can see outer leaf - these two features actually explain an interesting fact of an entire world geometry becoming visible and on the contrary, all objects disappearing when you fly outside the map. In regular mode, similar problems can occur for objects attached to the wall or recessed into the wall. For example, sometimes the sounds of a pressed button or opening door disappear because its current position went beyond the world borders. This phenomenon is fought by interchanging objects A and B or by obtaining alternative points for the position of an object, but all the same, it’s all not very reliable.

But lawyer said that you don't exist

In addition, as I said, there is another problem. It come from the fact that not every entity fits a single leaf. Only the player is so small that he can always be found in one leaf only (well, in the most extreme case - in two leaves on the border of water and air. This phenomenon is fought with various hacks btw), but some giant hentacle or on the contrary, an elevator made as a door entity, can easily occupy 30-40 leaves at a time. An attempt to check one leaf (for example, one where the center of the model is) will inevitably lead to a deplorable result: as soon as the center of an object will be out of the player’s visibility range, the entire object will disappear completely. The most common case is the notorious func_door used as an elevator. There is one in QUAKE on the E1M1. Observe: it travels halfway and then its ORIGIN is outside the map and therefore it must disappear from the player’s field of view. However, it does not go anywhere, right? Let us see in greater detail how this is done.
The simplest idea that comes to one’s mind: since the object occupies several leaves, we have to save them all somewhere in the structure of an object in the code and check them one by one. If at least one of these leaves is visible, then the whole object is visible (for example, it’s very tip). This is exactly what was implemented in QUAKE: a static array for 16 leaves and a simple recursive function SV_FindTouchedLeafs that looks for all the leaves in range hardcoded in "pev->absmins" and "pev->absmax" variables (pev i.e. a Pointer to EntVars_t table). absmins and absmax are recalculated each time SV_LinkEdict (or its more specific case of UTIL_SetOrigin) is called. Hence the quite logical conclusion that a simple change of ORIGIN without recalculating its visible leaf will take the object out of visibility sooner or later even if, surprisingly enough, it’s right in front of the player and the player should technically still be able to see it. Inb4 why one have to call UTIL_SetOrigin and wouldn’t it be easier to just assign new value to the "pev->origin" vector without calling this function. It wouldn’t.
With this method we can solve both former problems perfectly: we can fight the loss of visibility if the object's ORIGIN went beyond the world borders and level the difference of visibility for A->B versus visibility for B->A.

A secret life of monster_tripmine

Actually we’ve yet to encounter another problem, but it does not occur immediately. Remember, we’ve got an array of 16 leaves. But what if it won’t be enough? Thank God there are no beams in QUAKE and no very long elevators made as func_door either. For this exact reason. Because when the array is filled to capacity, the SV_FindTouchedLeafs function just stop and we can only hope that there won’t be that many cases when an object disappear right before our eyes. But in the original QUAKE, such cases may well be. In Half-Life, the situation is even worse - as you can remember there are rays that can reach for half the map, tripmine rays for example. In this case, a situation may occur when we see just the very tip of the ray. For most of these rays, 16 leaves are clearly not enough. Valve tried to remedy the situation by increasing the array to 48 leaves. That helped. On early maps. If you remember, at the very beginning of the game when the player has already got off the trailer, he enters that epic elevator that takes him down. The elevator is made as a door entity and it occupies 48 leaves exactly. Apparently, the final expansion of the array was based after its dimensions. Then the programmers realized that this isn’t really a solution, because no matter how much one would expand the array, it can still be lacking for something. So then they screwed up an alternative method for visibility check: a head branch (headnode) check. In short, this is still the same SV_FindTouchedLeafs but now it is called directly from the place of visibility check and with a subsequent transfer of visdata in there. In general, it is not used very often because it is slower than checking pre-accumulated leaves, that is, it is intended just for such non-standard cases like this one.
Well, and since, I hope, general picture of the clipping mechanism already beginning to take shape in your mind, I will finish the article in just a few words.
On the server, all objects that have already passed the visibility check are added to the network message containing information about visible objects. Thus, on the client, the list of visible entities is already cut off by PVS and we do not have to do this again and therefore a simple frustum check is enough. You ask, "why did we have to cut off invisible objects on the server when we could do this later when we are on the client already?" I reply: yes, we could, but now the objects cut off on the server didn’t get into the network message and saved us some traffic. And since the player still does not see them, what is the point of transferring them to the client just to check them for visibility after? This is a kind of double optimizing :)
© Uncle Mike 2012
submitted by crystallize1 to hammer [link] [comments]

Development Diary XXII: Shin Chitsujyo no Kanshou

平和主義なる故に必ずしも正義人道に叶ふに非ず 軍国主義なるが故に必ずしも正義人道に反するに非ず。
Hello and Welcome to the Twenty-Second Diary of The New Order. Today we’ll be covering the ever elusive Home Islands of Japan. For this diary, I, Morriña, your humble writer and team lead of Japan, and the members of the Sphere’s development team will be covering everything from the beginning of the Sino-Japanese War, 1937, up to 1968. I hope you enjoy the vast amount of content we’re attempting to bring to Japan as one of the three main superpowers in the world by 1962.
PART I: 1937-1947
If you start taking pleasure in nonsensical masculinity and make violence a goal in and of itself, the world will finally start to hate you and will look upon you like it would wild beasts. One ought to remember that.
--Meiji, Emperor of Japan to his soldiers, 4 I 1882
It was supposed to be only a border incident, soon to be resolved. Instead it turned out to be the beginning of total war for the Empire of Japan and the start to a full scale invasion of China. The Marco Polo bridge has become an infamous symbol of the bloodiest conflict in the history of Asia since the Taiping Rebellion.
Chiang’s Republic of China was severely disadvantaged. Even with a seemingly unending pool of manpower, a lack of commitment to the war effort and political infighting doomed the young republic to a slow and excruciating death. Japan’s vastly superior armed forces, armed with modern guns, sailing on battleships, and riding on soaring planes tore through division after division, surprising foreign observers with their unparalleled dominance. The Soviet Union was busy with its own internal conflicts and crises, while Joseph Kennedy was turning his nation to the beast it had fallen to a million times before; isolationism. The Kuomintang, once a home for idealistic revolutionaries and republicans, despaired. They just kept on losing land, no matter the sacrifices they made. The boys they sent out, never to return, the cities they burned, the people they conscripted into non-existence. In the opening year of the war alone, the ROC lost the vast majority of its cities, crucial to the continuation of the conflict. Not even a second United Front between the KMT and Mao’s CPC, deemed the last possible option, could halt the Japanese onslaught.
However, Japan did not emerge unscathed. No nation may emerge unscathed from the total transformation of its spirit towards total war. Old political, social, and economic structures were entirely replaced in favor of new, more efficient ways of life. The social fabric that had defined much of Japanese life was ripped apart. In its place, the Taisei Yokusankai was built from the ground up. The tattered remains of democracy, or at least the facade that remained, were finally put to rest. A new state emerged, one built for war, one not seen anytime before. A new word would arise to define these states - totalitarian. None of it would have been this way, if all had gone to plan. Chiang was to surrender and, in his place, Wang Jingwei’s Reorganized Government of China would have been founded in occupied Nanjing. Chiang Kai-Shek refused to surrender, even as his people floundered and his nation was dying. The armed forces sputtered meekly, and shortages began to plague the nation. The war settled into a grueling slog as both sides hunkered down for the long fight. Japan sat on the cusp of victory, within reach of the great chalice. And yet, they could not reach it. Prince Konoe, the head of the Taisei Yokusankai, struggled to continue to prove himself a capable leader in these times. His cabinet came to an end after public criticism by the fierce militant nationalist Yosuke Matsuoka. Even as Konoe sought to preserve recent precious gains in China while carefully balancing relations with the spectre across the ocean, America, Matsuoka believed war was inevitable. A third cabinet was formed by Konoe, in one final attempt to oust Matsuoka of his high diplomatic posts. In the end, the pressures of criticism, demands for resignation ended Konoe. The gears of history, unknowable in their ways, brought upon the world a conflict so horrific, so awful, that the word strikes a sense of dread into so many who were born in those years. War had arrived in the Pacific.
Many of Japan’s top military brass thought that an attack on the United States would spell an end to the empire. Yet, Matsuoka relented, and when the first torpedoes blasted into and sank the USS Enterprise, the world held its breath. Even such a devastating attack could not stop the overwhelming the American advantage in industry. It seemed, for the first time, that the tides of war might finally shift into the Allies’ favour. Instead, beginning from the complete shock of victory at Pearl Harbor, the Imperial Japanese Navy moved from victory to victory, including the surprising outcome of the Battle of Midway in 1942. Japanese offensives took the Philippines, Burma, Malaya, Indonesia, Singapore and some key Pacfic islands, all in the first months of war. Yet, even after victories that no weaker nation could survive, the US retained the industrial advantage it had held for years, with the untouched contiguous mainland still distant from the hell of fire and death happening across the sea to the west. US ships churned out of harbors continuously, faster and faster, until a ship could be made in a matter of months. The Japanese could not continue to win the numbers game, and for the first time in the brutal naval war, they were on the backfoot.
In the hope of forcing Japan out of the war, the United States adopted a strategy of leapfrogging in 1943, which put Japanese forces at a massive disadvantage. With each month and year, the United States was able to steadily increase its superiority over Pacific, while Japan’s leadership adopted a strategy of defense, attempting to retain the bulk of their naval force by avoiding any pitched battles until the conditions for it would almost guarantee absolute victory. This time had finally come during the battle of Iwo Jima in 1945, when Japanese military leadership decided that this was the decisive moment they were seeking. During the next 87 days a stubborn defense by general Tadamichi Kuribayashi forced the United States to overcommit their forces, which was subsequently exploited by Combined Fleet in a brilliant maneuver. The US fleet was decimated and all American Marines division on that damned island were either destroyed or forced to surrender. While Japanese casualties were enormous and would never be replaced, the battle stopped the United States from overrunning the Pacific theatre and prevented a possible invasion of the Home Islands.
Iwo Jima proved to be the largest naval battle in history, surpassing even the Battle of Jutland. The two maritime powerhouses of the modern world slugged it out on the high seas, and the result was thousands upon thousands of dead bodies, and a cemetery of metal, miles in length, buried under the ocean that would never quite disappear. Japan would never recover, not in full, but the United States had the sheer manpower and dockyards to do it. Most within the navy looked forward to an eventual Japanese surrender, regardless of how long it took. America would survive. America always survived.
Then, the bomb hit Pearl Harbor.
A wave of atomic terror reverberated through continental America, and the United States was forced to resign itself to a humiliating defeat, the first in its history. Finally, Japan could focus on crushing its final threat, and the final bastion of liberty in the world. China.
There was one strategy left to turn to, to gain the upper hand against China. It was uncertain, and not even guaranteed to work, but it was the only one left; attrition. Japan would attempt to starve the United Front and render them unable to resist further Japanese offensives. This strategy came to fruition once again with the Battle of Kohima. The Mad General Masanobu Tsuji finally deprived Chiang and Mao of the US air units and supply that was acting as a lifeline to the United Front, the final nail in a coffin that refused to die. With any possibility of supplying China by land or air essentially gone Joseph Stilwell made the decision to pull out of the region and stop supplying the Chinese. Famines across the remaining free Chinese territory and a lack of arms meant that there was little resistance put up against the Ichi Go Offensive of 1944. Despite China fighting with one foot in the grave of their proud nation, their fanatical defenses declared in the name of preserving China racked up further unsustainable casualty counts. Japan’s victory was inevitable, it was only a matter of time. Chiang Kai-Shek turned down pleas for peace, and the war continued. It took two years for the Japanese to finally reach Chongqing in a ruthless, cruel military operation that made Sherman’s March to the Sea look like a peace delegation. In the last battle of the Second World War Chongqing was turned into little more than a gargantuan pile of ashes and crushed stones. On the ruins of Baidi Fortress, the triumphant Japanese proclaimed “peace in Asia and peace in the world”. In their shadows stood their chosen puppet - Chen Gongbo, horrified at the carnage and destruction of the United Front’s last true stronghold. With no hope of any resistance he could only smile, while holding sorrowful tears in his eyes.
However, Japan’s political and economic system was now geared towards sustaining an ever expanding war machine; with the Taisei Yokusankai as its political body and Hideki Tojo as its prime minister the current government proved to be a burden. It survived ten years of total war, yet it could not survive the peace that followed.
PART II: 1947 - 1962
We have awoken the giant and through valiant effort we survived his onslaught. Let us hope that in future we will remain at peace, for we may not survive another victory like this one.
--Isoroku Yamamoto, 1947
While the war was with China over, peace was only the beginning of a series of new problems. The Japanese empire was now enormous. It stretched from cold Siberia to humid New Guinea, from the heart of China to distant Hawaii. With their new lands in hand, Japan set about reorganising these territories into a more manageable empire.
In some cases, local collaborators were given the most power. In others, Japanese military figures took control. The Co-Prosperity Sphere became a patchwork of directly ruled territories, military governorates and puppet states. Each one churning out their spoils to be harvested by Japan itself. Whether the Army, Navy or Diet got their hands on them was another matter - the resources would flow nevertheless.
Hideki Tojo had been Prime Minister for six years now, overseeing both Japan’s favourable peace treaty with the United States and the victory over the Chinese. However, as the conflict was coming to a close, it became clear that he was starting to slip. His supporters were fully aware that a fall from grace would be disastrous. To prevent this, the man who had recommended Tojo for his post had to act.
Kōichi Kido arranged to have himself made Prime Minister with Imperial permission, having served as the closest advisor to the Emperor for almost a decade. He then appointed a loyal privy council member to his old post as Lord Keeper of the Privy Seal, ensuring his close connection to the Emperor. With Kido now Prime Minister, he quickly set about the task of managing the now enormous Japanese Empire, as well as trying to handle the various factions within Japanese politics.
He proved to be an ambitious prime minister, with grand designs for Japan. Kido was well aware of the faults of the Japanese government. Kido sought to make the ruling Yokusankai party into a tool for his reformist agenda. He attempted to transform it from a mere big tent for the bureaucracy into a powerful body against the army and navy factions. His fatal mistake, however, was the attempted strong-arming of the military as part of his plan to wrest power away from them. Having already become unpopular due to his reformist tendencies, this move against the armed forces proved to be the last straw. One Hiroya Ino replaced him.
In order to keep hold of power, Ino was forced to make a bargain. The new Prime Minister agreed to surrender control of Japan’s colonies to the army so that they could be used as strongholds and resource depots. In return, Ino gained some feeble scraps of power for the government. For his actions, the Prime Minister came across as incredibly weak, having made the deal even as the army was steadily losing influence, as had been the case ever since the war had ended. What could the Prime Minister have done? The army was still powerful enough to topple cabinets should it benefit them, something Ino was very much aware of. He had little choice but to comply, even if it would ultimately harm the party. When the elections rolled around, the Yokusankai suffered terribly from their capitulation to the army, with independent candidates (mostly Yokusankai rebels and expelled party members) gaining more power.
Under Ino’s tenure, the issue of corruption would become more prevalent and out of control. Bribery would become a de facto method of getting anything done, with seemingly every government official involved in some capacity. Ino’s inability to handle the ever growing corruption within his own cabinet was starting to cost him what little faith anyone still had in his capabilities. Whether he was simply failing to handle the issue properly or perhaps ignoring it, his strategy was utterly failing. Prime Minister Hiroya Ino had not built himself a great legacy to be remembered by. Instead, he had built up a house of cards, upon which he sat. Such a house can hold for a while if one is careful, but it is fated to fall apart eventually. Such a fate cannot be avoided, only delayed and never for long.
Interludium: Mechanics
Democratic institutions are quarantine mechanisms for that old pestilence, tyrannic lust. As such they are very useful and very boring. --Friedrich Nietzsche
Before we continue, we would like to offer some explanations behind the unique gameplay that Japan has to offer, centering on domestic policy. Screenshot of Japan GUI
Despite the power held by the military, the Empire of Japan is still legally a democracy as established by the Meiji Constitution, proclaimed in 1889. You are responsible for the civilian government. The Prime Minister of Japan is the closest character to “The Player”.
The Imperial diet, as the main parliamentary body, is completely democratic, but deeply overshadowed by the Second Great War. During the war, all political parties were merged into the Yokusankai (YSK) in order for Japan to function as a totalitarian, one party state. As mentioned, however, Ino’s capitulation to the Army was a great sign of weakness coming from the Yokusankai. Factions of “Independents” who had been rendered irrelevant in 1942 by the Yokusankai’s supermajority used the population’s growing disillusionment towards the ruling in order to swell the amount of seats in parliament outside the party’s control. The rising number of independent politicians was not the only problem for the Yokusankai; despite theoretically being a single party, it is in reality a de facto collection of cliques and factions that have rather different approaches to government and policies. This means that any potential Prime Minister may have a large problem with keeping a majority of support in the chamber. So how exactly does a Prime Minister keep their majority? Let’s examine it!
The Imperial Diet consists of seats distributed per territorial district. The Dai Nippon Teikoku (Empire of Great Japan) consists of the Nihon Rettō (Home Islands, or simply Japanese archipelago), the provinces of Chōsen (Korean peninsula), Taiwan and Karafuto (the island of Sakhalin). Those constitute an integral part of the Japanese state, and as such - elections are organized at the local level. Depending on the YSK’s popularity in a single province, the one party will receive an appropriate amount of deputies (if the popularity of the YSK in the province is 70%, it will receive 70% of seats from this area). As such, the YSK needs to maintain its popularity and power, to put an end to the loss of seats to independents.
But even if the Yokusankai is successful in upcoming elections, there is still a problem. Deputies of the YSK are divided between different cliques. In the example shown above, Prime Minister Ino is supported by his own clique in its entirety, by 5 deputies of Kido clique and by more than half of deputies from Kaya’s and Takagi’s factions respectively. With the Independents being completely unsupportive, it means that Ino in our example, despite the YSK holding 75% of total seats, barely holds on to a majority. The lesson we learn here is obvious - as a Prime Minister of Japan you need not only to win elections as the YSK, but also to have strong clique of your and have the support of other factions within the party itself.
Have you secured a super majority of deputies? I’m sorry, you are still not done. In the Japanese parliamentary system, the House of Peers has the ability to reject bills and initiatives. If the House of Peers does not support you, it will effectively create a deadlock and block all reforms, guaranteeing an end to the career of the current Prime Minister.
In general the absolute heart of parliamentary game in Japan is securing a majority, and the most important part of securing a majority is interacting with the four main cliques of the YSK, either by gaining their support or by reducing their power and popularity. You need to be very careful about implementing different policies. The Yokusankai remains a party that somehow manages to contain Reform Bureaucrats, Liberals, Kidoites and Conservatives in a single bloc. It may be too much to manage. If other factions find your cooperation or policies unsatisfactory, Party Unity may drop and deputies from other cliques may be even less inclined to support you. Such a scenario may spell doom for any Prime Minister.
You might think this is already too much, and that holding onto power in the Empire of Japan is a fool’s errand. To this we bring two pieces of bad news. The first one is that negotiating with the Diet and house of Peers is the only way to advance one’s political career. Second - there are still more ways to lose power as Prime Minister, as the overbearing influence of Japan’s armed forces starts to impact the political class’ games.
When it comes to Army (IJA) and Navy (IJN) Influence - one will find that understanding the military's politics is essential to grasping Japan’s internal situation. While interservice rivalry exists, it is not as much of a relevant factor as it was during the 30s and 40s. With peace and an ongoing focus on the stabilization of a vast empire, the IJA and IJN do not interfere much in the Home Islands’ political process. Both branches of the military forces have also developed a sense of restraint in foreign policy. Gone are the heady days where the Kwantung Army could invade China without notifying Tokyo. Instead, the IJA and IJN are mostly focused on keeping their monopolies and influence in their countries in the Sphere. They are no longer a force of change, pushing for more wars and acts of aggression - instead, with the establishment of the Co-Prosperity Sphere they are now a force of the Status Quo.
Army and Navy support does not represent “the entire army” and “the entire navy”. The IJA and IJN are as riddled with factions as the Diet is. The influence meters instead represent the higher echelons of powers, ministers, chief of staff, leading commanders, governors and the like. What does this actually mean? For a start, even with high support from Army, it may not guarantee complete compliance of the IJA in different countries in Sphere. Army divisions in Indonesia might not obey orders from a new government just because the officers in Tokyo have received a hefty amount of bribes. On the other hand, even small support from the IJA for your government, causing the War Ministry to wish to see your cabinet ousted will not necessarily affect IJA commanders in the Sphere, who might still actually follow the civilian government’s instruction in their particular sectors.
To reaffirm the point about a decline in interservice rivalry, IJA and IJN support are not contradictory to each other. Often times events or choices might lead to increasing support from both, or sometimes it may decrease support from both. The problem is, that the IJA and IJN influence is very peculiar in comparison to for example “House of Peers Opinion”. The reason for that is that both very low and very high influence of army branch will have negative consequences. Very low influence with the Army or Navy will force current Prime Minister to resign, as he was clearly not paying attention to demands from armed forces. Very high influence on the other hand will start firing rather peculiar events that will most likely greatly decrease standards of life in other countries of the Sphere, destabilizing it and damaging the position of the civilian government in Tokyo. This represents the army running roughshod over the Sphere, assuming they have a free hand from their buddies in the diet.
Now…Tension. What does this even mean? As you may already guess from previous paragraphs, it is not actually about interservice rivalry. As I mentioned previously, Army and Navy are mostly now forces of status quo, that achieved everything they ever desired in the Second World War and now they simply wish to retain their benefits, advantages and of course - their glorious colonial empire. Tension represents not friction between army branches, not even friction between armed forces and civilian government, but rather a subtle change of mind - that actually Japan is in a dire state, and it requires immediate, heroic actions to save it from traitors, subversion, foreign agents and conspirators. This is a reflection of Japanese culture - disobedience is justified by the great patriotism and pure, good nature of a servant that wishes to save their overlord, even if they themselves do not want it. In comparison to Army/Navy Influence, it does not reflect the view of elites, but of every single soldier, sailor and minor commander. As such it is absolutely possible to have great relations with Army and Navy, and still have massive Tension build-up, threatening the stability of the Empire of the Rising Sun. It is a slow, ticking bomb that requires care and tact to contain and defuse.
At the beginning of the game, due to massive prosperity, stability and power of Japanese Empire Tension starts at 0% in 1962. However it may slowly rise until reaching 100%. As to what happens when Tension reaches such high value and what events may have led to this… hmm… this will be a story for another time.
This concludes the unique gameplay designed for the Empire of Japan in TNO. With no further delay, let’s move on to 1962 - the very beginning of the game.
PART III: 1962-1963
I’m sorry to say this to you, Prime Minister, but Empires rise and Empires fall, and the vast, corrupt future that you once had is shedding away like cherry blossoms in the winter. With any luck, you’ll be out of here by next month.
How does a nation crumble? An assassin eating on a crowded thoroughfare sees his target ride in on a conveniently open car and takes his chance. A cavalry charge outside the gates of a besieged city breaks the high-tide of conquest. Some less graceful than others, but it’s all the same.
Or perhaps it can start with the finding of a body. Yes, let’s go with that. Because deaths don’t just end lives - they smother truths. Yet, the truth shines through. Truth has a manner of bubbling out into the world.
For now, it’s just another body, in an impossible place and under improbable circumstances. Another problem for the Police, but nothing the Metropolitan can’t handle - and with all the mysterious nonsense popping up in the murder scene it looks like their expertise will be needed. Thankfully our crack detective is on the case - and looking for evidence!
Whoops. Well, tragedy happens all the time in the Sphere, it was probably just a one off, let’s keep looking - oh. Oh dear. If the Japanese Army is involved, then all bets are off. We should warn our detective he’s in over his head - oh shit.
Well, the new team assigned to the case might not have any living witnesses, but every detective worth their salt knows how to investigate a case. There are a few angles that can be examined, aligned along the central axis of any investigation: look through the crime scene or examine the victim? After all, a man with’ silence’ carved into his chest probably has it there for a reason. But the fish plant doesn’t seem like a terribly convincing commercial operation either - and why on earth would the murder victim be allowed access to the grounds of the factory?
Then again, the labyrinth of Japanese bureaucracy will present challenges from the get go, and the man who killed the victim was in the Army, so perhaps focusing on this will let us push deeper into the facts of the case. (Full disclaimer: there are many paths available to be taken in this series of events, and I highly recommend you try different choices on each run-through.) A basic profile will help us, as will determining the victim’s connections. The Army records will surely help us find the truth - oh dear. Well, it’s time to pull out the Audit Gun to shoot at the Army so they’ll change their minds and wow it’s not working. The pit of snakes that is the Japanese Government has taken an interest, and oh boy it is angry.
So, to recap: a body, a grenade, a factory that shouldn’t be running, a killer who shouldn’t have been there and an army that isn’t letting on. What the hell is going on? Bureaucratic wrangling aside, we could always exploit the one unchangeable binary of Japanese politics, the Army-Navy rivalry, and - uh - what the hell? They’re working with each other? How can the whole of Japanese politics be upended for the sake of a single dead body?
...They’re all in on this, aren’t they?
Well, if the Navy insists on sticking its nose into affairs, that’s where we’ll continue searching. And it looks like it’s tied into everything that’s been going on, including a suspicious series of shipments and a preponderance of outdated military currency. All we have to do is hit them with in force with an audit they won’t see coming, and we’ll find out just how deep the rabbit hole goes -
Oh my god. Where does this end? We have to keep looking, maybe the trail will end in a tidy bunch of suspects we can arrest to make the problem go away. People like - uh -
The Army? The Government? It’s getting out of hand, already has in fact, but I’m certain if we just keep going we’ll stabilise the situation, so long as we don’t touch -
The banks, like Yasuda and Minezaka? The ones we found with mud on their faces and Army money in their pockets? Oh no. Oh no no no. How far will the heavens fall before Japan itself is tugged into the abyss with them all? And if a pillar of the Japanese Economy crumbles, what happens to the others?
Japan plummets, but perhaps in those long steep drops it will find its soul. For was it not written: falling is the essence of a flower?
Link to Section II
Link to Section III
Link to Section IV
Link to Section V
Link to Section VI
Link to Section VII
submitted by AHedgeKnight to TNOmod [link] [comments]

Vault 7 - CIA Hacking Tools Revealed

Vault 7 - CIA Hacking Tools Revealed
March 07, 2017
from Wikileaks Website


Press Release
Today, Tuesday 7 March 2017, WikiLeaks begins its new series of leaks on the U.S. Central Intelligence Agency.
Code-named "Vault 7" by WikiLeaks, it is the largest ever publication of confidential documents on the agency.
The first full part of the series, "Year Zero", comprises 8,761 documents and files from an isolated, high-security network situated inside the CIA's Center for Cyber Intelligence (below image) in Langley, Virgina.
It follows an introductory disclosure last month of CIA targeting French political parties and candidates in the lead up to the 2012 presidential election.
Recently, the CIA lost control of the majority of its hacking arsenal including,
  1. malware
  2. viruses
  3. trojans
  4. weaponized "zero day" exploits
  5. malware remote control systems

...and associated documentation.
This extraordinary collection, which amounts to more than several hundred million lines of code, gives its possessor the entire hacking capacity of the CIA.
The archive appears to have been circulated among former U.S. government hackers and contractors in an unauthorized manner, one of whom has provided WikiLeaks with portions of the archive.
"Year Zero" introduces the scope and direction of the CIA's global covert hacking program, its malware arsenal and dozens of "zero day" weaponized exploits against a wide range of U.S. and European company products, include,

  1. Apple's iPhone
  2. Google's Android
  3. Microsoft's Windows
  4. Samsung TVs,

...which are turned into covert microphones.
Since 2001 the CIA has gained political and budgetary preeminence over the U.S. National Security Agency (NSA).
The CIA found itself building not just its now infamous drone fleet, but a very different type of covert, globe-spanning force - its own substantial fleet of hackers.
The agency's hacking division freed it from having to disclose its often controversial operations to the NSA (its primary bureaucratic rival) in order to draw on the NSA's hacking capacities.
By the end of 2016, the CIA's hacking division, which formally falls under the agency's Center for Cyber Intelligence (CCI - below image), had over 5000 registered users and had produced more than a thousand,
hacking systems trojans viruses,
...and other "weaponized" malware.


Such is the scale of the CIA's undertaking that by 2016, its hackers had utilized more codes than those used to run Facebook.
The CIA had created, in effect, its "own NSA" with even less accountability and without publicly answering the question as to whether such a massive budgetary spend on duplicating the capacities of a rival agency could be justified.
In a statement to WikiLeaks the source details policy questions that they say urgently need to be debated in public, including whether the CIA's hacking capabilities exceed its mandated powers and the problem of public oversight of the agency.
The source wishes to initiate a public debate about the security, creation, use, proliferation and democratic control of cyberweapons.
Once a single cyber 'weapon' is 'loose' it can spread around the world in seconds, to be used by rival states, cyber mafia and teenage hackers alike.

Julian Assange, WikiLeaks editor stated that,
"There is an extreme proliferation risk in the development of cyber 'weapons'.
Comparisons can be drawn between the uncontrolled proliferation of such 'weapons', which results from the inability to contain them combined with their high market value, and the global arms trade.
But the significance of 'Year Zero' goes well beyond the choice between cyberwar and cyberpeace. The disclosure is also exceptional from a political, legal and forensic perspective."

Wikileaks has carefully reviewed the "Year Zero" disclosure and published substantive CIA documentation while avoiding the distribution of 'armed' cyberweapons until a consensus emerges on the technical and political nature of the CIA's program and how such 'weapons' should analyzed, disarmed and published.

Wikileaks has also decided to Redact (see far below) and Anonymize some identifying information in "Year Zero" for in depth analysis. These redactions include ten of thousands of CIA targets and attack machines throughout,
Latin America Europe the United States

While we are aware of the imperfect results of any approach chosen, we remain committed to our publishing model and note that the quantity of published pages in "Vault 7" part one ("Year Zero") already eclipses the total number of pages published over the first three years of the Edward Snowden NSA leaks.


CIA malware targets iPhone, Android, smart TVs
CIA malware and hacking tools are built by EDG (Engineering Development Group), a software development group within CCI (Center for Cyber Intelligence), a department belonging to the CIA's DDI (Directorate for Digital Innovation).
The DDI is one of the five major directorates of the CIA (see above image of the CIA for more details).
The EDG is responsible for the development, testing and operational support of all backdoors, exploits, malicious payloads, trojans, viruses and any other kind of malware used by the CIA in its covert operations world-wide.
The increasing sophistication of surveillance techniques has drawn comparisons with George Orwell's 1984, but "Weeping Angel", developed by the CIA's Embedded Devices Branch (EDB), which infests smart TVs, transforming them into covert microphones, is surely its most emblematic realization.
The attack against Samsung smart TVs was developed in cooperation with the United Kingdom's MI5/BTSS.
After infestation, Weeping Angel places the target TV in a 'Fake-Off' mode, so that the owner falsely believes the TV is off when it is on. In 'Fake-Off' mode the TV operates as a bug, recording conversations in the room and sending them over the Internet to a covert CIA server.
As of October 2014 the CIA was also looking at infecting the vehicle control systems used by modern cars and trucks. The purpose of such control is not specified, but it would permit the CIA to engage in nearly undetectable assassinations.
The CIA's Mobile Devices Branch (MDB) developed numerous attacks to remotely hack and control popular smart phones. Infected phones can be instructed to send the CIA the user's geolocation, audio and text communications as well as covertly activate the phone's camera and microphone.
Despite iPhone's minority share (14.5%) of the global smart phone market in 2016, a specialized unit in the CIA's Mobile Development Branch produces malware to infest, control and exfiltrate data from iPhones and other Apple products running iOS, such as iPads.
CIA's arsenal includes numerous local and remote "zero days" developed by CIA or obtained from GCHQ, NSA, FBI or purchased from cyber arms contractors such as Baitshop.
The disproportionate focus on iOS may be explained by the popularity of the iPhone among social, political, diplomatic and business elites.
A similar unit targets Google's Android which is used to run the majority of the world's smart phones (~85%) including Samsung, HTC and Sony. 1.15 billion Android powered phones were sold last year.
"Year Zero" shows that as of 2016 the CIA had 24 "weaponized" Android "zero days" which it has developed itself and obtained from GCHQ, NSA and cyber arms contractors.
These techniques permit the CIA to bypass the encryption of, WhatsApp
  1. Signal
  2. Telegram
  3. Wiebo
  4. Confide
  5. Cloackman
...by hacking the "smart" phones that they run on and collecting audio and message traffic before encryption is applied.
CIA malware targets Windows, OSx, Linux, routers
The CIA also runs a very substantial effort to infect and control Microsoft Windows users with its malware.
This includes multiple local and remote weaponized "zero days", air gap jumping viruses such as "Hammer Drill" which infects software distributed on CD/DVDs, infectors for removable media such as USBs, systems to hide data in images or in covert disk areas ("Brutal Kangaroo") and to keep its malware infestations going.
Many of these infection efforts are pulled together by the CIA's Automated Implant Branch (AIB), which has developed several attack systems for automated infestation and control of CIA malware, such as "Assassin" and "Medusa".
Attacks against Internet infrastructure and webservers are developed by the CIA's Network Devices Branch (NDB).
The CIA has developed automated multi-platform malware attack and control systems covering Windows, Mac OS X, Solaris, Linux and more, such as EDB's "HIVE" and the related "Cutthroat" and "Swindle" tools, which are described in the examples section far below.
CIA 'hoarded' vulnerabilities ("zero days")
In the wake of Edward Snowden's leaks about the NSA, the U.S. technology industry secured a commitment from the Obama administration that the executive would disclose on an ongoing basis - rather than hoard - serious vulnerabilities, exploits, bugs or "zero days" to Apple, Google, Microsoft, and other US-based manufacturers.
Serious vulnerabilities not disclosed to the manufacturers places huge swathes of the population and critical infrastructure at risk to foreign intelligence or cyber criminals who independently discover or hear rumors of the vulnerability.
If the CIA can discover such vulnerabilities so can others.
The U.S. government's commitment to the Vulnerabilities Equities Process came after significant lobbying by US technology companies, who risk losing their share of the global market over real and perceived hidden vulnerabilities.
The government stated that it would disclose all pervasive vulnerabilities discovered after 2010 on an ongoing basis.
"Year Zero" documents show that the CIA breached the Obama administration's commitments. Many of the vulnerabilities used in the CIA's cyber arsenal are pervasive and some may already have been found by rival intelligence agencies or cyber criminals.
As an example, specific CIA malware revealed in "Year Zero" is able to penetrate, infest and control both the Android phone and iPhone software that runs or has run presidential Twitter accounts.
The CIA attacks this software by using undisclosed security vulnerabilities ("zero days") possessed by the CIA but if the CIA can hack these phones then so can everyone else who has obtained or discovered the vulnerability.
As long as the CIA keeps these vulnerabilities concealed from Apple and Google (who make the phones) they will not be fixed, and the phones will remain hackable.
The same vulnerabilities exist for the population at large, including the U.S. Cabinet, Congress, top CEOs, system administrators, security officers and engineers.
By hiding these security flaws from manufacturers like Apple and Google the CIA ensures that it can hack everyone at the expense of leaving everyone hackable.
'Cyberwar' programs are a serious proliferation risk
Cyber 'weapons' are not possible to keep under effective control.
While nuclear proliferation has been restrained by the enormous costs and visible infrastructure involved in assembling enough fissile material to produce a critical nuclear mass, cyber 'weapons', once developed, are very hard to retain.
Cyber 'weapons' are in fact just computer programs which can be pirated like any other. Since they are entirely comprised of information they can be copied quickly with no marginal cost.
Securing such 'weapons' is particularly difficult since the same people who develop and use them have the skills to exfiltrate copies without leaving traces - sometimes by using the very same 'weapons' against the organizations that contain them.
There are substantial price incentives for government hackers and consultants to obtain copies since there is a global "vulnerability market" that will pay hundreds of thousands to millions of dollars for copies of such 'weapons'.
Similarly, contractors and companies who obtain such 'weapons' sometimes use them for their own purposes, obtaining advantage over their competitors in selling 'hacking' services.
Over the last three years the United States intelligence sector, which consists of government agencies such as the CIA and NSA and their contractors, such as Booz Allan Hamilton, has been subject to unprecedented series of data exfiltrations by its own workers.
A number of intelligence community members not yet publicly named have been arrested or subject to federal criminal investigations in separate incidents.
Most visibly, on February 8, 2017 a U.S. federal grand jury indicted Harold T. Martin III with 20 counts of mishandling classified information.
The Department of Justice alleged that it seized some 50,000 gigabytes of information from Harold T. Martin III that he had obtained from classified programs at NSA and CIA, including the source code for numerous hacking tools.
Once a single cyber 'weapon' is 'loose' it can spread around the world in seconds, to be used by peer states, cyber mafia and teenage hackers alike.
U.S. Consulate in Frankfurt is a covert CIA hacker base
In addition to its operations in Langley, Virginia the CIA also uses the U.S. consulate in Frankfurt as a covert base for its hackers covering Europe, the Middle East and Africa.
CIA hackers operating out of the Frankfurt consulate ("Center for Cyber Intelligence Europe" or CCIE) are given diplomatic ("black") passports and State Department cover.
The instructions for incoming CIA hackers make Germany's counter-intelligence efforts appear inconsequential: "Breeze through German Customs because you have your cover-for-action story down pat, and all they did was stamp your passport" Your Cover Story (for this trip) Q: Why are you here? A: Supporting technical consultations at the Consulate. Two earlier WikiLeaks publications give further detail on CIA approaches to customs and secondary screening procedures.
Once in Frankfurt CIA hackers can travel without further border checks to the 25 European countries that are part of the Shengen open border area - including France, Italy and Switzerland.
A number of the CIA's electronic attack methods are designed for physical proximity.
These attack methods are able to penetrate high security networks that are disconnected from the internet, such as police record database. In these cases, a CIA officer, agent or allied intelligence officer acting under instructions, physically infiltrates the targeted workplace.
The attacker is provided with a USB containing malware developed for the CIA for this purpose, which is inserted into the targeted computer. The attacker then infects and exfiltrates data to removable media.
For example, the CIA attack system Fine Dining, provides 24 decoy applications for CIA spies to use.
To witnesses, the spy appears to be running a program showing videos (e.g VLC), presenting slides (Prezi), playing a computer game (Breakout2, 2048) or even running a fake virus scanner (Kaspersky, McAfee, Sophos).
But while the decoy application is on the screen, the underlying system is automatically infected and ransacked.
How the CIA dramatically increased proliferation risks
In what is surely one of the most astounding intelligence own goals in living memory, the CIA structured its classification regime such that for the most market valuable part of "Vault 7", the CIA's, weaponized malware (implants + zero days) Listening Posts (LP) Command and Control (C2) systems, ...the agency has little legal recourse.
The CIA made these systems unclassified.
Why the CIA chose to make its cyber-arsenal unclassified reveals how concepts developed for military use do not easily crossover to the 'battlefield' of cyber 'war'.
To attack its targets, the CIA usually requires that its implants communicate with their control programs over the internet.
If CIA implants, Command & Control and Listening Post software were classified, then CIA officers could be prosecuted or dismissed for violating rules that prohibit placing classified information onto the Internet.
Consequently the CIA has secretly made most of its cyber spying/war code unclassified. The U.S. government is not able to assert copyright either, due to restrictions in the U.S. Constitution.
This means that cyber 'arms' manufactures and computer hackers can freely "pirate" these 'weapons' if they are obtained. The CIA has primarily had to rely on obfuscation to protect its malware secrets.
Conventional weapons such as missiles may be fired at the enemy (i.e. into an unsecured area). Proximity to or impact with the target detonates the ordnance including its classified parts. Hence military personnel do not violate classification rules by firing ordnance with classified parts.
Ordnance will likely explode. If it does not, that is not the operator's intent.
Over the last decade U.S. hacking operations have been increasingly dressed up in military jargon to tap into Department of Defense funding streams.
For instance, attempted "malware injections" (commercial jargon) or "implant drops" (NSA jargon) are being called "fires" as if a weapon was being fired.
However the analogy is questionable.
Unlike bullets, bombs or missiles, most CIA malware is designed to live for days or even years after it has reached its 'target'. CIA malware does not "explode on impact" but rather permanently infests its target. In order to infect target's device, copies of the malware must be placed on the target's devices, giving physical possession of the malware to the target.
To exfiltrate data back to the CIA or to await further instructions the malware must communicate with CIA Command & Control (C2) systems placed on internet connected servers.
But such servers are typically not approved to hold classified information, so CIA command and control systems are also made unclassified.
A successful 'attack' on a target's computer system is more like a series of complex stock maneuvers in a hostile take-over bid or the careful planting of rumors in order to gain control over an organization's leadership rather than the firing of a weapons system.
If there is a military analogy to be made, the infestation of a target is perhaps akin to the execution of a whole series of military maneuvers against the target's territory including observation, infiltration, occupation and exploitation.
Evading forensics and anti-virus
A series of standards lay out CIA malware infestation patterns which are likely to assist forensic crime scene investigators as well as, Apple
  1. Microsoft
  2. Google
  3. Samsung
  4. Nokia
  5. Blackberry
  6. Siemens
  7. anti-virus companies,
...attribute and defend against attacks.
"Tradecraft DO's and DON'Ts" contains CIA rules on how its malware should be written to avoid fingerprints implicating the "CIA, US government, or its witting partner companies" in "forensic review".
Similar secret standards cover the, use of encryption to hide CIA hacker and malware communication (pdf) describing targets & exfiltrated data (pdf) executing payloads (pdf) persisting (pdf), ...in the target's machines over time.
CIA hackers developed successful attacks against most well known anti-virus programs.
These are documented in, AV defeats Personal Security Products Detecting and defeating PSPs PSP/DebuggeRE Avoidance For example, Comodo was defeated by CIA malware placing itself in the Window's "Recycle Bin". While Comodo 6.x has a "Gaping Hole of DOOM".
CIA hackers discussed what the NSA's "Equation Group" hackers did wrong and how the CIA's malware makers could avoid similar exposure.


The CIA's Engineering Development Group (EDG) management system contains around 500 different projects (only some of which are documented by "Year Zero") each with their own sub-projects, malware and hacker tools.
The majority of these projects relate to tools that are used for,
penetration infestation ("implanting") control exfiltration
Another branch of development focuses on the development and operation of Listening Posts (LP) and Command and Control (C2) systems used to communicate with and control CIA implants.
Special projects are used to target specific hardware from routers to smart TVs.
Some example projects are described below, but see the table of contents for the full list of projects described by WikiLeaks' "Year Zero".
The CIA's hand crafted hacking techniques pose a problem for the agency.
Each technique it has created forms a "fingerprint" that can be used by forensic investigators to attribute multiple different attacks to the same entity.
This is analogous to finding the same distinctive knife wound on multiple separate murder victims. The unique wounding style creates suspicion that a single murderer is responsible.
As soon one murder in the set is solved then the other murders also find likely attribution.
The CIA's Remote Devices Branch's UMBRAGE group collects and maintains a substantial library of attack techniques 'stolen' from malware produced in other states including the Russian Federation.
With UMBRAGE and related projects the CIA cannot only increase its total number of attack types but also misdirect attribution by leaving behind the "fingerprints" of the groups that the attack techniques were stolen from.
UMBRAGE components cover,
  1. password collection
  2. webcam capture
  3. data destruction
  4. persistence
  5. privilege escalation
  6. stealth
  7. anti-virus (PSP) avoidance
  8. survey techniques

Fine Dining
Fine Dining comes with a standardized questionnaire i.e menu that CIA case officers fill out.
The questionnaire is used by the agency's OSB (Operational Support Branch) to transform the requests of case officers into technical requirements for hacking attacks (typically "exfiltrating" information from computer systems) for specific operations.
The questionnaire allows the OSB to identify how to adapt existing tools for the operation, and communicate this to CIA malware configuration staff.
The OSB functions as the interface between CIA operational staff and the relevant technical support staff.
Among the list of possible targets of the collection are,
  • 'Asset'
  • 'Liason Asset'
  • 'System Administrator'
  • 'Foreign Information Operations'
  • 'Foreign Intelligence Agencies'
  • 'Foreign Government Entities'
Notably absent is any reference to extremists or transnational criminals. The 'Case Officer' is also asked to specify the environment of the target like the type of computer, operating system used, Internet connectivity and installed anti-virus utilities (PSPs) as well as a list of file types to be exfiltrated like Office documents, audio, video, images or custom file types.
The 'menu' also asks for information if recurring access to the target is possible and how long unobserved access to the computer can be maintained.
This information is used by the CIA's 'JQJIMPROVISE' software (see below) to configure a set of CIA malware suited to the specific needs of an operation.
  1. 'Improvise' is a toolset for configuration, post-processing, payload setup and execution vector
  2. selection for survey/exfiltration tools supporting all major operating systems like,
  3. Windows (Bartender)
  4. MacOS (JukeBox)
  5. Linux (DanceFloor)
  6. Its configuration utilities like Margarita allows the NOC (Network Operation Center) to customize tools
based on requirements from 'Fine Dining' questionnaires.
HIVE is a multi-platform CIA malware suite and its associated control software.
The project provides customizable implants for Windows, Solaris, MikroTik (used in internet routers) and Linux platforms and a Listening Post (LP)/Command and Control (C2) infrastructure to communicate with these implants.
The implants are configured to communicate via HTTPS with the webserver of a cover domain; each operation utilizing these implants has a separate cover domain and the infrastructure can handle any number of cover domains.
Each cover domain resolves to an IP address that is located at a commercial VPS (Virtual Private Server) provider.
The public-facing server forwards all incoming traffic via a VPN to a 'Blot' server that handles actual connection requests from clients.
It is setup for optional SSL client authentication: if a client sends a valid client certificate (only implants can do that), the connection is forwarded to the 'Honeycomb' toolserver that communicates with the implant.
If a valid certificate is missing (which is the case if someone tries to open the cover domain website by accident), the traffic is forwarded to a cover server that delivers an unsuspicious looking website.
The Honeycomb toolserver receives exfiltrated information from the implant; an operator can also task the implant to execute jobs on the target computer, so the toolserver acts as a C2 (command and control) server for the implant.
Similar functionality (though limited to Windows) is provided by the RickBobby project.
See the classified user and developer guides for HIVE.

Frequently Asked Questions

Why now?
WikiLeaks published as soon as its verification and analysis were ready. In February the Trump administration has issued an Executive Order calling for a "Cyberwar" review to be prepared within 30 days.
While the review increases the timeliness and relevance of the publication it did not play a role in setting the publication date.
Names, email addresses and external IP addresses have been redacted in the released pages (70,875 redactions in total) until further analysis is complete. Over-redaction: Some items may have been redacted that are not employees, contractors, targets or otherwise related to the agency, but are, for example, authors of documentation for otherwise public projects that are used by the agency.
Identity vs. person: the redacted names are replaced by user IDs (numbers) to allow readers to assign multiple pages to a single author. Given the redaction process used a single person may be represented by more than one assigned identifier but no identifier refers to more than one real person.
Archive attachments (zip, tar.gz, ...), are replaced with a PDF listing all the file names in the archive. As the archive content is assessed it may be made available; until then the archive is redacted.
Attachments with other binary content, are replaced by a hex dump of the content to prevent accidental invocation of binaries that may have been infected with weaponized CIA malware. As the content is assessed it may be made available; until then the content is redacted.
Tens of thousands of routable IP addresses references, (including more than 22 thousand within the United States) that correspond to possible targets, CIA covert listening post servers, intermediary and test systems, are redacted for further exclusive investigation.
Binary files of non-public origin, are only available as dumps to prevent accidental invocation of CIA malware infected binaries.
Organizational Chart
The organizational chart (far above image) corresponds to the material published by WikiLeaks so far.
Since the organizational structure of the CIA below the level of Directorates is not public, the placement of the EDG and its branches within the org chart of the agency is reconstructed from information contained in the documents released so far.
It is intended to be used as a rough outline of the internal organization; please be aware that the reconstructed org chart is incomplete and that internal reorganizations occur frequently.
Wiki pages
"Year Zero" contains 7818 web pages with 943 attachments from the internal development groupware. The software used for this purpose is called Confluence, a proprietary software from Atlassian.
Webpages in this system (like in Wikipedia) have a version history that can provide interesting insights on how a document evolved over time; the 7818 documents include these page histories for 1136 latest versions.
The order of named pages within each level is determined by date (oldest first). Page content is not present if it was originally dynamically created by the Confluence software (as indicated on the re-constructed page).
What time period is covered?
The years 2013 to 2016. The sort order of the pages within each level is determined by date (oldest first).
WikiLeaks has obtained the CIA's creation/last modification date for each page but these do not yet appear for technical reasons. Usually the date can be discerned or approximated from the content and the page order.
If it is critical to know the exact time/date contact WikiLeaks.
What is "Vault 7"
"Vault 7" is a substantial collection of material about CIA activities obtained by WikiLeaks.
When was each part of "Vault 7" obtained?
Part one was obtained recently and covers through 2016. Details on the other parts will be available at the time of publication.
Is each part of "Vault 7" from a different source?
Details on the other parts will be available at the time of publication.
What is the total size of "Vault 7"?
The series is the largest intelligence publication in history.
How did WikiLeaks obtain each part of "Vault 7"?
Sources trust WikiLeaks to not reveal information that might help identify them.
Isn't WikiLeaks worried that the CIA will act against its staff to stop the series?
No. That would be certainly counter-productive.
Has WikiLeaks already 'mined' all the best stories?
No. WikiLeaks has intentionally not written up hundreds of impactful stories to encourage others to find them and so create expertise in the area for subsequent parts in the series. They're there.
Look. Those who demonstrate journalistic excellence may be considered for early access to future parts.
Won't other journalists find all the best stories before me?
Unlikely. There are very considerably more stories than there are journalists or academics who are in a position to write them.
submitted by CuteBananaMuffin to conspiracy [link] [comments]

Recap: maps are getting better, adding more style to your app, and those performance issues... 🐌

Hey everyone!
We're pumped about Flutter Interact on December 11th! How about you?
Heads up -- normally, we'd do another recap on Dec 19th, but we're going to do a special "interact edition" on Dec 16th, so keep an eye out.
As always, let us know what you think about the recap. Love it? Hate it? Let us know in the comments!
Want to get it by email? Click here.


Impress your friends and lovers with Maps… 🗺

With maps being a near-ubiquitous feature in mobile apps nowadays and support in Flutter improving, we present to you a collection of resources for adding maps to your Flutter app and customizing it to your heart’s desire.

Wait...what if I don’t want to use Google Maps?

Then you’re sh*t out of luck...kidding! While Google Maps is the prominent example of maps in Flutter, there are a couple of other, less talked about options:

P.S. For those hoping for a pure Dart implementation of the Google Maps SDK, there’s no official word yet but there is an open feature request that you should most certainly star if you’re interested.

Have you integrated maps into your Flutter app? Face any challenges? Have any tips to share with the rest of the community? Let us know in the comments.


Makin’ that Flutter app look fly... 💎

With the ability to control every single pixel plus a lot of great built-in tooling for dealing with things like animation, Flutter really does make it easier to say "yes" to designers 🤪

Don’t worry -- we didn’t forget the widget of the week (actually the last two since we’re a twice a month recap)...

P.S. if you missed the previous recap, we covered a ton on UI, styling and animation. Highly recommended if you’re feeling giddy after reading the above.


So you’ve got performance issues... 🐌

Your app looks great. You have users. Life is good. Before you’ve even had time to relish in your success, your users are complaining about all kinds of jank. Life is not good. What do you do?

Want to nerd out and learn more about Flutter architecture and how things are built…?


Stuff we couldn’t fit in another section… 📦

Nowadays, there is so much going on in the Flutter-verse that it's hard to capture everything in one place. So here's other important stuff that didn't quite fit in with the other news.

From the Flutter team...


Meet other Flutter devs...in real life! 🤓

This is your chance. Get your a** out of your desk chair or from behind your standing desk and meet some other Flutter devs at some of these great upcoming events...

Enjoyed this recap? Sign up to get it delivered by email (twice a month).
submitted by jdixon04 to FlutterDev [link] [comments]

Finance and bollockshit manifesto mk 8. Work in progress




Hashtag the lot.
Epic Intro/My bit.
Firstly I apologise for my scatalogical approach. In my defense it mirrors my mind perfectly! And b), I wish I could explain myself with more or less clarity or brevity respectively, whichever, and both in unequal measure, probably, and if you make it all the way to the end of this, you will wish that too, or something like it! But I am me, these are my thoughts, and so it goes. And I just looked up scatalogical and it doesn't mean what I thought it did. But hey ho! - sometimes you have to make the words say what you want them to say.
Finance is an entity which resides within the framework of humanity. And this is a truth.
We are living through a period of great change and upheaval. And this is also the truth.
The world is going to change. Its already started changing before our very eyes. The real question is how are we going to change, in reaction to it? And that, as ever, is only up to us. As ever. You and me, and everyone else who claim this time as our own, here, now, today. Because Who else is there right?
All good so far? Good. Let's crack on.
So Either good people will claim this time of change and set a wholesome agenda, or those who have already claimed this time will drive it and the world will be shaped by their agendas. Either or. And remember that, because times of Change, by their nature, are either or and so not times of compromise. Look around you. Do any of us feel like compromising? See? Good. Hold on to that thought..
And this particular either or that we face is that only two paths lay before us, the one we are currently on, but the other we must choose for ourselves, and not from the options laid before us, and so on and so forth.
And how's it been working out for us so far, would you say? At the beginning of this time of change that yet stands awaiting a more legitimate claim?
So finance has never actually worked for us, as a whole. it mostly works for those with it, and against those without it, sometimes more-so, other times less, but that dividing line has always served to effectively split humanity in two. But the interesting thing is, finance doesn't decide where that line is - how many of us are above it and how many are below. We do. And so this is an issue only we can resolve. Because this isn't a problem with finance, this is a problem with us.
Times of Change always favours the bold and the brave irrespective of their values and virtues. But not because change is immoral, change is amoral, but Lies are cheap and Thats just the way it is and it means good people just have to try that little bit harder. And so it always goes.
For if we are to claim the changing times, the beginning of which I have come to think of as Transition Time, we must stop thinking that piecemeal improvements in boomtime, that then mostly slip away with the next financial crash are acceptable, because they're not, they never really have been, and instead we need to work out how to find, and then implement what I like to call 'actual solutions', Century 21 stylee, which is really just a new way of looking at things - and in the case of finance that actually means working out how to raise us up above this line, and keeping us there. And how many of us is actually acceptable? That, also as ever, is only up to us. How many people in poverty do you find acceptable? Be honest. What percentage of us is OK if they suffer? Dichotomy alert.!
out how to change the system so this is the permanent result - Which really is much less daunting than it sounds, no (really) , because, when you have looked at the same problem the same way for long enough, and remember that this has been our perspective over countless generations, then through a process of distorted generational purpetuation, somewhere along the line, their choice becomes our destiny as their lie becomes our truth: Somewhere in our distant past we came to believe that the perspective we still hold till this day, that defines our relationship with it, is not just the right one, but the only one. It is what it is. Because its what we've always known, it's what we've always done. But although it is, its not. We are wrong. We were lied to about this, we are now lying to ourselves about this, and unless we find a way to change it, we will pass this lie as a curse down to our children. And for what it's worth, in a minute I'm going to prove that you are lying to yourself. Oh Yes I am (smile). I have to, because it's the only first step I know of, that begins a new path.
Because in order to hold on to this implicitly erroneous belief, that the current perspective we share in really is the only way to look at finance, we have had to relinquish the whole of the truth; and amongst that lost truth is the truth that there are many ways, and therefore there are going to be better ways. But you can't allow yourself to believe that yet? Why would you need to allow yourself to believe something? (think) Because truth is by nessecity, a binary mechanism You either have it or you don't, despite what gulianni claimed, remember? You don't loose sight of some truth, you loose sight of the truth. And (so) by accepting this lie as a truth we have then surrendered the rest of the truth of the thing with it. Without realising it. Without realising what we've lost. We really have, and my first aim, and by my proving to you that you do lie to yourself about this, is to then enable you to envisage what else we might have surrendered with that truth. Because amongst what we have lost is Specifically a skill which we will soon need, and in spades.
So A thousand Apologies. Or not, if it doesn't work, as whichever the case maybe, and so are you ready for my proof, Liar liar pants on fire?
Good. Let's see if I can find the words to make you see the truth of what we all need to re-learn.
Because the proof of this truth is hiding right there infront of your minds eye. In plain sight no less, But we have to choose to see it (why would we choose not to see it?) The truth that in a system which humanity has itself created, we, humanity, now suffer from and feel powerless to, affect positive change, in our own system, that we created.
And therein hides the problem. Because we are, aren't we? Of course we are. At this moment, here now today we have zero influence so we have zero power, we are powerless, most of us, but the truth we can't see is that its not because the entity that is finance renders us powerless, it can't, it is after all only an entity within our own framework, but because when the perspective we share only works when we are powerless, then this lie had to become our foundational truth, so basically we do it to ourselves, and then we subconsciously perpetuate it, each unto their own world, except for the few, that we are powerless. And so we are. Aren't we? of course we are. Otherwise we wouldn't allow most of us to be below that line, wouldn't we? Don't you see? You agree, it's stupid, but still only unrealistically. So no, Not quite yet. Let's keep going.
because we have tacitly allowed ourselves to accept this inherited lie as our own perspective, so we have surrendered the whole truth of the thing. Generation after generation. And altho we have lived with this distorted perspective for countless generations, in our near future,
A skill which we have had to surrender to make our current perspective our truth will become that which we will need the most.
And so that makes this a truth we have rediscover, and then confront, and the time, as ever, is now.
Because for jolly good reasons that I'm going to expound shortly, this has now become a problem our generation must set out to resolve. Because that which we don't even yet fully realise we have lost, is that which we will need most in our near future, and specifically, the ability to properly discern the difference between the truth of a thing and its mythology. Because this is a tool we can only wield in truth, and it's a skill we are going to have to rediscover, and then get very good at, and sooner than we think. Tick tock said the clock.
Try it. Think about any humanity affecting issue and then try and separate out it's truth from its mythology. In our time, as it is, unless you are an expert in that field, we simply can't do it, and the reason we can't is because this ability is an entity of the truth that we have surrendered to maintain our current perspective. Do you begin to see?
So with my poor skill I lay truths before you and yet can you still feel your resistance to them, to me?? Isn't that curious?. So Then try this. Prove me wrong. In the relationship between humanity and finance, which of the things we currently believe are true, are actually untrue? See? Because we can't tell. Because this distorted perspective we currently share obscures it's true nature from us. So we get it wrong. And we know that this is the truth, because its easily verifiable. because here at the end of the start of Century 21, finance still works against most of us. See? a candle truth. At the moment we mostly get it wrong so it only works for a few of us. But When we get it better finance will work for more of us, and then when we get it right finance will work for all of us. Simples right? . But now perhaps you're thinking too simple? But truth doesn't have to be complicated. Only lies demand complexity.
If we can actually come up with a different perspective it will cast finance in a new light, and this new light will reveal new options, or even better, old ideas will be rediscovered lthat we never realised the true value of at the time. Because that's the way this stuff often works. Round and around right? No?
For our entire relationship we have tinkered and we have tweaked, and if you think about it now, looking back, we have always been in reaction to and therefore subservient to, finance. It blazes a trail and we follow behind it, second guessing it's changing fortunes. Few of us benefiting from its fluctuations, but most of us suffering from those same fluctuations, of finance. And all our efforts, laudable and cynical alike have at best, served to curtail the damage, that the thing we created, to serve us, is causing us. Its creators. Which is Bonkers! You do realise that, right?
And one of my first aims is to make us confront the truth of this together. And I can't fail.
Because thats what's got to change. But why now?
Because change is coming, and we are all starting to realise this, aren't we? Because we were always destined to live through the beginings of what I suspect will become known in history as one of humanities greatest challenges, and we are generation number 1, to begin humanities journey towards acclimatisation with what we will eventually come to realise is our ever changing climate. Or, we will be the generation that failed all those who followed because we couldn't stop bickering about our bollockshit politics for long enough to stop and tell the difference between truth and mythology. Remember? And Once again its an either or. And its not funny how many of these eitheor scenarios are hiding in our immediate future. And they are going to make us confront which we are, eitheor, and in no uncertain terms. And Every time. And That's why we need to be able to tell the difference between truth and mythology again. Do you begin to see? Because one is important, but the other feels important, and our future is going to demand that we be able to tell them apart, and even when they are much less clear cut than they are now.
Do you remember babies in cages or that poor lads body washed up on the shores of Turkey? That was us that was. That is a truth by which history will already judge us. You and me, and everyone else we care about.
On the page of history that we get to write, that's what we've written so far. All of us, together. And this is truth whether we choose to believe it at the time, which is now of course, or not. Because this next era is destined to be a big deal on humanities journey. And maybe deep down we are all beginning to get a sense of this, but the problem is, when we look out at the world and see it as it is, here, now, today, without hope, maybe that's why we react the way that we seem to, without hope.
So now try to tally this humanity changing epoch approaching, with the piss poor piecemeal choices we are presented with from our opportunist pantomime personality bollockshit politics. Do you begin to get a sense of how mediocre we are allowing ourselves to be, compared to what we are going to have to become, and almost certainly sooner than we think. And that's why it's Not from the choices we are offered, but from the choice we have to choose for ourselves. Yikes! But hold on to that thought. Who we are going to have to become. Because this is the only truth that really matters, actually, because this is the only truth that can determine our success or failure in our approaching and increasingly challenging future. Who we must become. Remember that, as we try that little bit harder. But Transition Time will wait a little longer, for us to get our shit together, as long as we are going to get it together. Transition Time yet stands waiting for a more legit shit. Scatalogical indeed!
So if our current perspective is so wrong, whats the right way then Mr smartie pants? Well I'm glad you asked me that. Because that is exactly the first step. how would you look at it in a new way? What does a new perspective on finance actually feel like? And in a minute I'm going to try to make you actually feel what that actually feels like, actually, or at least what I think it should feel like, to try to show you how that works. And it is going to work, it has to. Because the time as ever, is now or never, and Together, we are going to have to look at finance from a completely new perspective if we are to get everyone above that line. Our line Remember? And Hold that thought too.
So Lots of thoughts to hold on to and still awaiting a new perspective with which to view them. Double yikes!
So It's time to dig out or truth goggles and set our bullshit detectors to 11, because we're going on a truth hunt, we're going to catch a big one. Because the truth is, our truth is MIA. presumed awol. And where's Big Ted when you need him.
So with caveats we can discount all the ways we have tried to balance the books so far. But don't forget that we have now entered the time of change. Remember? A time driven by new ideas. Either Ours or theirs, and in a new time we have to find a new perspective from which to look at our relationship, with finance. Im sorry to be labouring this so much, but I need it to really sink in. If we can frame our idea of finance in terms that are more inherently truthful and honest about what our relationship with it should be, then we will then gain new insights and therefore discover new ways to balance the books. Because that's how, in truth, we know, it works.
Now I know hardly anything about finance which is why when Lou told me about you, I wanted to make contact with you. Because Lou says you do, and that you want to drive positive change within the system, and what I have is a very humanity-centric outlook and a very different way of looking at things, a systematic and pragmatic way of looking at old problems, to recast them in a new C21 stylee light - which I believe might help you to achieve your aims, at the same time as me learning something I need to learn, to achieve my aim.
Here, let me try to give you a new perspective. Let's see if my thinking actually stands up.
Now, when looking for a new perspective the first trick is to slow right down. 5 miles an hour now, so you don't miss a thing.
Finance is an entity which resides within the framework of humanity and that means that finance takes its identity as an entity from the framework that is us. Finance is nothing more or less than what we allow it to be. Do you begin to see. And this will always be, the truth.
The truth that if we ceased to exist tomorrow finance would cease to have a framework within which to derive meaning, but if we woke up tomorrow and finance was gone, we would still exist, and we would continue to exist.
For what it's worth I call this 'take one thing away and then the other'. Its sometimes good for working out truth priorities between connected things.
And this speaks of the foundational truth of our relationship, the truth that our current perspective hides from us, the truth that with which, we can then begin to build a more honest relationship upon. A relationship that really could work for all of us. Everyone above that line. And for the rest of time. Because its our line, and this is our time. Transition time, if we choose it to be.
And What possible resistance could you offer against this ideology other than the futility of its indulgent fancy? And all I say to you friend, is that many ideas worth having have been met with derision, and have then made the journey up to doubtful, and then via unlikely to possible and then on to probable until it finally becomes bloody obvious.
Every worthwhile idea will have its time. That's the rules of evolution. But who gets to decide the time?
We will never be able to resolve our issues with Finance whilst we continue to chase behind it, attempting to implement what we even know at the time are inadequate piecemeal band-aid, too little too late plasters. And as shite as that is, as shite as we are, even this little we only manage in boom time. And thats how rubbish our powerlessness has rendered us. The powerlessness, don't forget, that our current perspective demands of us. Because the truth is, that line is ours. We maintain it. We decide how many are above and how many are below. Because there is only us. And this is our time. Generation no 1 at the start of Transition time. Wether we choose to believe it at the time, which is now, or not.
So Try again.
Because if this perspective had held our truth within it, then our Tweaking and tinkering over the countless generations would have already found a way to make it work. But we haven't. Because its not there, and we've suffered it long enough. The world is changing, our awareness is changing but our perspective will only, can only change, when we choose to accept that we need to try to find a new way of looking at the world. A more honest way. To make it work for all of us. Because this path doesn't work for most of us. At least we can agree on that right?
So I want Transition Time to become the beginning of this time of change, while we work it all out. The turning point of humanity in history, no really. Think about it. Because its just Another Either or. Albeit a crazy big one. Because Our environmental awareness has made us generation no 1 on this journey and so this Time has already begun. So its time for us to either change up or give up. To either find a way to meet our responsibilities to each other and our environment with honesty, equality and unity. Or. Otherwise, carry on this path we are currently on in growing division, deeper resentment and increasing likelihood of conflict. So What a choice! right? And yet still you resist. Do you begin to get a sense of how strong, how deep its hold is on you? But the trick is don't try to resist it, just let it go. We're on a truth hunt remember? Don't fight the lies, just ignore them.
We have to change the way things work and we have to find a way to demand of our power structures that these changes become our reality. So let's imagine what tools we have to make this change happen? You will look back into our history for your solutions, but my new perspective allows me to look forward for mine. century 21 stylee. Ready?
But just so you know, you're one letter out, because I'm not talking about revolution, and did your current perspective drive you to think down its predictable paths in that? Be honest, at least with yourself. If you are still allowing your thoughts to be directed by nothing better than basically historical precedent, then You need to let it go. Just be mindful.
Because Whilst you hold the same perspective you will always see the same choices, only Einstein said it much better. Remember, But Either way It's time to let go. The time as ever is Now.
So Not revolution, evolution, but not of humanity, of society. Because seemingly bizarrely, an actual Century 21 stylee solution will demand No change in political foundations, any of them, necessarily. no heads even have to roll. Well, make no promises, but instead A more honest perspective shows a new solution that actually fixes the problem in situ, as it were. And therefore possible Within our own existing reality. Fancy that.
Because basically We don't get rid of them, we just tell them that their future employment is now predicted on the provision of global humanitarian and environmental standards. Standards that the rest of us 6 odd billion people have all agreed upon, because when it's all of us together, how many of us below that line is acceptable? Thats right. Because it is only ever all of us, divided or together, there will never be anyone else who can make this change for us, just us. And this is how this always works, like this, every time, because at the end of the day, if we choose it to be, it's just a numbers game. Right?
but of course this is where the problem of our current political perspective kicks in again. Because we have allowed ourselves to be divided by bollockshit nonsense, remember? Truth and mythology. All that nonsensical political white noise that you are still allowing yourself to be distracted by, is only serving its purpose to negate the power that we could hold in those numbers, to wield, and just to become who we are going to need to become anyway, if only we weren't so divided. If only we weren't so stupid! .
But we could at least agree on getting everyone above that line, couldn't we? See? Even in our depths of division, we can still agree on nothing less than the first step towards the truth.. Imagine if we claimed this time and this became our no compromise in transition time. Our own either or. 6 odd billion of us
But sometimes, even though we know something is wrong it can still be hard to let go of. Weird but true, and especially beliefs we have held since before recorded history and right up until about 5 minutes ago when I proved that you were lying to yourself, remember? And Thats a long time. But you have to first let go, before you can then begin to move on, to find a better perspective - because that's how this stuff works. This is just a process after all. A series of steps, that's all.
And that's the power of slowing down.
Because Everything becomes a series of steps when you look at it slowly enough. 5 miles an hour.
And what our new perspective needs to show us, secondly, is how we can change the dynamic between us and finance from reactive to proactive, and this is the first step to getting us all over that line. Remember that. And then If we manage to find this new perspective together we can then take the first step on a new path, that can change finance into what we all need it to be. Into what works for all of us. Because this is not beyond us people. This isn't rocket science. This is just finance.
And this truth is the foundation of a new and more honest perspective. But you have to choose to see it. Because finance is an entity within the framework that is humanity. It is only ever us who can decide if it's fair or not. It is only ever us who decides where that line is, of if it even exists at all, and whether we choose to believe it or not, this will always be the truth. And the disparity between this truth and our current perspective is the journey that Transition Time can make us all make. And all we need to begin is to believe in the reality that there could be a new perspective, from which to view finance.
But now you want to actually imagine, if you can, A world where everyone is above that line. And to make it easier, I want you to make it this world, here now today, and when I say everyone, of course what I really mean is all of us, you and me, our kids, our families and everyone else we both care about, and everyone they care about, and so on and so forth. How would we all feel living in a world that because we made it happen, has a place for all of us and a better future for our children? Or is that just still too fanciful. A step too far? Has it all gone a bit Trevor the Unicorn? But if the voice in your head is pointing out how rediculous this all sounds, you should remember to remind it of who we now realise we are going to have to become, either or remember? and sooner than we think.
Can you sense the truth of this? I hope so.
If you are someone who did actually try to imagine a world with everyone over that line, how did it feel? How did you feel? But Be honest. Did you still have to struggle with getting past feeling a little silly for even trying to imagine it? Did you find yourself thinking against that voice insinuating privately to you how preposterous all this is, to imagine something so unrealistic.
And That right there is your own personal journey. The one that your new perspective must show you the candle truth of, if it is to prove its truth to you personally, as a new more honest perspective. Because greater honesty always brings with it greater clarity. That's how you can tell truth from mythology.
So the problem our new shared perspective must address isn't within finance, it's within humanity.
Technically true but way too vague to be useful.
We must first identity within ourselves what needs to change, and then work out the right mechanism to make the change happen, and then actually make the change, happen, whatever is it we need to do to heal finance within its framework.
So try this.
By looking at finance from my new C21 head-on perspective,
I've managed to first disprove to you the false credentials of our current perspective, to show to you the truth of our foundational lies that only serve to maintain that man-made divide, I've then tried to give you a sense of what we have lost, with that truth, including that skill that we really need to rediscover and perfect pronto. . And Then I've contrasted our current achievements against what we will have to actually achieve as climate change changes our environment.
Good. (smile)
But I thought all of this a long time ago. I've been living this perspective for some years now, and in that time I've Then I've gone on to work out what we actually do, to achieve it.
No really.
I've identified the specific mechanism that begins this whole chain reaction.
Cool huh?
By a single action that has a definite beginning within our time time, we begin a process of which the end result is humanity realises the truth. Many truths in fact. The truth that now is the time that we now all need to realise the truth again, that we are not powerless. And that our future will demand so much more anyway. The journey we either take together, or not at all. And so The lie is finally broken and the imbalance can begun to be redressed, whatever the hell that means. The beginings of the process of harmonisation. And remember, this will be our first either or in Transition Time and our first success to boot.
Howzat! Happy days!
And if we manage that, then we go on to find a way to Enshrine this harmony with Finance deep within our foundations , and we do this so that future generations won't have to come back and fight this same stoopid battle. Because fixing problems in a C21 stylee means fixing them so they stay fixed. Doyagetme . And if we do then go on to manage this, with history as our judge we would go from zeroes to hero's. Oh yes we would.
And thats the truth of what we could make our reality. Imagine it.
So we Dont change the money by changing the money, we change the money by changing peoples relationship to the money. And in the act of changing that relationship we then come to realise the truth, that we are not powerless.
I think of it as thinking at right angles to reality. When something is an entity within your own framework. You don't change the thing by trying to change it, you work out what's wrong in our relationship with the thing and then you fix that, in us, which fixes it, in it. Sort of thing. Im running out of words but please bare with me.
Now if you are still with me then hopefully what we have just shared was a sort of communal vision. 2 minds eyes looking together in a new way, a shared thought that maybe it could be different. If we choose it. But nothing more. And yet, if we have shared something, we could work it more together out, to then share it with others, and so on and so forth. Because that's how this works right. Round and around. And then what would happen?
Finance is an entity that resides within the framework of humanity. The truth that our current perspective has to obscure from us, to survive. The truth that will always want to slip away even as we struggle to hold it in our minds eye. Hiding in plain sight of all things! Fancy that.
Now I've already taken this journey, and for what it's worth, this is what I've learnt of myself. 2 lessons, and one of them you can't see coming or it doesn't work. I don't know why. Let's see if we can make this work.
Dont reach too hard for it, always let it come naturally. When you get stuck, think about why you are stuck, and then forget about it. Give it time. Have faith in yourself And have faith in the process. Always remember you are trying to make the world better, and at the same time you can only do what you can do. And both of these are true and yet sometimes you will believe neither. So it goes. but so it goes, and so it will return. And so you wait. And Whilst you wait, Foster your own belief in the truth of the goodness that is in most of us, because it is real, and a more honest perspective must be based on this truth if it is to succeed, and that reminds me, always hold everything up to the truth, especially things you think you already know. Smartie pants.
And all this scatalogical thought could be rubbish, it's literally just what I've thought. I don't know if this is the right way to look at it, although that's not true, I've yet to convince anyone I'm right, which is not the same, but at the moment it's just my idea I'm trying to share. But however you achieve it, the first step that we have to take, century 21 stylee, is a step away from our current perspective, to break free of financially flakery twentieth century thinking, and by so to realise the truth we have always known anyway. that piecemeal improvements will never make a real difference. And that this needs to be fixed, by finding actual solutions and that now is the time this needs to be fixed, as the world has already begun changing. The time of the bold. No compromises. That little bit harder.
So here we stand poised, Century 21 has reached its 20s, and we will soon truly have 2020 vision. For the first time ever. We have been though our terrible teens and This is stupid. This is pointless. This can't be done. Dont fall for it. Thats just a hundred generations of failure trying to stop you from making the break. If it was easy we would have already done it. Stick with it. We can do this. Remember don't fight it, just Let it go.
Because if you allow yourself to even accept that there is a better perspective to be found, better than whatever the hell this is anyway, then our truth is there to be discovered in that new perspective. And whether my method of perspective change proves to be the right one or not, which it is so it wont, it doesn't matter, (but of course it does) because by the act of accepting that there could be a new perspective, you are then in that very moment freed, if you choose to be, choose to be, to release yourself from the bonds of your old perspective.
Which sounds like nonsense, but it isn't, because it is in this very moment, where new thinking begins, and therefore new ideas have their very beginnings. Only Einstein still said it better.
In that moment, if you choose it, You are allowed to free yourself from the dogma of your old position. To then look for a better more honest way to consider our challenges. Because Nothing man-made is insurmountable. Right?
And a lot can happen in a moment. By accepting the potential validity of a new perspective and therefore breaking bonds with our old perspective it suddenly opens up a myriad of new angles from which you can view all our old problems, and you get to choose, but there is a way to find the right one. Im sorry, I wish I could better describe it but I have the words I have, no matter how I twist them. But there is this new feeling of mental and emotional liberation that comes from releasing yourself from your old ways of thinking, and in this moment you can choose to look around for a better perspective. Because it is there to be found. And I discovered the right perspective for me is the one that effectively hides our shared history from view in my minds eye, because I believe the answers to our relationship with finance can not be found in that history, so the perspective I chose was head on. Us, Here, now, today. Because that is the only place where I believe the truth of our times of the thing is to be found and besides it is the only time I have.
How you doing? I know this is hard work and if you've stuck with it so far, thank you. Not too much more
And then without what we are now coming to understand were our inherited blinkers we can then begin to do what we could not before, remember? to seperate out fact from mythology. try it? See for yourself? It works! If you have allowed yourself to see from a more honest perspective then you should see things with a new clarity of thought. Clarity with which we really can begin to work out the difference between what we thought was important, and what actually is important, to find out what really needs to change. And In us, and with honesty. Because this is a first step we are going to have to take many times, as many times as there are systems that underpin humanity, although this will be the first and the most difficult. But hey ho. That's why Zeroes to heros. Because every entity within the framework will have to come under review, as our environmental and population changes demand either better from dwindling resources, or we just give up and accept worse - and that, as ever only depends on whose agenda, remember? In generation no 1. Yiiiiiikkkkeeessss
We now understand the truth that we can't change anything without changing ourselves first, but the problem within this problem is that we can't change ourselves until be believe We can. And we won't believe We can until we have. Because we are buggers.
So we are the foundational problem that must be addressed in order to be able to resolve all other problems. And by the inequity we have allowed finance to create between us, so finance has made itself the key to this problem.
But I have a plan, or at least the first few steps. And it's a doozie.
I want to claim this time of change as Transition Time. I want to use it to drive a global humanitarian and environmental agenda, And the very first change, that begins this movement, is going to be the first step on a new financial path. But not from the paths we are offered, the one we must choose for ourselves, and together. The path that leads to getting everyone over that line. Nothing less. Because any less will be no where near enough for our future anyway. And Transition Time does after all favour the bold and the brave and so that is who we must become as we try that little bit harder. Once more, and with passion. Until it is enough. There is no other way, we have no other time, there is only ever going to be us, for us.
But we will always have us. And this will always be the truth.
And this is the first step on that new path.
There is a way in which we can at the same time entreaty and empower the people to first become unified, and then to utilise this unity to effectively put the breaks on the economic cycle, to slow the whole thing down. Do you see? It's just A numbers game. And when we see ourselves achieve this aim that brought us together, the direction of authority between finance and humanity, in that very moment, will be reversed, the entity can then begin to harmonise and then this growing sense of belief in each other will then become the first step on the path that enables us to become who we are going to have to become if we are going to build our future on equality, honesty and unity. Values our environment will demand of us, values good people cherish. Do you get a sense of how this could all join up now?
In one movement we would reverse the underlying dynamic relationship between humanity and finance by changing ourselves from reactive to proactive. And the only casualty would be our powerlessness. Winner winner chicken dinner.
But remember we are not seeking to become it's masters. Thats where we have gone wrong every single time, untill now that is. Evolution not revolution remember. because we are going to change the way finance works by seeking to harmonise with it and then to Enshrine this harmony deep into our foundations. A solution born of A new perspective, simply a more honest approach.
Nothing more.
And the only time we have to do this is now, in our time, with 2020 vision, as we find ourselves at the very beginning of this time of change, which is still up for grabs btw. Transition Time. Da dah. And only time will tell. And thats not a lot of time! Well it is, but you know what I mean, hopefully.
And I suspect we are going to need a bank, but what for, I'm not exactly sure.
And finally, you will be glad to hear, a little ditty I composed just for you, to tell you what I believe you need to know, about me.
I believe that in the world there are good people.
And I also believe that most of us are good people,
I choose to believe that of those that aren't, many of them would be, if life afforded them the opportunity to be, like you, and like me. Not all, but more than enough. And I believe with all my heart, and all that I can be, that the key, that unlocks this truth is only ever a new perspective away. And if we Can imagine it, then we can share it., and as we share it enough, so it becomes reality, because reality is only ever either what we allow it to be, or what we make it. because thats the way this works. Either or.
StevieP Nov 19. Still a few hardy leafs clinging to swaying branches as the floodwaters rise and fall.
our past relationship with finance has nothing to teach us about what our future relationship should be, because our relationship has changed, at least it will if I have anything to do with it. We are clever people, if the lesson was there in our past to be found, we would have already learnt it. So we need to learn lessons that only a new perspective can show us. solutions from our future, not for our past.
Let's see how it goes.
submitted by jomakepeace2018 to manifesto [link] [comments]

Variability Encryption

Variability Encryption
I created a mostly pseudo code of the encryption side of things, there will be some parts that refer to below because my lack of programming language training/skills and such. The Decryption part will have to come at a different time.

But in here I will discuss the reasons it works. First it is Symmetric Encryption, as the same key will encrypt and decrypt. Decryption notes to come later when I have time.

1) Plain Text/Known Text
A request for me to use a known text format was made, I saw it but have been working 60-70 hours a week and also trying to create the pseudo code. I can tell you that using a known text then modifying it wont work. Here is why: The Combinations will create a ternary base, the juggle and shuffle are designed to increase disorder. If there was one run of each process and the order was shuffle, juggle, combinations then it would be plausible that there could be a pattern which shows up. However the repetitions of the three cycles and the key derived pattern of each process inside the three cycles will create a very severe jumble of 1's and 0's even if our source was entirely 0's or 1's to start with.

2) Block Cipher attacks
The way the entire system works we have no real identifiable blocks to work with. The key is read in a dynamic manner which results in repetition use of the key to start at different portions of the key. Further the combinations phase has limits to string length but those limits allow a lot of variability in length of a specific portion being applied to. Inside the string lengths we further have a lot of variability in the number of combinations and the salts further shake up the variabilities in many manners. There is no block as it where except where the Shuffle occurs (well kinda) and that is not the primary function of the system. In theory it may be necessary to make blocks for the shuffle portion but those blocks will not function in the same manner as existing blocks which will require testing for each and every possible variation.

3) Attempts to use a similar key (or part of a known key)
These attacks of course can happen when there is a man in the middle attack where the key is actually made up of a long-term key between users, a mid-term key, and a short term key such as the Signal App uses. Or however many versions of multiple key portions. So assuming your man in the middle attack got half the key you try to apply methods to use it to get in. The first problem is that key lengths for multiple key portions does not need to have a fixed length. The idea of a fixed key length is laughable considering the methods used in variability encryption. A variable key length of 32 to 64 bits where the accessed portion makes up a fair to sizable portion thereof does not give them enough information to recreate the key size with any reliability without trying all possible sizes. Having a small key is not detrimental to the entire system either, wherein the difficulty increases with key size size admittedly but the variability system can start at 32 bits without issue.

4) Difficulty in Brute Forcing increases with file size
The Jugglee routine definitively increases the problem for decryption. Since it can apply to the whole of the file size at once without too much predicted issue this means that an enemy operator must process the whole file for three of the 9 processes and they have to accurately judge when the juggle process was used each of the three times. The combination stage dramatically increases difficulty as well since it can encode a lot of data in the larger string sizes thus making accurate string length detection a necessity. The shuffle is by far the easiest portion to decrypt where it is in theory but the other stages make accessing it properly very difficult

5) The key has other strengths
Due to the way the key works, where it identifies different string lengths and where it can be added infinitely to itself with a low possibility of exact repetition, this makes the key weaponized on its own. The attacker will require knowing how many repetitions of the key occurred and where the individual key portions were spliced properly to be able to use the information.

6) Statistical Attacks
There is, admittedly, a bit of a possibility of weakness to Statistical Attacks. The weakness however is very low versus the total capabilities of the system. You would need to know a significant portion of the key and have a known text example. Given both of those at the same time you could, in theory, be able to attempt to derive the sequence of the processes with enough effort. However I would say this effort will still be harder by far than AES 512.

7) Brute Force
Combinations make for a large spread you need to test, the juggle makes for tests to be done three times over the whole of the file, the shuffle makes you waste time and energy trying to derive the proper order of things. If you encrypt a megabyte, a not unheard of size (sarcasm), the attacker must account for all possible key lengths, all possible key variations, and because the way the combinations work they must also be able to predict to a fair extent the source of the data, yes the data itself helps create the encrypted results thanks to the combinations system. Thus the processor time would be in far excess of the time it would normally require for every iteration of the possible key and at all possible file sizes using the combinatorics, thus making for far in excess of processor time to crunch the whole code ^3. It becomes factorial in of fact which should definitely scare the crap out of cryptologists.

8)Yes some attacks will always succeed.
You can buy the password, you can beat the password out of someone, you can probably derive the sequences if you can watch the processor requirements, getting into the RAM while it is working will get you far, and so forth. However without full information, say it is an ATM speaking to the bank server and you are in the middle but the encryption code is hardwired, you will get nothing for it.

9) While a one time pad is obviously going to be the strongest the methods involved in Variability Encryption leave no doubt that if right now, right now, the atoms in the sun were made into a Super Computer (all of them) and the power doubled annually, a petabyte would never be successfully cracked before entropy destroys everything. AES 512 cannot say that with those standards, and yes I am bragging but dammit I feel good having found a statistical method that frankly cannot ever be decrypted with brute force unless the file size is small and the key small and the attacker knows that. By small I mean like 8 bits small or some silly small size like that.

10) Patent and Patent Pending. The lawyer tells me I have to include that in my works, I listen to my lawyer. If you want in you can negotiate with me.

11) I think, now I do not have proof as I have been exclusively working on this encryption routine and the other patent applications, that AES can be exploited due to the high storage potential of combinatorics. It will need a lot of my time but it feels right. But again not going down that squirrel hole until I get real code that shows how the system works so I can take it before some very rich individuals or one of the other Patent Applications gets attention as well.

_________________ PSEUDO CODE (Kinda) _____________________

Pseudo Code - Variability Encryption // Variability is key, there is nothing else. This won't be real Pseudo Code but it should suffice for most here. //
Start: Load Key, to be called Key_Card Load File to Encrypt, to be called Step_Zero // Process_1 = Combin_First // // Process_2 = Combin_More // // Process_3 = Juggle_Scramble // // Process_4 = Shuffle_Mixup // // Process_5 = Combin_Restore // // Process_6 = Juggle_Restore // // Process_7 = Shuffle_Restore // // Process_8 = Ternary_Binary // // Process_9 = Binary_Ternary // // The processes are the main methods involved in first encrypting, then in decryption // Hash Key_Card, to be called Hash_Key Process: // Effort is to get a value from 1 to 6 to generate a pattern of the processes above, assume if there is an error another process assigns a value to each via using the key to generate an option that is quasi random // Value of Hash_One = If Hash_Key ends with 7,8,9, or 0 divide by ten and drop decimal, else use last digit. Value of Hash_Two = If the first digit in Hash_Key is a 7,8, or 9 then (look at the next digit, if next digit is a one then look to the next digit) else use digit. Value of Hash_Three = If RoundDown (Divide Hash_Key by 5) = 7,8,9, or 0 then if (RoundDown (Divide Hash_Key by 4) = 7,8,9, or 0 then (RoundDown (Divide Hash_Key by 6)) else use the digit. Order_One uses Process_1, Process_2, Process_3, Process_4. Order_Two uses Process_2, Process_3, Process_4, Order_Three uses Process_2, Process_3, Process_4, Process_8. Process_1 = a, Process_2 = b, Process_3 = c, Process_4 = d, process_8 = e. //The order of each of Order_One, Order_Two, and Order_Three get determined here // Order_One = if Hash_One =1 then acd, else if Hash_One = 2 then adc else if Hash_One = 3 then cda else if Hash_One = 4 then cad else if Hash_One = 5 then dac else if Hash_One =6 then dca. Order_Two = if Hash_One =1 then bcd, else if Hash_One = 2 then bdc else if Hash_One = 3 then cdb else if Hash_One = 4 then cbd else if Hash_One = 5 then dbc else if Hash_One =6 then dcb. Order_Three = if Hash_One =1 then bcde else if Hash_One = 2 then bdce else if Hash_One = 3 then cdbe else if Hash_One = 4 then cbde else if Hash_One = 5 then dbce else if Hash_One =6 then dcbe. // Note that this makes the order of the processes per each of 3 distinct rotations difficult to predict and allows for an initial change into ternary during the first combinatorial phase and returns to binary at the end of the process // Create file: Process_Run Process_Run = Step_Zero { // Process_1 // Load Process_Run Load Key_Card //The basis for the keycard is simple, we identify how many bits we are going to use for the string length, then we use that to identify the possible length of the combinations portion of the key afterwards, we then see if there is going to be a salt and if there is a salt we read the next 3 bits. // Load last 3 bits of Hash_Key, find the Decimal +1 and save as Hash_Ke1 // This will result in a 1 to 8 value // // Declaring a few things that will be used but will be modified in the following processes // Str_Len = 0 Key_Run = Key_Card Salt_True = 0 Com_Pare = 0 Com_Cnt = 0 Str_Cnt = 0 Chk_Salt = 0 // Replacement_File.txt // // Replacement_File.txt will be a separate post for people, it will be a large file which will have a replacement table based upon Combinatorics in it. It will be designed upon a variety of sizes but it will not have a full and entire table, it should be sufficient for the purposes of people here to understand how it works however // { If Hash_Ke1 >0 & <3 then Str\_Len = 4, if Hash\_Ke1 > 2 & < 6 then Str_Len = 5, if Hash_Ke1 > 5 & < 9 then Str_Len = 8 } { If Key_Run does not have sufficient length then Key_Run = Key_Run + Key_Card Remove Str_Len bits from Key_Run and identify the Decimal + 1 value of these bits. This will be called Str_Cnt Com_Cnt = RoundDown (Log( Str_Cnt / 2) / Log (2)) If Com_Cnt < 4 then Com_Cnt = 4 //Next step helps analyzes Com_Cnt to see if it is small enough, reduces the length if it is not // { While //I am creating a repeating sequence that repeats until the if then is true // Load Decimal + 1 of Com_Cnt bits from Key_Run, value is Com_Pare If Com_Pare > RoundDown (Str_Cnt / 2) then Com_Cnt = Com_Cnt -1 else End } Remove Com_Cnt bits from Key_Run // The purpose of this code above is to get the decimal of the first portion of our string length bits and to get a decimal amount for our combinations count which will be half that, or less, of the decimal for the string length. // Chk_Salt = Remove 1 bit from Key_Run If Chk_Salt = 1 then remove 3 bits from Key_Run, these three bits become Salt_True Using Com_Pare identify Replacement_File.txt table section for the Ternary Replacement. Remove the identified bits from Process_Run as identified by the table inside Replacement_File.txt in match to the corresponding binary. Call the result Out_Put1 // This is using the table to identify a length section appropriate for the replacement then identifying the string section inside that would match our source which will then indicate what to replace it with // If Chk_Salt = 1 then ************* SALTS NEED TO GO HERE *********** // Some salts occur before the next process, some would after the next process. I am going to make a separate post about the salts // Fill Empty Spots in Out_Put1 by using appropriate length of Process_Run }
{ // Process_2 is very similar to Process_1, main differences will be it is already running in Ternary. // Load Process_Run Load Key_Card
Load first 5 bits of Hash_Key, find the Decimal +1 and save as Hash_Ke2
Str_Len = 0 Key_Run = Key_Card Salt_True = 0 Com_Pare = 0 Com_Cnt = 0 Str_Cnt = 0 Chk_Salt = 0 // Replacement_File.txt //
{ If Hash_Ke2 > 0 & < 4 then Str_Len = 4, If Hash_Ke2 > 3 & < 9 then Str_Len = 5, If Hash_Ke2 > 8 & < 14 then Str_Len = 6, If Hash_Ke2 > 13 & < 19 then Str_Len = 7, If Hash_Ke2 > 18 & < 24 then Str_Len = 8, If Hash_Ke2 > 23 & < 29 then Str_Len = 9, If Hash_Ke2 > 28 & < 32 then Str_Len = 10. //Longer possible string lengths in follow up repetitions, increases difficulty in statistical analysis and brute forcing significantly. // } { If Key_Run does not have sufficient length then Key_Run = Key_Run + Key_Card Remove Str_Len bits from Key_Run and identify the Decimal + 1 value of these bits. This will be called Str_Cnt Com_Cnt = RoundDown (Log( Str_Cnt / 2) / Log (2)) If Com_Cnt < 4 then Com_Cnt = 4
{ While
Load Decimal + 1 of Com_Cnt bits from Key_Run, value is Com_Pare If Com_Pare > RoundDown (Str_Cnt / 2) then Com_Cnt = Com_Cnt -1 else End } Remove Com_Cnt bits from Key_Run
Chk_Salt = Remove 1 bit from Key_Run If Chk_Salt = 1 then remove 3 bits from Key_Run, these three bits become Salt_True Using Com_Pare identify Replacement_File.txt table section for the Ternary Replacement. Remove the identified bits from Process_Run as identified by the table inside Replacement_File.txt in match to the corresponding binary. Call the result Out_Put1
If Chk_Salt = 1 then ************* SALTS NEED TO GO HERE *********** // Some salts occur before the next process, some would after the next process. I am going to make a separate post about the salts // Fill Empty Spots in Out_Put1 by using appropriate length of Process_Run } { // Process_3 // // The Juggle Routine increases the net cost for brute force attempts to total processor time * 2^n where n is the number of bits in the entire file to be encrypted. This is per cycle involved and if they get the order of processes correct. // Hash_Mark = Hash of Key_Card Len_Mark = Length of Hash_Mark divided by 2 rounded down Hash_Mark = Hash_Mark - Len_Mark Sort_Hash = Last 3 bits of Hash_Mark Done_Hash = Decimal +1 of Sort_Hash Hash_Mark = Hash_Mark minus Sort_Hash Trig_Cnt = Last three bits of Hash_Mark Jug_Start = 0 Tri_Dec = Decimal + 1 of Trig_Cnt Trig_1 = 0 Trig_2 = 0 Trig_3 = 0 Trig_4 = 0 Trig_5 = 0 Trig_6 = 0 Trig_7 = 0 Trig_8 = 0 Trig_? = 0 // see lower notes //
{ If Process_Run is Ternary then run sub_prss2, else run sub_prss2 If Done_Hash < 3 then Done_Hash = 3 // Examines to see if the system is in Ternary, should be obvious // } { // sub_prss1 // // Trig_Dec and Done_Hash are the main functions to determine length and number of triggers. // Load Process_Run Trig_? = ? // The above needs to be incremental in growth for Trig_1 to Trig 8, or make some sort of array? // { While // Trigger making //
Trig_Dec> 0 ; Read first three bits of key, if Trig_? = 000 then 00, if Trig_? = 001 then 01, if Trig_? = 010 then 10, if Trig_? = 100 then 02, if Trig_? = 110 then 20, if Trig_? = 101 then 12, if Trig_? = 011 then 21, if Trig_? = 111 then 11 // Note this is the extremely simple version // } { While Process_Run still has bits repeat sequence Remove Done_Hash trits from Process_Run, These are First_Trig Read First_Trig for first match to Trig_? values, when match then remove remainder after match to Sec_Trig. Read Sec_Trig in reverse to find match for Trig_? values, when match then remove remainder of after match to Thrd_Trig Read Thrd_Trig for first match to Trig_? values, when match then remove remainder after match to Frth_Trig. Read Frth_Trig in reverse to find match for Trig_? values, when match then remove remainder of after match to Fith_Trig Read Fith_Trig for first match to Trig_? values, when match then remove remainder after match to Sxth_Trig. Read Sxth_Trig in reverse to find match for Trig_? values, when match then remove remainder of after match to Svth_Trig Read Svth_Trig for first match to Trig_? values, when match then remove remainder after match to Egth_Trig. // Whatever remains will go only into the 8th set in this version // End While when Process_Run is empty } { Process_Run = Reverse order of data for Sec_Trig, Frth_Trig, Sxth_Trg, Egth_Trig } }
{ // sub_prss2 // Key_Fun = Key_Card Trig_? = ? Load Process_Run { While Trig_Dec> 0 ; Remove Three bits from Key_Fun, becomes Trig_? //incremental increase function // // Design may use all strings as keys if odds happen correct with Binary, this is an extremely simple version // } { While Process_Run still has bits repeat sequence Remove Done_Hash bits from Process_Run, These are First_Trig Read First_Trig for first match to Trig_? values, when match then remove remainder after match to Sec_Trig. Read Sec_Trig in reverse to find match for Trig_? values, when match then remove remainder of after match to Thrd_Trig Read Thrd_Trig for first match to Trig_? values, when match then remove remainder after match to Frth_Trig. Read Frth_Trig in reverse to find match for Trig_? values, when match then remove remainder of after match to Fith_Trig Read Fith_Trig for first match to Trig_? values, when match then remove remainder after match to Sxth_Trig. Read Sxth_Trig in reverse to find match for Trig_? values, when match then remove remainder of after match to Svth_Trig Read Svth_Trig for first match to Trig_? values, when match then remove remainder after match to Egth_Trig. // Whatever remains will go only into the 8th set in this version // End While when Process_Run is empty } { Process_Run = Reverse order of data for Sec_Trig, Frth_Trig, Sxth_Trg, Egth_Trig } } { Process_4 // Shuffle Process // // Shuffle is designed to just swap a key derived sized length of trits or bits //
Read Key_Card first three bits. This becomes Shfl_Len Shfl_Dec = Decimal + 1 of Shfl_Len If Shfl_Dec < 2 then Shfl_Dec = 2 // Above is how we decide what length of blocks are being replaced. // Totl_Left = Shfl_Dec Bin_Bin = 0 Key_Shfl = Key_Card { If Totl_Left > 2 then Bin_Bin = Log(Totl_Left) / Log(2) // As if using the log function in MS Word // Key_Req = Remove Bin_Bin bits from Key_Shfl Shfl_? = Decimal of Key_Req
// Problem Defining this. I will make a separate post showing how this would look but not how it would work in Pseudo Code // } }
// Decryption to come when I have the time, hopefully it is obvious to some //
___________________________________________SALTS LIST____________________________
During the combinatorics phase there can be additional methods, known as salts, to add to the source which will confound an attempt to break the encryption. These salts can be modified to use binary or ternary as needed.

The salts are:
Salt 1: add combination(s) at
This salt will be triggered by a 000 in the key, the next two to four bits of the key will determine where in the current set the combination will be fake whereas the length of the combination string determines the required bits.

Salt 2: ended combination, start new combination early
This salt will be triggered automatically when possible, it will not allow a previous combination to break size rules, aka 4 minimum string length and a maximum of 50% combinations inside the string length. This increases security to prevent detecting this salt. This salt will not be used if there is a marker for another salt (This one is disabled in the example as I am only human).

Salt 3: Simulate multiple smaller combinations
This salt will be triggered by a 001 in the key, if the combination is under 8 then it defaults to NO SALT, else it defaults to two distinct combination strings where you divide by 2, round down for the first, then remainder for 2nd to obtain the string sizes. Possible alternative includes using a marker in the key to allow for more divisions provided the string length is long enough.

Salt 4: Skip Combination entirely
This salt will be triggered by a 010 in the key. The size will be determined by the previous combination string lengths, if under 8 then it will be 10 string length, if the previous was over 8 string length it will be 6 string length. Also it is possible to use a math formula to do a size variable, or a hash value, or.. Similar to 8 except we still use the full length of the listed string.

Salt 5: Skip real combinations, insert fake combination
This salt will be triggered by a 100 in the key. The size will be determined by the previous combination string lengths, if under 8 then it will be 10 string length, if the previous was over 8 string length it will be 6 string length.

Salt 6: Can use 2 dimensions
This salt will be triggered by a 011 in the key. This results in a combination going down instead of left to right. This is a complexity issue, I've plans for up/down but is the encryption community ready for this complexity? This key can be avoided if the complexity is too much, it is unlikely that by making blocks for this function that any existing block attacks could find vulnerabilities to exploit.

Salt 7: This will invert the binary values in the next combination
This salt will be triggered by a 101 in the key.

Salt 8: In between fixed length combinations, where the leading combination string ends with a combination location, and the next string starts with a combination location you can put a complete blank string. This is contrary to 4 where we are using the assigned string length in full instead of a variable. This salt will be triggered by a 110 in the key.

Salt 9: This salt, if we are using ternary, alters which of the 0, 1, 2 values is being used to encode the combinations and what is doing in binary. This is a permanent flip or a temporary flip as desired or as built into function. This salt will be triggered by a 111 in the key.
________________________________________________Example Tables (paste from Excel)_______________________________

submitted by PHDEinstein007 to encryption [link] [comments]

Binary Option VIP Methods - YouTube Binary - Addition, Subtraction, Multiplication & Division  Unit-1 #6 Binary Options Strategy 2020  100% WIN GUARANTEED - Deposit $10 Whitdraw $1,530.79 -Trading in Real Powerful Binary Option Indicator of 2020 // Binary Trading Strategy // Free Download Binary to decimal // complete soltion // tricks // #2020 math tricks

My professor's answer: "You take all the remainders (ignore the quotients) and assemble them into your binary number. The first remainder is the rightmost bit and the last remainder is the leftmost bit." So the way you'd do forty-two using successive division would be to divide forty-two by two. Also taking Fig. 1 as an example, if between these two successive cycles, the tag with digital identifier 010 departs, in the subsequent cycle, the query using 010 will result in idle, the node with binary query string 010 will become idle and should be merged with its sibling node, i.e., the node with binary query string 011. The mergence will Write the base of the destination system (in our case, "2" for binary) as the divisor outside the curve of the division symbol. X Research source This method is much easier to understand when visualized on paper, and is much easier for beginners, as it relies only on division by two. These four studies suggest a general model explaining how a binary decision system drives the transition between successive regulatory states ().The mother cell is characterized by a regulatory state A corresponding to the expression of transcription factor A (SKN-1 and MED-1 for the EMS cell; NOB-1 and CEH-20 for the T cell; REF-2, HLH-2 and TTX-3 for the SMDD/AIY mother). The binary bits are assembled from the remainders of the successive division steps, beginning with the LSB and proceeding to the MSB. In this case, we arrive at a binary notation of 1010111 2 . When we divide by 2, we will always get a quotient ending with either “.0” or “.5”, i.e. a remainder of either 0 or 1.

[index] [27832] [7987] [3845] [5013] [26206] [30979] [16113] [14055] [12819] [27517]

Binary Option VIP Methods - YouTube

Forex and Binary options trading carry a high level of risk and can result in the loss of all your fund.You should never invest money that you cannot afford to lose.) I Hope This Indicator Brings ... Binary options trading binary options newest method 2020. And today i'll show you the binary options strategy 2020 that i use in trading binary options... Binary options strategy- binary options ... Binary options are deceptively simple to understand, making them a popular choice for low-skilled traders Forex binary options tutorial u7 Best IQ Option Strategy - Advice Typical Method– This can be the oldest and many utilized trading technique in binary options. It truly is regarded as A lot safer and is also a favourite of beginner traders. It doesn’t give A ... It is the same as the decimal multiplication technique using a binary addition method. Binary Division: It is the same as the decimal division technique using the binary subtraction method.

Flag Counter